Hi Nordic
I have some questions regarding a custom bootloader we are about to implement into our product.
Information:
- We use NRF52832
- We have a custom board for our product
- We use the S132 softdevice
- We need a bootloader
- We use ESB as our main communication protocol and need this for application update (file tranfering in bootloader)
- We don't need a secure bootloader with crypto
- We don't need to update through BLE, if this complicates things significantly
- We don't need to update our softdevice, if this complicates things significantly
- We don't need to update our bootloader
Wishes:
- We would like a seperate project containing MBR, Softdevice and our bootloader
- When this project is flashed into the device, it should start to execute the bootloader.
It will of course check if an application is present and jump to this application if present.
- We would like a seperate project with our application
- If Release -> Output .hex file with right flash placement. (compared to the bootloader).
- If Debug -> Output .hex file which are able to start by it's own without bootloader
- We would like just to write to flash application space directly from the bootloader.
- Finally we need for production to be able to merge the two outputs with all components: MBR, SD, Bootloader and current application version.
Hope this make sense.
I am of course not asking for you to implement this, but I feel we need some guidance.
I don't think to my knowledge that the DFU is the right path for us to go, mainly because it looks too complicated for our needs, and it doens't have any examples for ESB custom bootloading.
I know there is a lot of documentation about the MBR, Softdevice and also the DFU.
But I also find it hard to find the specific details I need to get it started, as there are a lot of information that I don't think is relevant for our situation.
The examples I find are also specific for DFU usage, where I find it hard to get inspiration.
I would e.g like to see the differences of the bootloader library vs. the DFU.
Can I use only the bootloader and not the DFU mode, and how.
This are until now my best documents:
infocenter.nordicsemi.com/index.jsp
infocenter.nordicsemi.com/index.jsp
Some specific questions:
- How to I setup a bootloader project in Segger, which are able to startup directly into the bootloader?
- How to setup a segger project with the correct flash placement for use with a bootloader?
- How to jump from bootloader to the application?
- Will the UICR values be kept between bootloader and application, when not using the DFU?
- How would we write to the application flash from our bootloader? Using the fstorage or other lib?
Hope you have some suggestions for us to move on :)
Best regards
Mikkel