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

nrf51822QFAA DFU

Hi

I have worked quite a lot with the nrf51822AC, and some time ago I got the OTA bootloader working in my projects on a custom board.

However, now I am trying the same one a board with the nrf51822QFAA (so less RAM), but I do not get the device to start up when including the bootloader.

I am working still with SDK7.2 and softdevice 7.3.0.

I have spent quite some time on this now, and still do not really know what I should do.

I have started from a clean SDK, took the example project for the bootloader in Keil, fixed the project definition first (there is a missing link to core_cm0.h)to make it compile, adapted the board definition file to match my custom hardware, adapted the memory ranges in the projects (IRAM1 size and IRAM2 start), adapted the code to use the LF RC oscillator (no 32khz crystal on board) and compiled the project. When I load only my application and the softdevice, using JlinkExe, it starts up fine, when I load softdevice, application and bootloader, nothing happens.

What am I doing wrong? Can anyone help?

Parents
  • Hi Bjorn,

    I found the issue - my code and memory configurations were ok, but in the JLINKExe command line options I used the wrong device type, so I guess it was written to the wrong position in flash or something; all seems to work now, except for 1 thing: if I set the device name in the DFU bootloader code (using the sd_ble_gap_device_name_set() function) to a string longer than 8 characters, the bootloader crashes; I have been looking for the root cause of that crash, but did not really find it yet; where does this limitation come from? because in my normal application, I use longer names without a problem, and wanted to use more or less the same name if possible

Reply
  • Hi Bjorn,

    I found the issue - my code and memory configurations were ok, but in the JLINKExe command line options I used the wrong device type, so I guess it was written to the wrong position in flash or something; all seems to work now, except for 1 thing: if I set the device name in the DFU bootloader code (using the sd_ble_gap_device_name_set() function) to a string longer than 8 characters, the bootloader crashes; I have been looking for the root cause of that crash, but did not really find it yet; where does this limitation come from? because in my normal application, I use longer names without a problem, and wanted to use more or less the same name if possible

Children
Related