1

在使用 msp430-gcc(未修补 LTS 20120406)为 MSPG2211 编译示例 C 程序后,我使用 readelf 命令得到以下输出:

节标题

剖面图

程序头

分段图像

MSPG2211 微控制器的地址空间结构如下:

0x0000 - 0x01FF - 外设

0x0200 - 0x027F - 内存

0x1000 - 0x10FF - 闪存(信息存储器)

0x1100 - 0xF7FF - ???

0xF800 - 0xFFFF - 闪存(代码存储器 + 中断向量)

部分标题中显示的文本部分从代码存储器的第一个地址 0xF800 开始。

文本段,仅包括文本部分,比文本部分大,并且已经从 0xF76C 开始。

据我了解,可加载段被加载到显示的物理地址以供程序执行。

那么为什么文本段的起始地址位于未定义的内存区域内呢?

4

1 回答 1

0

某些名称部分(例如.text)包含实际加载到 MCU 中的数据。

然而,ELF 程序标头仅包含元数据;他们的地址无关紧要。

于 2015-05-22T17:22:27.617 回答