ZHCUAV7Z september 1995 – 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 存储器中保留空间;它们通常位于 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(以字节表示的大小) | 是一个绝对表达式(请参阅节 4.9)。.bss 指令用于在 .bss 段中保留 以字节表示的大小 个字节。.usect 指令用于在 段名 中保留 以字节表示的大小 个字节。对于这两条指令,用户必须指定大小;无默认值。 |
alignment(对齐) | 是一个可选参数。它指定分配的空间所需的最小对齐量(以字节为单位)。默认值是字节对齐;此选项由值 1 表示。该值必须是 2 的幂。 |
bank offset(模块偏移量) | 是一个可选参数。可确保分配给符号的空间出现在特定存储器组的边界上。模块偏移量 测量在将符号分配给该位置之前从指定的对齐偏移的字节数。 |
section name(段名) | 指定要保留空间的用户命名段。请参阅节 2.4.3。 |
初始化段的指令(.text、.data 和 .sect)可更改将哪个段视为当前 段(请参阅节 2.4.4)。但 .bss 和 .usect 指令不会 更改当前段;它们只是临时离开当前段。在 .bss 或 .usect 指令之后,汇编器会立即继续汇编到这些指令之前的当前段。.bss 和 .usect 指令可出现在初始化段中的任何位置,不会影响其内容。请参阅节 2.4.7的示例。
.usect 指令也可用于创建未初始化的子段。有关创建子段的更多信息,请参阅节 2.4.6。
.common 指令与创建未初始化数据段的指令类似,只是通用符号是由链接器创建的。