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

Very simple SPI bootloader

Hi,

I'm implementing a simple bootloader which will not use BLE.

  • Application will transfer the data from mobile devices using BLE and this data will be stored to external SPI flash memory. I've already managed to make writing/reading data over SPI.
  • Custom bootloader should only read and verify data from external SPI flash and write that data to nRF flash. Bootloader should be able to update any address on the chip except itself, meaning that we want this bootloader to be able to update SoftDevice also. After it flashes what it needs to flash, it should go into newly flashed application.

I have trouble understanding vector mapping and how to do it right. Can someone please give an example with a bit more explanation?

Thnx!

Parents
  • Hm, I've already taken a look at link and still a little fuzzy about it.

    Regarding sd_softdevice_vector_table_base_set() and MBR, I don't get it at all. Where is MBR located, in SD or must I flash it separately? If MBR goes at the address of 0x0000 then I must flash the bootloader on some offset(0x0000 + MBR size)? Any document in which I can read about this? How to write flash without SD? I've seen a function "sd_flash_write()" but where are functions for flash write without SD? Or, how to do this "an easier approach may just be to use the SD to forward interrupts to your bootloader/application" when SD is deleted and I'm writing over it. How to use SD for anything when you have deleted it to update it?

    There are so many questions I can't find an answer to.

Reply
  • Hm, I've already taken a look at link and still a little fuzzy about it.

    Regarding sd_softdevice_vector_table_base_set() and MBR, I don't get it at all. Where is MBR located, in SD or must I flash it separately? If MBR goes at the address of 0x0000 then I must flash the bootloader on some offset(0x0000 + MBR size)? Any document in which I can read about this? How to write flash without SD? I've seen a function "sd_flash_write()" but where are functions for flash write without SD? Or, how to do this "an easier approach may just be to use the SD to forward interrupts to your bootloader/application" when SD is deleted and I'm writing over it. How to use SD for anything when you have deleted it to update it?

    There are so many questions I can't find an answer to.

Children
No Data
Related