ZHCU947E June 2015 – January 2023
MEMORY 和 SECTIONS 指令提供了灵活的方法来进行段的构建、组合和分配。但是,任何未 指定的存储器位置或段仍必须由链接器处理。链接器使用相应的算法并根据您提供的任何规格来构建和分配段。
如果不使用 MEMORY 和 SECTIONS 指令,则链接器会按照TMS320C6000 器件的默认分配中所示的存储器映射和段定义,进行输出段的分配。
MEMORY
{
RAM : origin = 0x00000001, length = 0xFFFFFFFE
}
SECTIONS
{
.text : ALIGN(32) {} > RAM
.const : ALIGN(8) {} > RAM
.data : ALIGN(8) {} > RAM
.bss : ALIGN(8) {} > RAM
.cinit : ALIGN(4) {} > RAM ; cflag option only
.pinit : ALIGN(4) {} > RAM ; cflag option only
.stack : ALIGN(8) {} > RAM ; cflag option only
.far : ALIGN(8) {} > RAM ; cflag option only
.sysmem: ALIGN(8) {} > RAM ; cflag option only
.switch: ALIGN(4) {} > RAM ; cflag option only
.cio : ALIGN(4) {} > RAM ; cflag option only
}
有关默认存储器分配的信息,请参阅GUID-FC2C296D-B5F8-493B-BBB4-E41952F7D3C9.html#GUID-FC2C296D-B5F8-493B-BBB4-E41952F7D3C9。
在可执行输出文件中,所有 .text 输入段被连接起来形成一个 .text 输出段,所有 .data 输入段被组合起来形成一个 .data 输出段。
如果使用 SECTIONS 指令,则链接器不执行此默认分配的任何部分。实际上,会根据 SECTIONS 指令指定的规则和接下来在GUID-BC307B9B-7171-40CB-B68D-3D1CF4FF8B36.html#GUID-BC307B9B-7171-40CB-B68D-3D1CF4FF8B36中介绍的通用算法来执行分配。