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.



  • @ltigges
    Hi, I can confirm your issue. Thank you for reporting!
    Best will be to open a new issue in in the GitHub repo at MySensors/issues.
    It would be great if you could do that- thank you.
    BR Immo


Log in to reply
 

Suggested Topics

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts