ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
编译器生成称为段 的可重定位代码块和数据块,这些代码块以多种方式分配到内存中,以符合各种系统配置。有关各段及其分配的更多信息,请参阅 ARM 汇编语言工具用户指南 中介绍的目标文件信息。。
段有两种基本的类型:
汇编器会创建默认段 .text、.bss和 .data。您可以指示编译器使用 CODE_SECTION 和 DATA_SECTION pragma 创建其他段(请参阅节 5.11.4和节 5.11.7)。
链接器从不同的目标文件中获取各个段,并合并具有相同名称的段。表 6-1中列出了生成的输出段,以及每个段在存储器中的适当位置。您可以根据需要将这些输出段放置在地址空间中的任何位置,以满足系统要求。
段 | 存储器类型 | 段 | 存储器类型 |
---|---|---|---|
.bss | RAM | .pinit | ROM 或 RAM |
.cinit | ROM 或 RAM | .stack | RAM |
.const | ROM 或 RAM | .sysmem | RAM |
.data | RAM | .text | ROM 或 RAM |
.init_array | ROM 或 RAM |
可以使用链接器命令文件中的 SECTIONS 指令来自定义段分配过程。有关将段分配到存储器中的更多信息,请参阅 ARM 汇编语言工具用户指南 中的链接器说明一章。