Error compiling gateway for esp8266 node mcu(1.0) e12



  • I did a clean install of the arduino IDE, installed the board manager, added the ESP8266 boards, and installed mySensor library.

    But i´m getting these compilation errors

    C:\Users\michael\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include/ets_sys.h:218:6: error: previous declaration 'void ets_update_cpu_frequency(uint32_t)' here
    
     void ets_update_cpu_frequency(uint32_t ticks_per_us);
    
         
    exit status 1
    Error compiling for board NodeMCU 1.0 (ESP-12E Module).
    

    I only took the example, and did a verify.

    Any idea on what the problem is


  • Mod

    @mcrahr see if downgrading the esp8266 board definitions to 2.4.1 helps. 2.4.2 was released today, so you're probably the first person to try it.



  • @mfalkvidd
    I will try it out in a few minutes



  • Spot on correct downgrade to 2.4.1 then it works. Thanks, I did try a downgrade but to 2.2 and that did not work 🙂

    Br
    Michael


  • Mod

    @mcrahr thanks for confirming. Seems the problem was introduced in this commit: https://github.com/esp8266/Arduino/commit/5d5ea92a4d004ab009d5f642629946a0cb8893dd#diff-c4057a04e4c6a7aa42b62269d3cd13dfL60

    And here is the full error message (OP's post did not include the full error message):

    In file included from R:\Documents\Arduino\libraries\MySensors/MySensors.h:420:0,
    
                     from R:\Documents\Arduino\libraries\MySensors\examples\GatewayESP8266MQTTClient\GatewayESP8266MQTTClient.ino:114:
    
    R:\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp:57:53: error: declaration of C function 'void ets_update_cpu_frequency(int)' conflicts with
    
     extern "C" void ets_update_cpu_frequency(int freqmhz);
    
                                                         ^
    
    In file included from C:\Users\Micke\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/pgmspace.h:10:0,
    
                     from C:\Users\Micke\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:256,
    
                     from C:\Users\Micke\AppData\Local\Temp\ArduinoBuild\sketch\GatewayESP8266MQTTClient.ino.cpp:1:
    
    C:\Users\Micke\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include/ets_sys.h:218:6: error: previous declaration 'void ets_update_cpu_frequency(uint32_t)' here
    
     void ets_update_cpu_frequency(uint32_t ticks_per_us);
    
          ^
    

  • Mod

    Looks like that commit introduced changes to the following declarations, which are now broken:

    ets_update_cpu_frequency
    esp_yield
    esp_schedule
    init_done()
    __yield
    optimistic_yield
    resetInfo
    user_init
    core_release
    core_version
    

    I have created https://github.com/mysensors/MySensors/issues/1167 to track this problem but I do not understand c++ sufficiently to figure out what needs to be done.


 

Suggested Topics

380
Online

7.6k
Users

8.5k
Topics

91.3k
Posts