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

Programming nRF52 SoftDevice using Keil uLink

I didn't find any documentation on how to program nRF52 (specifically, nRF52832, nRF52810) using Keil uLink instead of SeggerJLink.

(specifically, I am using a ULINKplus)

This came close, but is nRF51 - and doesn't (quite) do it for nRF52.

The following procedure seems to work - any comments/corrections?

  1. Open a suitable uVision example project for the required SoftDevice, and Select the SoftDevice download target - as described here.
  2. In the uVision Project Properties, on the 'Debug' tab, select the uLink as the debugger to use
  3. In the debugger settings, on the 'Debug' tab, ensure:
    1. 'SWJ' is not checked
    2. 'Port' is set to 'SW'
  4. on the 'Flash Download' tab:
    1. Add the 'nRF52xxx UICR' algorithm
    2. Add the 'nRF52xxx SoftDevice Erase' algorithm
    3. In 'RAM for Algorithm', set 'Size' to 0x2000
    4. select 'Erase Full Chip'
  5. 'OK' out of the dialogues

I think the counter-intuitive one here is having to select  'nRF52xxx SoftDevice Erase' as the algorithm - because I don't want to erase it - I want to program it!

Also, why does all this have to be set up manually?

Parents
  • There are different flash algorithm depending on how to treat the softdevice binary when programming the application, you may also find this useful: http://www.keil.com/support/docs/3824.htm 

    Typically you want to program the softdevice one time, and then work only on the application, in which case you want to avoid re-programming the softdevice every time you program the application, even if you select to erase full chip.

    If you want to avoid all the manual setup I suggest to use a nRF52-DK to program a third party hardware with a nRF device.

    Best regards,
    Kenneth

Reply
  • There are different flash algorithm depending on how to treat the softdevice binary when programming the application, you may also find this useful: http://www.keil.com/support/docs/3824.htm 

    Typically you want to program the softdevice one time, and then work only on the application, in which case you want to avoid re-programming the softdevice every time you program the application, even if you select to erase full chip.

    If you want to avoid all the manual setup I suggest to use a nRF52-DK to program a third party hardware with a nRF device.

    Best regards,
    Kenneth

Children
No Data
Related