Issue when flashing an hex above address 0x20000


#1

Hello,

I discovered an issue trying to flash a code (ihex format) with MSD drag and drop.
I’m using the bootloader address to start my application at address 0x1F000. Everything works fine.
Now starting my application at address 0x20000 or above and nothing works…
Looking into the hex file (generated by arm gcc), I saw the line:
:020000022000DC
The 02 in bold means an Extended Segment Address. Next addresses are offset by 16 * 0x2000 = 0x20000, which is OK.
I replaced this line in the hex file by:
:020000040002F8
And here is the magic: now it works again.
The 04 means an Extended Linear Address. Next addresses are offset by 0x20000

I don’t know why the initial addressing mode doesn’t work above 0x20000 (=128 kBytes). It’s probably a bug in the DAP link firmware.