在为MSPG2211编译msp430-gcc(LTS 20120406未修补)的示例性C程序后,我使用readelf命令获得了以下输出:
节标题
程序标题
MSPG2211微控制器的地址空间结构如下:
0x0000 - 0x01FF - 外围设备
0x0200 - 0x027F - RAM
0x1000 - 0x10FF - Flash(信息存储器)
0x1100 - 0xF7FF - ???
0xF800 - 0xFFFF - Flash(代码存储器+中断向量)
节标题中显示的文本部分从0xF800开始,这是代码存储器的第一个地址。
文本段(仅包括文本部分)比文本部分大,并且已经在0xF76C开始。
据我了解,可加载段被加载到显示的物理地址以便程序执行。
那么为什么文本段的起始地址位于未定义的内存区域?
答案 0 :(得分:0)
某些名称部分(例如.text
)包含实际加载到MCU中的数据。
但是,ELF程序头只包含元数据;他们的地址并不重要。