



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Arm 系統(tǒng)中常用的段分類說明一基本概念: .text段是代碼段。它用來放程序代碼(code)。它通常是只讀的。 .data段是數(shù)據(jù)段。它用來存放初始化了的(initailized)全局變量(global)和初始化了的靜態(tài)變量 (static)。它是可讀可寫的。 .bss段是全局變量數(shù)據(jù)段。它用來存放未初始化的(uninitailized)全局變量(global)和未初始化的靜 態(tài)變量(static)。它也是可讀可寫的。bss是英文Block Started by Symbol的縮寫。之所以把bss跟data 分開來,是因?yàn)橄到y(tǒng)會(huì)為這些bss段的變量的初值清零。 .rodata段是常量數(shù)據(jù)段。它用來存放常量(const)。它也是只讀的。 可以歸類代碼段1、棧(存放著局部變量和函數(shù)參數(shù)等數(shù)據(jù)),向下生長 (可讀可寫可執(zhí)行)2、堆(給動(dòng)態(tài)分配內(nèi)存是使用),向上生長 (可讀可寫可執(zhí)行)3、數(shù)據(jù)段(保存全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)) (可讀可寫不可執(zhí)行)4、代碼段(保存代碼) (可讀可執(zhí)行不可寫)注:向上增長:向高地址增長向下增長:向低地址增長代碼段和數(shù)據(jù)段之間有明確的分隔,但是數(shù)據(jù)段和堆棧段之間沒有,而且棧是向下增長,堆是向上增長的,因此理論上來說堆和棧會(huì)“增長到一起”,但是操作系統(tǒng)會(huì)防止這樣的錯(cuò)誤發(fā)生二進(jìn)一步闡釋,在ARM的集成開發(fā)環(huán)境中: 1、只讀的代碼段稱為Code段,即上述的.text段。 2、只讀的常量數(shù)據(jù)段,被稱作RO Data段,即上述的.constdata段。 以上兩個(gè)段統(tǒng)稱為RO段(Read Only),放在ROM或FLASH等非易失性器件中。 3、可讀可寫的初始化了的全局變量和靜態(tài)變量段,被稱作RW Data段(ReadWrite),即上述的.data段 。 4、可讀可寫的未初始化的全局變量和靜態(tài)變量段,被稱作ZI Data段(Zero Init),即上述的.bss段。 因?yàn)檫@個(gè)段里的變量要被初始化為零,所以叫ZI段。 以上兩個(gè)段統(tǒng)稱為RW段,在運(yùn)行時(shí),它必須重新裝載到可讀可寫的內(nèi)部RAM中。 方法:可執(zhí)行文件通過一定的方式內(nèi)存映射在ADS下,可執(zhí)行文件,種類:有兩種:一種是.axf文件,帶有調(diào)試信息,可供AXD調(diào)試工具使用.另一種是.bin 文件,可執(zhí)行的二進(jìn)制代碼文件。bin文件的組成。我們把可執(zhí)行文件分為兩種情況:分別為存放態(tài)和運(yùn)行態(tài)。 1. 存放態(tài)是指可執(zhí)行文件通過fromelf產(chǎn)生后,在存儲(chǔ)介質(zhì)(flash或磁盤)上的分布. 此時(shí)可執(zhí)行文件一般由兩部分組成:分別是代碼段和數(shù)據(jù)段。代碼段又分為可執(zhí)行代碼段(.text)和只讀數(shù)據(jù)段(.rodata), 數(shù)據(jù)段又分為初始化數(shù)據(jù)段(.data)和未初始化數(shù)據(jù)段(.bss)。可執(zhí)行文件的存放態(tài),裝載前 ROM分布如下: | . | +-+- | .bss | ZI 段+-+- +-+- 數(shù)據(jù)段 | .data | RW 段 +-+-+-+- | .rodata | |+-+-_| 代碼段(RO 段) | .text |+-+-| . | 2. 運(yùn)行態(tài)可執(zhí)行文件通過裝載過程, 搬入到RAM中運(yùn)行, 這時(shí)候可執(zhí)行文件就變成運(yùn)行態(tài)。在ADS下對(duì)可執(zhí)行代碼各段有另一個(gè)名稱: 當(dāng)可執(zhí)行文件裝載后, 在RAM中的分布如下: | . | +-+- ZI段結(jié)束地址 | ZI 段 | +-+- ZI段起始地址 | 保留區(qū)2 | +-+- RW段結(jié)束地址 | RW 段 | +-+- RW段起始地址 | 保留區(qū)1 | +-+- RO段結(jié)束地址 | RO 段 | +-+- RO段起始地址 | . | 裝載后所以裝載過程必須完成把執(zhí)行文件的各個(gè)段從存儲(chǔ)介質(zhì)上搬到RAM指定的位置。而這個(gè)裝載過程由誰 來完成呢?由啟動(dòng)程序來完成. 3.如何裝載?裝載過程在ADS中,可以通過兩種方式來指定可執(zhí)行代碼各段在RAM中的位置一種是用armlink來指定,一種是用scatter文件來指定.RAM區(qū)的起始地址:0x30000000. 1. armlink指定代碼段地址。我們通常的代碼,只用指定兩個(gè)段開始地址, RO段的起始地址和RW段的起始地址, ZI段緊接在RW段之后. 2. scatter指定代碼段地址。通過scatter文件指定可執(zhí)行文件各段的詳細(xì)地址. Scatter文件,例如: MYLOADER 0x30000000 ;/MYLOADER: 為可執(zhí)行文件的名稱, 可自定義 ;0x3000000: 起始地址 RO 0x30000000 ; /RO 只讀代碼段的名稱 ;0x30000000: 只讀代碼段的起始地址 init.o (Init, +First) ;/ Init代碼段為可執(zhí)行文件的第一部分. (+RO) ;/所有其它的代碼段和只讀數(shù)據(jù)段放在該部分 RW +0 ;/RW: RW段的名稱 ;+0: 表示RW段緊接著RO段 (+RW) ; /所有RW段放在該部分 ZI +0 ;/ZI: ZI段的名稱 ;+0: 表示ZI段緊接著RW段 *(+ZI) ;/所有ZI段放在該部分 3. ADS產(chǎn)生的各代碼段宏 |Image$RO$Base| /* RO代碼段起始地址 */ |Image$RO$Limit| /* RO 代碼段結(jié)束地址 */ |Image$RW$Base| /* RW代碼段起始地址 */ |Image$RW$Limit| /* RW 代碼段結(jié)束地址 */ |Image$ZI$Base| /* ZI 代碼段起始地址 */ |Image$ZI$Limit| /* ZI 代碼段結(jié)束地址 */ 注意:在兩個(gè)$之間的名稱, 與scatter中指定的段的名稱相同. 4. 裝載過程說明l 當(dāng)從NorFlash啟動(dòng)時(shí), 要把flash芯片的首地址映射到0x00000000位置, l 系統(tǒng)啟動(dòng)后, 啟動(dòng)程序本身把自己從 flash中搬到RAM中運(yùn)行. 搬移后的各段起始地址, 由以上宏來確定. l 當(dāng)從NandFlash啟動(dòng)時(shí), S3C2410會(huì)自動(dòng)把前NandFlash的前4k搬到S3C2410的內(nèi)部RAM中,并把內(nèi)部 RAM的首地址設(shè)為0x00000000,CPU從0x00000000開始執(zhí)行. 所以, 在nandFlash的前4k程序中,必須 包含從 NandFlash把BootLoader的其余部分裝入RAM的程序. 附:TI 編譯中常用的段說明 系統(tǒng)常用的段定義: .cinit:包含未用const聲明的外部(external)或靜態(tài)(static)數(shù)據(jù)表 .const:包含已用const聲明的外部或靜態(tài)數(shù)據(jù)表以及字符串常量。 .text:包含所有可執(zhí)行的代碼以及常量。 .bss:用于為cinit段以及未初始化的全局和靜態(tài)變量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年四川省瀘州市龍馬潭區(qū)高二下學(xué)期6月期末考試數(shù)學(xué)試題(解析版)
- 2025年甘肅省天水市中考生物真題含答案
- 高中物理《分子的熱運(yùn)動(dòng)》課教案、教學(xué)設(shè)計(jì)
- 黨員先鋒崗活動(dòng)方案
- 防擁擠防踩踏心得體會(huì)
- 佛教寺廟保安管理制度
- 作業(yè)風(fēng)險(xiǎn)提級(jí)管理制度
- 供應(yīng)市場信息管理制度
- 供暖安全維修管理制度
- 供水企業(yè)資金管理制度
- 2025年第六屆全國國家版圖知識(shí)競賽題庫及答案(中小學(xué)組)
- 中國傳統(tǒng)禮儀全課件
- 自然保護(hù)地勘界立標(biāo)技術(shù)指引
- 《論文寫作》課件 第1章 論文寫作的基本概念
- 廣東省省級(jí)政務(wù)信息化服務(wù)預(yù)算編制標(biāo)準(zhǔn)(運(yùn)維服務(wù)分冊)
- 心肺復(fù)蘇課件2024
- 2025年1月福建省普通高中學(xué)業(yè)水平合格性考試語文仿真模擬卷02(春季高考適用)(考試版)
- PMCAD(V31)用戶手冊標(biāo)準(zhǔn)版
- 《粉塵分散度和游離》課件
- 物業(yè)管理會(huì)務(wù)服務(wù)方案
- GB/T 35601-2024綠色產(chǎn)品評(píng)價(jià)人造板和木質(zhì)地板
評(píng)論
0/150
提交評(píng)論