Esp8266-rtos-sdk menuconfig

Hello to all,

In the esp-idf framework for the esp32 I can modify the freertos configuration by running
pio run -t menuconfig

I thought it was the same for the esp8266-rtos-sdk framework however I got the following error:
scons: *** Do not know how to make File target `menuconfig’ (E:\Data\PlatformIO\8266test_rtos\menuconfig). Stop.

any clue on that one ?
many thanks
Sha

PlatformIO does not have support for the latest esp8266-rtos-sdk version, it is several years behind. That one doesn’t have ESP-IDF structure and doesn’t support menuconfig.

Discussed at Outdated version of ESP8266 RTOS SDK · Issue #192 · platformio/platform-espressif8266 · GitHub, Update native SDK for ESP8266 to 3.0.0 · Issue #85 · platformio/platform-espressif8266 · GitHub, Update ESP8266_RTOS_SDK v1.4.0 to ESP8266_RTOS_SDK v3.x.x · Issue #219 · platformio/platform-espressif8266 · GitHub.

Thanks Max

I knew it was not the latest version but I did not know it does not support menuconfig.

If there is no menuconfig how to modify this configuration ?
Can I edit the freertos config file ? will it be recompiled when I compile my project?

thanks again.

You cannot easily change the FreeRTOS configuration because it is not compiled from source but statically linked.

The file C:\Users\<user>\.platformio\packages\framework-esp8266-rtos-sdk\lib\libfreertos.a contains the precompiled version and C:\Users\<user>\.platformio\packages\framework-esp8266-rtos-sdk\include\freertos\ all the header and FreeRTOSConfig.h that it was originally compiled with. Changes to the FreeRTOSConfig.h will have no effect since it doesn’t change the precompiled .a file. Either that file is correctly configured for your application or you can’t use it.

Only the 5 source files in driver_lib/driver are dynamically compiled from source, rest is statically linked, see -l flags in final linker command and files in lib.

xtensa-lx106-elf-gcc -o .pio\build\nodemcuv2\firmware.elf -T C:\Users\Max.platformio\packages\framework-esp8266-rtos-sdk\ld\eagle.app.v6.ld -Os -nostdlib -Wl,–no-check-sections -Wl,-static -Wl,–gc-sections -u call_user_start -u _printf_float -u _scanf_float .pio\build\nodemcuv2\src\main.o -L.pio\build\nodemcuv2 -LC:\Users\Max.platformio\packages\framework-esp8266-rtos-sdk\lib -LC:\Users\Max.platformio\packages\framework-esp8266-rtos-sdk\ld -Wl,–start-group C:\Users\Max.platformio\packages\framework-esp8266-rtos-sdk\lib\libdriver.a -lcirom -lcrypto -ldriver -lespconn -lespnow -lfreertos -lgcc -ljson -lhal -llwip -lmain -lmesh -lmirom -lnet80211 -lnopoll -lphy -lpp -lpwm -lsmartconfig -lspiffs -lssl -lwpa -lwps -Wl,–end-group

If you need a configurable FreeRTOS configuration running on your ESP8266, I’d recommend going with either the latest ESP8266-RTOS-SDK directly from Espressif without PIO tools, or GitHub - SuperHouse/esp-open-rtos: Open source FreeRTOS-based ESP8266 software framework. After my search there isn’t a arduino library for esp8266 that supplies FreeRTOS (can we use esp8266/arduino with esp8266-rtos-sdk ? · Issue #2118 · esp8266/Arduino · GitHub)

Thanks for these informations
I will evaluate the various options.