NUCLEO L476RG override /macro change MBED_APP_START address with mbed online compiler?

12 Apr 2019

I'm trying to get a bootloader to work (https://github.com/ARMmbed/mbed-bootloader-extended) and also use the online compiler at the same time (https://ide.mbed.com/compiler)

I had to hunt down the combine_bootloader_with_app.py script and get it to work with the v2 header / change endianess. Looks like the original authors dropped it once the mbed cloud client came out. Cloud compiler wont work for my device unfortunately since it wont be internet connected once deployed...

So I got it working until we get to: [BOOT] Application's start address: 0x8010400 [BOOT] Application's jump address: 0x80003A1 [BOOT] Application's stack address: 0x20018000 [BOOT] Forwarding to application... (device resets)

So write off the bat, the jump address is wrong. Looking at the code the jump address is coded directly into the .bin file itself starting at byte 4 in the bin file. correct address should be 0x80107A1 which I hex edited the bin file and got a bit further along but alas it looks like there are quite a few 0x8000000 addresses all coded into the .bin file from the online compiler. Basically my application offset is at 0x8010400 and so the bin from the online compiler wont work here unless I can force the online compiler to let me change the starting offset.

Does anyone know if this is possible or not with the online compiler? Looks like my only 2 options now are (lots of .bin hex editing... ugh) or get away from the online compiler and setup a local development environment since there does seem to be documentation for getting mbed support bootloader (https://os.mbed.com/docs/mbed-os/v5.12/tutorials/bootloader.html)

15 Apr 2019

I was able to solve this by not using the online compiler and going the GCC Toolchain route in linux.