Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. ltigges
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    ltigges

    @ltigges

    0
    Reputation
    1
    Posts
    1
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    ltigges Follow

    Best posts made by ltigges

    This user hasn't posted anything yet.

    Latest posts made by ltigges

    • Missing "__libc_init_array();" wenn using samd without USB

      Hello all,

      I tried to build atsam gateway without USB support and had the problem that the sercom pointer were not initialized. The problem is that without the "USBCON" define, “__libc_init_array()” is not called within the MyMainSAMD.cpp main(). After moving “__libc_init_array()” out of the “USBCON” condition, everything works fine.

      /*
       * The MySensors Arduino library handles the wireless radio link and protocol
       * between your home built sensors/actuators and HA controller of choice.
       * The sensors forms a self healing radio network with optional repeaters. Each
       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
       * network topology allowing messages to be routed to nodes.
       *
       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       * Copyright (C) 2013-2020 Sensnology AB
       * Full contributor list: https://github.com/mysensors/MySensors/graphs/contributors
       *
       * Documentation: http://www.mysensors.org
       * Support Forum: http://forum.mysensors.org
       *
       * This program is free software; you can redistribute it and/or
       * modify it under the terms of the GNU General Public License
       * version 2 as published by the Free Software Foundation.
       */
      
      // Initialize library and handle sketch functions like we want to
      
      extern "C" void __libc_init_array(void);
      
      int main(void)
      {
      	init();   
              __libc_init_array();      // after
      #if defined(USBCON)	
      //        __libc_init_array();     before
      	USBDevice.init();
      	USBDevice.attach();
      #endif
      	_begin(); // Startup MySensors library
      	for(;;) {
      		_process();  // Process incoming data
      		if (loop) {
      			loop(); // Call sketch loop
      		}
      		if (serialEventRun) {
      			serialEventRun();
      		}
      	}
      	return 0;
      }
      

      I don't know why it is within the condition and if it is good to move it outside, but it seems to work.

      posted in Bug Reports
      ltigges
      ltigges