We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I've asked this Q in Stack-Overflow, but no help... ;-(
I've encountered a strange behavior which blocks a sort of journaling file-system flash architecture I'm working on. I'm trying to position an executable at a specific 8-byte aligned address, by modifying the MEMORY/FLASH/ORIGIN field in my linker-script. Everything is fine till I add a call to printf() - then the start address is 16-byte aligned.
MEMORY/FLASH/ORIGIN
printf()
I'm using the minimal semihost sample application from the gcc-arm-none-eabi toolchain (gcc-arm-none-eabi-9-2020-q2-update-win32). I changed the MEMORY/FLASH/ORIGIN field in the linker-script to 8.
Generating the HEX-file: arm-none-eabi-objcopy.exe -O ihex .\semihost-CM4.axf .\semihost-CM4.hex Thanks.
arm-none-eabi-objcopy.exe -O ihex .\semihost-CM4.axf .\semihost-CM4.hex
One can download the project: https://drive.google.com/file/d/1ODcoypaBeTw38BqWnysbm4PuPgaGIRuw/view?usp=sharing
$ make clean $ make