This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Simple Bootloader

Hi,

SDK14.0 nRF52832

I am using the dfu\bootloader_secure_ble example as my starting point. My goal is to create a very simple bootloader (with none of the dfu stuff, no SD functionality). Just a simple bootloader that the MBR jumps to when the board is powered on. This bootloader in turn starts another application and that's it!

This is what I am doing:

  1. completely erase the board using nrfjprog
  2. flash the softdevice
  3. flash the bootloader

---up until this point the bootloader is able to run, now I want to flash an app so the bootloader can give control to this app---

4.flash a BLE app (ble_blinky)

result: I look at the terminal and I get a "Fatal" error message. This comes up during the call to nrf_sdh_enable_request.

It seems to me that the Bootloader is able to start the app, but the app gives an error.

Can someone point me to the right direction on what I am missing here? This app works fine if I just flash the SD and the APP. But when I flash the SD, then the Bootloader and then the app, I get this "Fatal" error.

Parents
  • Hi, The MBR is not made to work as standalone. Anyway, if you look at the documentation of nrf_dfu_mbr_init_sd() and sd_softdevice_vector_table_base_set(start_addr) you'll see that they probably return NRF_SUCCESS regardless of whether a Softdevice i present. The first one might return NRF_ERROR_INVALID_PARAM, but that probably doesn't depend on the presence of a SD.

    Have you tried to change your application's linker script so that it starts at address 0x1000, where the SD would normally start?

Reply
  • Hi, The MBR is not made to work as standalone. Anyway, if you look at the documentation of nrf_dfu_mbr_init_sd() and sd_softdevice_vector_table_base_set(start_addr) you'll see that they probably return NRF_SUCCESS regardless of whether a Softdevice i present. The first one might return NRF_ERROR_INVALID_PARAM, but that probably doesn't depend on the presence of a SD.

    Have you tried to change your application's linker script so that it starts at address 0x1000, where the SD would normally start?

Children
No Data