We have been working on a project that requires the following separate segments be programmed to the board:
- softdevice hex file
- app hex file
- UICR hex file
We are using a Segger JLink + GCC as our development environment.
We merge these hex files to form a nice packaged single output file which covers the 3 ranges that we care about. However, with the UICR being an extended linear address and the other segments only needing extended segment addresses - we noticed that when we do a loadfile
only the first two ranges get programmed.
Strangely enough, when we split the programming into two calls to the loadfile
- things work great. Even stranger still - if the UICR regions are the fist entries in the hex file (before the app and SD) and if we insert a 0 address extended linear record - things work as expected (020000040000FA
).
This is not a huge issue, as we have a work-around, but I think this should be easily handled by the appropriate tool. Not expecting NRF guys to go fix the jlink stuff - but in case anyone was experiencing the same issue, maybe this will help.
Edit 9/15/2016:
I tried to use the nrfjprog
tool to do the same, but it seems like it notices the end of hex file and only pushes the first segment. Removing the end of file marker in the hex does the trick, I suppose I could either use mergehex
or roll my own little script. Thank you again Bjørn!