In my project I defined: (This is not the real code - for abstraction purpose)
typedef struct {
...
} my_struct;
In some C file I declared:
my_struct my_struct_inst;
And in other 2 C files I used that struct by declaring:
extern my_struct my_struct_inst;
and used it's contents.
I compiled that code to ARM with RVCT2.2 and trying to find the address of that structure:
1) When does memory being allocated to my_struct_inst? On compilation time? On run time?
2) In the disassembly I can see that in the .FLASH_RAM
section (probably where this kind of data belongs) there is some reference like:
my_struct_inst % 0x190
I got it with IDA. What does it mean? (That that struct instance will start at offset 0x190 from the beginning of .FLASH_RAM
section?)
3) How exactly the actual address (where the struct actually sitting in memory) is being accessed when I write my_struct_inst.some_member
(should I read some ABI documentation?)