Page 1 of 1

[SOLVED] Create a variable at an absolute address in flash

Posted: Thu Jul 23, 2020 3:48 pm
by hattmt
Hi,

I would like to know how we can create a variable at an absolute address in the binary file, like the definition for ARM compiler:

const uint32_t variable __attribute__((at(0x08010000))) = 0X15056687;

http://www.keil.com/support/man/docs/ar ... 981140.htm

I tried with the linker(.ld) but the addresses are mapped in flash and I don't know which address to use.

At the end, I would like to have my variable at a specified offset in my binary file , to flash it with my firmware .
And would like to access and modify the value from my bootloader and my firmware.

Re: Create a variable at an absolute address in flash

Posted: Fri Jul 24, 2020 9:13 pm
by ESP_Sprite
That should be possible using LD files, but it's quite the dirty hack, and you'll need to do some work in parsing the on-flash format and doing the required transformations that the MMU does in order to figure out where your variable will end up in the bin file... can I suggest instead creating a small partition for this and memory mapping it into RAM?

Re: Create a variable at an absolute address in flash

Posted: Fri Feb 12, 2021 1:01 pm
by hattmt
Thank you for you reply ,
I did it , in editing the .ld , it worked