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 Martin, I accidentally clicked on convert to answer.

    Anyway, here is what I am trying to do.

    I have seperated the SD into the MBR part and the SD part. I flash the MBR and then flash the Bootloader. At this point, there is no SD present on the device -just the bootloader and the MBR. The MBR jumps to the bootloader correctly and runs the bootloader. In the bootloader, I have calls to nrf_dfu_mbr_init_sd(); and sd_softdevice_vector_table_base_set(start_addr);. I have these 2 calls, but no SD (just the MBR and Bootloader). Why is it that I don't get an error when I make these 2 calls since the Softdevice is not actually present?

Reply
  • Hi Martin, I accidentally clicked on convert to answer.

    Anyway, here is what I am trying to do.

    I have seperated the SD into the MBR part and the SD part. I flash the MBR and then flash the Bootloader. At this point, there is no SD present on the device -just the bootloader and the MBR. The MBR jumps to the bootloader correctly and runs the bootloader. In the bootloader, I have calls to nrf_dfu_mbr_init_sd(); and sd_softdevice_vector_table_base_set(start_addr);. I have these 2 calls, but no SD (just the MBR and Bootloader). Why is it that I don't get an error when I make these 2 calls since the Softdevice is not actually present?

Children
No Data
Related