ZHCUAV8W january 1998 – 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
編譯器生成可重定位的代碼塊和數(shù)據(jù)塊。這些塊,稱為段,以各種方式分配在內(nèi)存中,以符合各種系統(tǒng)配置。有關(guān)編譯器如何使用這些段的完整說(shuō)明,請(qǐng)參閱節(jié) 6.1.1。
編譯器創(chuàng)建兩種基本類型的段:初始化段和未初始化段。表 4-1 總結(jié)了初始化段。表 4-2 總結(jié)了未初始化段。
| 名稱 | 內(nèi)容 |
|---|---|
| .binit | 引導(dǎo)時(shí)間復(fù)制表(有關(guān)鏈接器命令文件中BINIT的信息,請(qǐng)參閱匯編語(yǔ)言工具用戶指南。) |
| .cinit | 用于顯式初始化全局和靜態(tài)變量的表。 |
| .const | 顯式初始化的全局和靜態(tài)常量變量。 |
| .data | 顯式初始化的全局和靜態(tài)非常量變量。 |
| .init_array | 啟動(dòng)時(shí)要調(diào)用的構(gòu)造函數(shù)表。 |
| .ovly | 復(fù)制除引導(dǎo)時(shí)間 (.binit) 復(fù)制表以外的表。只讀數(shù)據(jù)。 |
| .text | 可執(zhí)行代碼和常量。還包含字符串文字和切換表。有關(guān)例外情況,請(qǐng)參閱節(jié) 6.1.1。 |
| .TI.crctab | 生成的 CRC 校驗(yàn)表。只讀數(shù)據(jù)。 |
| 名稱 | 內(nèi)容 |
|---|---|
| .bss | 未初始化全局和靜態(tài)變量 |
| .cio | 運(yùn)行時(shí)支持庫(kù)中 stdio 函數(shù)的緩沖區(qū) |
| .stack | 棧 |
| .sysmem | 用于動(dòng)態(tài)內(nèi)存分配(malloc 等)的內(nèi)存池(堆) |
鏈接程序時(shí),必須指定內(nèi)存中分配這些段的位置。通常,初始化段鏈接到 ROM 或 RAM 中,而未初始化段鏈接到 RAM 中。
鏈接器提供了 MEMORY 和 SECTIONS 指令用于分配段。有關(guān)將段分配到存儲(chǔ)器中的更多信息,請(qǐng)參閱 ARM 匯編語(yǔ)言工具用戶指南。