This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Porting project from SDK12.3 to SDK17 and SD132 to SD140: Unable to start custom Application from custom Bootloader (no DFU) starting after SD in flash storage

Hi,

We have a product based on nrf52840 which is already in production for several years.
It was built over SoftDevice132 and SDK 12.3. 

The project has 2 components:

  • custom bootloader (no DFU) which has only one meaning: updates the app if it finds an upgrade on the flash storage
  • application: uses BLE, UART, etc. It receives app updates via BLE, stores them on flash and resets. The bootloader runs, performs the upgrade and starts the [new] app.

The bootloader is located right after the softdevice and the app is located just after the bootloader. 

Flash structure: MBR | SD132 | BOOTLOADER | APP | … free … | 

I am currently porting the project to SD140 and SDK17. 

I started porting the custom bootloader and the main problem I have now is starting the app . 

From what I read in the bootloader library, the expected flash structure is as follows:

MBR | SD140 | APP | … | Bootloader | MBR Storage Parameters | Bootloader Settings| 

From what I see in the bootloader samples in SDK17, the bootloader starts the application by calling ‘nrf_bootloader_app_start’, which seems to run the SoftDevice (flash addr 0x1000) which I am guessing will default to jumping the execution at 0x26000 (which it assumes is the starting adress of app).

In this post it is mentioned that Application MUST follow the SD on the flash storage: https://devzone.nordicsemi.com/f/nordic-q-a/39033/how-do-i-change-the-application-bootloader-start-address

Is there any way to maintain the current project flash structure (MBR | SD | BOOTLOADER | APP) and still be able to start the app from bootloader? Maybe a workaround?

And, if my custom bootloader does not use DFU, do I still need the following structures held in flash storage?

‘MBR Storage Parameters’ and ‘Bootloader Settings’

Thank you.

Mircea



Parents
  • Maybe it's worth adding (maybe it's already obvious)  that our 'Custom Bootloader' acts as a regular application, completely out of 'Bootloader library' scope. 
    So maybe another relevant question would be: is it possible to have 2 (or more) applications residing on the flash, the first that runs at device powerup is 'custom bootloader' which then forwards execution to our 'application' (which uses SD)?

Reply
  • Maybe it's worth adding (maybe it's already obvious)  that our 'Custom Bootloader' acts as a regular application, completely out of 'Bootloader library' scope. 
    So maybe another relevant question would be: is it possible to have 2 (or more) applications residing on the flash, the first that runs at device powerup is 'custom bootloader' which then forwards execution to our 'application' (which uses SD)?

Children
No Data
Related