ZHCU876Z July 2001 – October 2023 SM320F28335-EP
C/C++ 编译器生成的代码适合在基于 ROM 的系统中作为固件使用。在这样的系统中,.cinit 段中的初始化表存储在 ROM 中。在系统初始化时,C/C++ 引导程序将数据从这些表(位于 ROM 中)复制到 .ebss 或 .bss (RAM) 中初始化的变量中。
当程序直接从目标文件加载到内存中并运行时,可以避免 .cinit 段占用内存空间。加载器可以直接从目标文件(而不是从 ROM)中读取初始化表,并在加载时直接执行初始化而不是在运行时执行初始化。可以使用 --ram_model 链接选项将其指定给链接器。有关更多信息,请参阅 节 7.10。