i am working with STM32429VI.
For my device i try to implement a simple bootloader which gives me the possibilty for DFU.
DFU works fine and everthing else too.
But I need some feedback if this is a attempt which ain´t gives me problems in the future.
My bootloader: 0x0800 0000 - 0x080 7FFF
Application: 0x800 8000 ...
Since i will have no reset button on my later hardware i want somehow jump back to the bootloader from my application and hold it in the bootloader until i upgraded the application.
For this i reserved a small part from the RAM: 0x2000 0000 - 0x2000 001F
For both the bootloader and the application i set the ram in the linker file to begin at 0x2000 0020.
Inside the small part of the RAM i write a specific value, if the application executes a specific function.(Basically i can send a request from outside to the mcu and it will execute the write function and do a reset).
By this the bootloader starts and reads out the specific value and holds the bootloader mode until the new firmware has been downloaded the value gets reset to default and a system reset is executed. So the bootloader starts again but jumps then to application.
This way I can avoid that the usb is configured all the time as DFU and I have a clean start for the bootloader and the application.
This works fine for now.
My Application is working with freertos and i think that the rtos could mybe access this part of the RAM somehow, but i am not sure. I hope excluding this part of the RAM in the Linker-Files will terminate any excess from the RTOS.
I am not that experienced in writing a bootloader and hope someone can give me a feedback if this is done well or if this can lead to a bunch of problems.
Thank you in advance