ZHCU947E June 2015 – January 2023
未初始化的段在 TMS320C6000 存储器中保留空间;它们通常位于 RAM 中。这些段在目标文件中并无实际内容;只是保留存储器。程序可以在运行时使用此空间来创建和存储变量。
未初始化的数据区域是使用以下汇编器指令编译的。
每次调用 .bss 或 .usect 指令时,汇编器都会在 .bss 或用户命名段中保留额外空间。语法为:
.bss symbol,size in bytes[, alignment[, bank offset] ] | |
symbol | .usect "section name", size in bytes[, alignment[, bank offset] ] |
symbol(符号) | 指向此次通过调用 .bss 或 .usect 指令保留的第一个字节。符号 对应于要保留空间的变量的名称。它可由任何其他段引用,也可声明为全局符号(使用 .global 指令)。 |
size in bytes(以字节表示的大小) | 是一个绝对表达式(请参阅GUID-613179DF-4A19-4DBD-8339-941354CDFE7D.html#GUID-613179DF-4A19-4DBD-8339-941354CDFE7D)。.bss 指令用于在 .bss 段中保留 以字节表示的大小 个字节。.usect 指令用于在 段名 中保留 以字节表示的大小 个字节。对于这两条指令,用户必须指定大小;无默认值。 |
alignment(对齐) | 是一个可选参数。它指定分配的空间所需的最小对齐量(以字节为单位)。默认值是字节对齐;此选项由值 1 表示。该值必须是 2 的幂。 |
bank offset(模块偏移量) | 是一个可选参数。可确保分配给符号的空间出现在特定存储器组的边界上。模块偏移量 测量在将符号分配给该位置之前从指定的对齐偏移的字节数。 |
section name(段名) | 指定要保留空间的用户命名段。请参阅GUID-0DDC4E29-07CE-4B9C-8524-6557CABC1D0F.html#GUID-0DDC4E29-07CE-4B9C-8524-6557CABC1D0F。 |
初始化段的指令(.text、.data 和 .sect)可更改将哪个段视为当前 段(请参阅GUID-1656ACA2-A8EC-43B6-A2D5-841DF5E62343.html#GUID-1656ACA2-A8EC-43B6-A2D5-841DF5E62343)。但 .bss 和 .usect 指令不会 更改当前段;它们只是临时离开当前段。在 .bss 或 .usect 指令之后,汇编器会立即继续汇编到这些指令之前的当前段。.bss 和 .usect 指令可出现在初始化段中的任何位置,不会影响其内容。请参阅GUID-8BD23949-7527-4C96-9736-3F7BBD7E7343.html#GUID-8BD23949-7527-4C96-9736-3F7BBD7E7343的示例。
.usect 指令也可用于创建未初始化的子段。有关创建子段的更多信息,请参阅GUID-77F852EA-5424-41C5-B598-89F2E74C742C.html#GUID-77F852EA-5424-41C5-B598-89F2E74C742C。
.nearcommon 和 .farcommon 指令与创建未初始化数据段的指令类似,只是通用符号是由链接器创建的。