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

softdevice update

First, many thanks for the great DFU recipe in the latest SDK!

I've ported OTA DFU to the IAR tool chain for both s110 and s310. I can flip back and forth between the two softdevices by updating from a .zip file with softdevice, bootloader and init files specific to the target softdevice. This would seem to be safe with v7.1.0 s110 and v2.0.1 s310 since the MBRs are identical.

I notice one small issue when I read back the programmed softdevice images after DFU. When initially programmed after erase the 16 bytes at 0x0800 are 1-filled, and they remain erased after a normal application-only update. This makes sense because these locations are undefined in the softdevice hex file and should remain erased.

However, after softdevice and bootloader DFU for the s110 I find:

:10080000000000000C120300E6180000FF63000067

and for the s310 I find:

:1008000000000000E0100300E6180000FF63000095

I believe this is an unused portion of the MBR and this is a non-issue. Can anyone confirm this, and also confirm that it is generally safe to update softdevice+bootloader between S110 and S310?

Thanks and Best Regards, Matt

Parents
  • Hopefully, considering how small this particular item is, and the fact it was derived from existing functionality, it will be ok to share. If not, I understand, maybe someone else will be able to help me out. I've got enough to actually compile the code, but I don't think things are being put into the right places. I used the GCC version as a start, since it had far less assembly, and used the ICF file to create the memory regions, but after reading your message it looks like you took a better approach.

Reply
  • Hopefully, considering how small this particular item is, and the fact it was derived from existing functionality, it will be ok to share. If not, I understand, maybe someone else will be able to help me out. I've got enough to actually compile the code, but I don't think things are being put into the right places. I used the GCC version as a start, since it had far less assembly, and used the ICF file to create the memory regions, but after reading your message it looks like you took a better approach.

Children
No Data
Related