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)各段及其分配的更多信息,請參閱 ARM 匯編語言工具用戶指南 中介紹的目標(biāo)文件信息。。
段有兩種基本的類型:
匯編器會創(chuàng)建默認(rèn)段 .text、.bss和 .data。您可以指示編譯器使用 CODE_SECTION 和 DATA_SECTION pragma 創(chuàng)建其他段(請參閱節(jié) 5.11.4和節(jié) 5.11.7)。
鏈接器從不同的目標(biāo)文件中獲取各個段,并合并具有相同名稱的段。表 6-1中列出了生成的輸出段,以及每個段在存儲器中的適當(dāng)位置。您可以根據(jù)需要將這些輸出段放置在地址空間中的任何位置,以滿足系統(tǒng)要求。
| 段 | 存儲器類型 | 段 | 存儲器類型 |
|---|---|---|---|
| .bss | RAM | .pinit | ROM 或 RAM |
| .cinit | ROM 或 RAM | .stack | RAM |
| .const | ROM 或 RAM | .sysmem | RAM |
| .data | RAM | .text | ROM 或 RAM |
| .init_array | ROM 或 RAM |
可以使用鏈接器命令文件中的 SECTIONS 指令來自定義段分配過程。有關(guān)將段分配到存儲器中的更多信息,請參閱 ARM 匯編語言工具用戶指南 中的鏈接器說明一章。