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
编译器生成可重定位的代码块和数据块。这些块,称为段,以各种方式分配在内存中,以符合各种系统配置。有关编译器如何使用这些段的完整说明,请参阅节 6.1.1。
编译器创建两种基本类型的段:初始化段和未初始化段。表 4-1 总结了初始化段。表 4-2 总结了未初始化段。
名称 | 内容 |
---|---|
.binit | 引导时间复制表(有关链接器命令文件中BINIT的信息,请参阅汇编语言工具用户指南。) |
.cinit | 用于显式初始化全局和静态变量的表。 |
.const | 显式初始化的全局和静态常量变量。 |
.data | 显式初始化的全局和静态非常量变量。 |
.init_array | 启动时要调用的构造函数表。 |
.ovly | 复制除引导时间 (.binit) 复制表以外的表。只读数据。 |
.text | 可执行代码和常量。还包含字符串文字和切换表。有关例外情况,请参阅节 6.1.1。 |
.TI.crctab | 生成的 CRC 校验表。只读数据。 |
名称 | 内容 |
---|---|
.bss | 未初始化全局和静态变量 |
.cio | 运行时支持库中 stdio 函数的缓冲区 |
.stack | 栈 |
.sysmem | 用于动态内存分配(malloc 等)的内存池(堆) |
链接程序时,必须指定内存中分配这些段的位置。通常,初始化段链接到 ROM 或 RAM 中,而未初始化段链接到 RAM 中。
链接器提供了 MEMORY 和 SECTIONS 指令用于分配段。有关将段分配到存储器中的更多信息,请参阅 ARM 汇编语言工具用户指南。