This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

S110 version 5.2 splitting using gcc objcopy. Programming failed at 0x10001010

Hi 'Nordic' guys,

splitting the original S110 hex file provided by Nordic , version 5.2, there is an error extracting uicr section.

Now is only 20 bytes and not 32 as old version.

Jlink reports an error occurring at address 0x10001000.

Error: Programming failed @ address 0x10001010 (block verification error) Verification failed @ address 0x10001000

and, as consequence, writing the remaining part of soft device :

Writing bin data into target memory @ 0x00000000. Info: J-Link: Flash download: Flash programming performed for 2 ranges (72704 bytes)

****** Error: Programming failed @ address 0x10001010 (block verification error) Verification failed @ address 0x00000000

Which is the address to start writing uicr ? In old jlink script (works right up to version 5.1)

... loadbin uicr.bin 0x10001000 loadbin softdevice.bin 0 ...

An help is wellcome.

-c

  • I can't seem to reproduce this. As you've found out, the definition of UICR is some bytes shorter with 5.2, but this shouldn't really cause any problems.

    Are you sure you have erased the entire chip before flashing a new softdevice? If not, this is most likely the problem. An erase all can be done with the following sequence in jlink:

    
    device nrf51822
    w4 4001e504 2
    w4 4001e50c 1
    w4 4001e514 1
    sleep 100
    r
    
    

    You can also have a look at the Makefile provided here, which is what I've been personally using to flash from Linux.

  • Hi Ole,

    yes, I've erased all.

    This is the script : (it has worked until version 5.2)

    r device nrf51822 speed 1000 // // // w4 4001e504 2 w4 4001e50c 1 w4 4001e514 1 // // r // w4 4001e504 1 loadbin /nordic/uicr.bin 0x10001000 loadbin /nordic/softdevice.bin 0 r g exit

    Same issue same problem reported by Robert Tylor https://devzone.nordicsemi.com/index.php/soft-device-5-2-0,-gcc-and-macos-x

    Bye!

    -c

  • Hi Ole, issue not yet solved. I use segger jlink OS X version not linux.

    -c

  • I was seeing the same behavior locally but it seems to be related more to JLink version than with the softdevice version. Mac JLink Software version 2.69a would work with soft device 5.2.1, but version 2.74 would fail to write the soft device with the error:

    ****** Error: Programming failed @ address 0x10001010 (block verification error)
    Verification failed @ address 0x10001000
    

    However, if I add an additional reset between the NVIC CONFIG WRITE ENABLE and the load, it seems to work:

    w4 4001e504 1
    r  <-- added reset
    loadbin ../s110_nrf51822_5.2.1_softdevice_uicr.bin 0x10001000
    

    Hope this helps.

    -c

  • Maybe I spoke too soon. I'm seeing this again with version 4.74 and the added reset. When I switch back to 2.69a, it goes away.

    I'm pretty frustrated with Segger. Their Mac support is basically a joke.

Related