I have successfully utilized PlatformIO on VSCode as the development environment for a prototype product idea based on the ESP32 device. After gaining familiarity with the device and the esp-idf (using both BLE and WiFi connectivity), I am ready to take steps to utilize this device on other products of ours to replace more costly communications radios. In order to do so, I have to manage some limitations in our current OTA firmware update architecture.
Our existing products utilize a serial flash device to store downloaded OTA images before they are validated, unencrypted and flashed into our host controller or radio. The current serial flash size limits these images to 512KB each. The code running on the ESP32 exceeds this footprint, so I was considering the thought of memory mapping the esp-idf components and my application components in separate areas which could then be updated independently.
An analysis of the mapping file for my existing ESP32 prototype project shows the linker randomly places pieces of my application code and the esp-idf content all over the memory map. The linker is apparently using a default linker script, a copy of which gets placed into the build directory during the build process.
Is it possible to utilize a custom linker script file under PlatformIO to accomplish the memory mapping I desire?
If so, are there any examples in existence that I can reference?
Thanks in advance!