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
  • The problem is that I am not not forwarding the SD vector table to the application in my bootloader and therefore when I try to use any SD calls in my main application, I get the error.

    If I initialize the SD using nrf_dfu_mbr_init_sd(); and then set the vector table address using sd_softdevice_vector_table_base_set(start_addr); in my bootloader everything works fine.

    I want my bootloader to be completely independent of SD or any SD calls. How do I forward the vector table to the app without using the SD calls?

Reply
  • The problem is that I am not not forwarding the SD vector table to the application in my bootloader and therefore when I try to use any SD calls in my main application, I get the error.

    If I initialize the SD using nrf_dfu_mbr_init_sd(); and then set the vector table address using sd_softdevice_vector_table_base_set(start_addr); in my bootloader everything works fine.

    I want my bootloader to be completely independent of SD or any SD calls. How do I forward the vector table to the app without using the SD calls?

Children
No Data
Related