Is it possible to remove IDF components? Specifically I was hoping to remove lwip so I could use mine. The application I'm running into needs significantly higher performance than the LWIP stack for the '32 can provide. The 8266 stack was just fast enough for this application, but it shouldn't take long to just use my TCP/IP stack.
Just some mechanism to blacklist or remove components...
It would also be helpful so I don't have to wait as long between recompiles for large components like SSL and HTTP.
Removing IDF components? [Solved]
Removing IDF components? [Solved]
Last edited by cnlohr on Tue Feb 26, 2019 9:43 am, edited 1 time in total.
Re: Removing IDF components?
Solved: create a components folder in your project, in there, make subfolders for each component you want to nullify. Place an empty component.mk file in each to make it void.
Re: Removing IDF components?
Yes. Correct. You can create your own component into your project application directory and also can override components present into IDF directory.
Regards,
Ritesh Prajapati
Ritesh Prajapati
Re: Removing IDF components? [Solved]
As well as overriding by placing empty component(s) in the project, you can set the COMPONENTS variable in your project Makefile to build only a subset of available components:
https://docs.espressif.com/projects/esp ... -variables
Setting this variable is also possible in the new CMake-based build system:
https://docs.espressif.com/projects/esp ... -variables
The functionality is a little easier in the CMake-based build system because components also track their dependencies, so you can specify a very minimal list of COMPONENTS (ie "lwip main", for example) and have the build system expand necessary dependent components. Whereas in GNU Make you have to list them all in the Makefile.
https://docs.espressif.com/projects/esp ... -variables
Setting this variable is also possible in the new CMake-based build system:
https://docs.espressif.com/projects/esp ... -variables
The functionality is a little easier in the CMake-based build system because components also track their dependencies, so you can specify a very minimal list of COMPONENTS (ie "lwip main", for example) and have the build system expand necessary dependent components. Whereas in GNU Make you have to list them all in the Makefile.
Re: Removing IDF components? [Solved]
Thanks! I will probably give option B a try at some point.
Re: Removing IDF components? [Solved]
Just FYI I cast my vote to keep the existing Makefile system. This CMake thing feels like it will make it a lot harder to troubleshoot problems and be a much higher barrier for entry on anything except the most basic cases...
Also, FYI for anyone else wanting to do network hacking... this is what I used in my Makefile:
Also, FYI for anyone else wanting to do network hacking... this is what I used in my Makefile:
Code: Select all
COMPONENTS := bootloader bt-support driver esp32 esp_adc_cal \
espcoredump esp_event esp_ringbuf esptool_py heap \
idf_test freertos jsmn json log micro-ecc newlib nvs_flash \
pthread soc spiffs spi_flash ulp unity wpa_supplicant \
app_trace xtensa-debug-module ethernet bootloader_support \
vfs app_update mbedtls partition_table
COMPONENTS+=cnip cnhttp main
Re: Removing IDF components?
For this to work with CMake, I also needed to add an empty CMakeLists.txt file in the new component folder. Otherwise the build system keeps finding the component in esp-idf.
Re: Removing IDF components? [Solved]
For anyone who stumbles upon this at a later time, I believe this is how you do it.
https://github.com/cnlohr/esp32-c3-cnte ... txt#L4-L11
https://github.com/cnlohr/esp32-c3-cnte ... txt#L4-L11
Who is online
Users browsing this forum: Baidu [Spider] and 148 guests