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

bootloader for nrf51822 QFACA1part on a custom board

Hi All,

We are trying find a way to upgrade nrf51822 in the field post initial release. I read the following posts (devzone.nordicsemi.com/.../) (developer.nordicsemi.com/.../a00069.html)

If I to I am trying to understand the following please bare me for asking very basic questions

  1. Do we must need to have a bootloader?

  2. Is there any existing bootloader that I can use as it is on nrf51822 QFACA1 part? or I must customize something? if yes, what all needs to be done? I don't think we can accommodate dual bank architecture. If that is the case, what I need to worry about?

  3. How do I program bootloader for the first time ? (Most likely a programmer, but I would still like to have an answer to confirm)

  4. Do I need to flash bootloader at specific address?

  5. How do I park device to bootloader mode for future firmware upgrade? I don't have any button on my PCB (how does other people do it for their devices) .

  6. When upgrading softdevice does it also erase the bootloader? or it can be prevented? May be I was informed that to upgrade softdevice you must erase entire flash, which doesn't sound right to me.

  7. How do you upgrade softdevice only? or softdevice + application or application only?

I know I asked so many questions but I would like to understand all this in a same thread.

Parents
  • Hi Harry,

    1. Yes, you need a bootloader if you want to do DFU. It's possible to make an application that can also handle the bootloader task but it will make the process more complicated and less safe.

    2. The bootloader is available in the SDK. Please let me know which SDK you based your application on and the softdevice version on the chip.

    3. Yes, you use normal programmer and flash the bootloader as a normal application.

    4. Yes, but the programmer will handle that for you. Please have a look here for more information about the bootloader.

    5. You can add the DFU service into your application, and can switch to bootloader mode by a command from the central device. Look here.

    6. If the old bootloader is compatible with the new softdevice, you don't need to update the bootloader. Updating the softdevice will erase the application part only.

    7. To update just softdevice, you can specify that you want to update softdevice or simply let the DFU master (app) on the phone take care of it, base on the information you provided in the .zip image. The application can be updated after that. Or you can combine them together and let the DFU master takes case of it.

    You can find more information in this FAQ.

  • Hi Bui, Thank you very much for the reply. We use a tool (similar to JTAG) to send composite image to LPC1124 but not BLE. It is not done OTA. In that case, do I need to have SPI DFU master?

    Also, I have the following question based on the release notes of the SPI bootloader. "The example host application can currently only program an application (not a bootloader or SoftDevice), and expects the application binary to be programmed into address 0x18000 of the flash."

    1. If we want the ability to program application + softdevice what changes we will have to make?

    2. Also, can we control the application address and softdevice address in flash? I remember softdevice is flashed at location 0x00000000 (MBR) + at offset 0x1000. Also, upgrading softdevices erases application completely. Is there a way to avoid this? I hope it doesn't erase bootloader as well.

    3. Do we also have to worry about interrupts once bootloader is flashed? since the same interrupt will be defined differently by softdevice? if that is the case how do we mange it?

Reply
  • Hi Bui, Thank you very much for the reply. We use a tool (similar to JTAG) to send composite image to LPC1124 but not BLE. It is not done OTA. In that case, do I need to have SPI DFU master?

    Also, I have the following question based on the release notes of the SPI bootloader. "The example host application can currently only program an application (not a bootloader or SoftDevice), and expects the application binary to be programmed into address 0x18000 of the flash."

    1. If we want the ability to program application + softdevice what changes we will have to make?

    2. Also, can we control the application address and softdevice address in flash? I remember softdevice is flashed at location 0x00000000 (MBR) + at offset 0x1000. Also, upgrading softdevices erases application completely. Is there a way to avoid this? I hope it doesn't erase bootloader as well.

    3. Do we also have to worry about interrupts once bootloader is flashed? since the same interrupt will be defined differently by softdevice? if that is the case how do we mange it?

Children
No Data
Related