在我的项目中,我定义了:(这不是真正的代码 - 用于抽象目的)
typedef struct {
...
} my_struct;
在一些 C 文件中,我声明:
my_struct my_struct_inst;
在其他 2 个 C 文件中,我通过声明使用该结构:
extern my_struct my_struct_inst;
并使用它的内容。
我使用 RVCT2.2 将该代码编译到 ARM 并试图找到该结构的地址:
1) 何时将内存分配给 my_struct_inst?在编译时间?在运行时?
2)在反汇编中,我可以看到在该.FLASH_RAM
部分(可能是此类数据所属的位置)中有一些参考,例如: my_struct_inst % 0x190 我是用 IDA 得到的。这是什么意思?(那个结构实例将从节开头的偏移量 0x190 开始.FLASH_RAM
?)
3)当我写时,实际地址(结构实际位于内存中的位置)是如何被访问的my_struct_inst.some_member
(我应该阅读一些 ABI 文档吗?)