ZHCU876Z July 2001 – October 2023 SM320F28335-EP
.cinit 段只能包含这种格式的初始化表。连接汇编语言模块时,请勿将 .cinit 段用于任何其他目的。
.pinit 或 .init_array 段(具体取决于 ABI)中的表仅包含待调用的构造函数的地址列表(请参见图 7-3)。构造函数显示在表中的 .cinit 初始化之后。
当您使用 --rom_model 或 --ram_model 选项时,链接器会组合来自所有 C 模块的 .cinit 段,并在 .cinit 复合段的末尾附加一个空字。此终止记录显示为字段大小为 0 的记录,并标记初始化表的末尾。
同样,--rom_model 或 --ram_model 链接选项会使链接器组合来自所有 C/C++ 模块的所有 .pinit 或 .init_array 段,并在 .pinit 或 .init_array 复合段的末尾附加一个空字。启动例程在遇到空构造函数地址时知道全局构造函数表的末尾。
符合常量条件的变量的初始化方式有所不同;请参阅节 6.5.1。