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

About MBR area of softdevice

Hi, I'm using s130 as softdevice for nrf51822. I program the softdevice with the official s130 hex file. According to the hex file, there is no data at address from 0x7c0 to 0x1000. This is the reserved area for MBR. So I don't want to touch this address area, and just program other area with data. But the chip is finally stuck at the address 0x596 if there is some old data left at the area from address 0x7c0 to 0x1000. If I erase this area or just set the area to 0. Then the chip works file.

So looks like we have to set the area from address 0x7c0 to 0x1000 to all 0x0 or 0xFF data, otherwise the softdevice can't work fine.

My confuse is why we have to clear this area? Looks like this is a useless area, and should not effect anything. If we have to clear this area, then does it mean we should add this information to hex file of s130?

Parents
  • Hi,

    This area should not be touched.

    Could you provide more detailed info on what operation you're performing?

    Cheers Håkon

  • Hi Håkon, Thanks for your reply! But looks like I still haven't got the answer for my confuse. What kind of data should be programmed into this higher area of MBR? The flash tool programs the flash through SWD interface according to the hex file, and will ignore this area since there is no indication for it in hex file. But it can't work if there is some old data in it, we have to erase it or set it to all 0x0 as I tested. If there is some requirement for setting this area to some special values(all 0 or 0xFF), it should be indicated in hex file. Why the hex file ignore it? Even if NVMC peripheral could write to this area, it should just erase this area and write new data. The old data should not effect.

Reply
  • Hi Håkon, Thanks for your reply! But looks like I still haven't got the answer for my confuse. What kind of data should be programmed into this higher area of MBR? The flash tool programs the flash through SWD interface according to the hex file, and will ignore this area since there is no indication for it in hex file. But it can't work if there is some old data in it, we have to erase it or set it to all 0x0 as I tested. If there is some requirement for setting this area to some special values(all 0 or 0xFF), it should be indicated in hex file. Why the hex file ignore it? Even if NVMC peripheral could write to this area, it should just erase this area and write new data. The old data should not effect.

Children
No Data
Related