自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
ARM基礎(chǔ)知識(9)
ARM基礎(chǔ)知識(9)
 更新時(shí)間:2008-7-26 20:53:06  點(diǎn)擊數(shù):6
【字體: 字體顏色

1.ELF格式文件的結(jié)構(gòu)


1.1映像文件組成部分


**一個(gè)映像文件有一個(gè)或多個(gè)域組成
**每個(gè)域包含一個(gè)或多個(gè)輸出段
**每個(gè)輸出段包含一個(gè)或多個(gè)輸入段
**各輸入段中包含了目標(biāo)文件中的代碼和數(shù)據(jù)

輸入段中包含了四類內(nèi)容:代碼、已經(jīng)初始化的數(shù)據(jù)、未經(jīng)初始化的存儲區(qū)域、內(nèi)容初始化成0的存儲區(qū)域。每個(gè)輸入段有相應(yīng)的屬性,可以為只讀的(RO)、可讀寫的(RW)以及初始化成0的(ZI)。ARM連接器根據(jù)個(gè)輸入段的屬性將這些輸入段分組,再組成不同的輸出段及域。
一個(gè)輸出段中包含了一系列的具有相同的RO、RW和ZI屬性的輸入段。輸出段的屬性與其中包含的輸入段的屬性相同。在一個(gè)輸出段的內(nèi)部,各輸入段是按照一定的規(guī)則排序的,這將在1.3節(jié)油詳細(xì)地介紹。
一個(gè)域中包含1-3個(gè)輸出段,其中個(gè)輸出段的屬性各不相同。各輸出段的排列順序是由其屬性決定的。其中RO屬性的輸出段排在最前面,其次是RW屬性的輸出段,最后是ZI屬性的輸出段。一個(gè)域通常映射到一個(gè)物理存儲器上,如ROM或RAM。


1.2ARM映像文件各組成部分的地址影射


ARM映像文件各組成部分在存儲系統(tǒng)中的地址有兩種:一種是映像文件位于存儲器中時(shí)(也就是該映像文件運(yùn)行之前)的地址,稱之為加載地址;一種是映像文件運(yùn)行時(shí)的地址,稱之為運(yùn)行時(shí)地址。之所以有這兩種地址,是因?yàn)橛诚裎募谶\(yùn)行時(shí),其中的有些域是可以移動的新的存儲區(qū)域。比如,已經(jīng)初始化的RW屬性的數(shù)據(jù)所在的段運(yùn)行之前可能保存系統(tǒng)的ROM中,在運(yùn)行時(shí),他被移動至RAM中。
通常,一個(gè)映像文件包含若干個(gè)域,各域又包含若干的輸出段。ARM連接器需要知道如下的信息,已決定如何生成相應(yīng)的映像文件。
**分組信息  決定如何將個(gè)輸入段組織成相應(yīng)的輸出段和域。
**定位信息  決定個(gè)域在存儲空間地址中的起始地址。
根據(jù)映像文件中地址映射的復(fù)雜程度,有兩種方法來告訴arm連接器這些相關(guān)信息。對于映像文件中地址映射關(guān)系比較簡單的情況,可以使用命令行選項(xiàng);對于映像文件中地址映射關(guān)系比較復(fù)雜的情況,可以使用一個(gè)配置文件。

 

2.arm映像文件的入口點(diǎn)


2.1arm映像文件的入口點(diǎn)有兩種類型:一種是映像文件運(yùn)行時(shí)的入口點(diǎn),稱為初始入口點(diǎn)(initial entry point),另一種是普通入口點(diǎn)(entry point).
初始入口點(diǎn)是映像文件運(yùn)行時(shí)的入口點(diǎn),每個(gè)映像文件只有一個(gè)唯一的初始入口點(diǎn),它保存在ELF頭文件中。如果映像文件是被操作系統(tǒng)加載的,操作系統(tǒng)是通過跳轉(zhuǎn)到該初始入口點(diǎn)處來加載該映像文件。
普通的入口點(diǎn)是在匯編中用ENTRY偽操作定義。他通常用于標(biāo)志該段代碼是通過異常中斷處理程序進(jìn)入的。這樣連接器刪除無用的段時(shí)不會將該段代碼刪除。一個(gè)映像文件中可以定義多個(gè)普通入口點(diǎn)。
應(yīng)該注意的是,初始入口點(diǎn)可以使普通入口點(diǎn),但也可以不是普通入口點(diǎn)。


2.2定義初始入口點(diǎn)


初始入口點(diǎn)必須滿足下面兩個(gè)條件:
**初始入口點(diǎn)必須位于映像文件的運(yùn)行時(shí)域內(nèi)。
**飽含初始入口點(diǎn)的運(yùn)行時(shí)域不能被覆蓋,他的加載地址和運(yùn)行地址必須是相同的。
可以使用連接選項(xiàng)-entry address來指定映像文件的初始入口點(diǎn)。這時(shí),address指定了映像文件的初始入口點(diǎn)的地址值。
對于地址0x0處為rom的嵌入式應(yīng)用系統(tǒng),可以使用-entry 0x0來指定映像文件的初始入口點(diǎn)。這樣當(dāng)系統(tǒng)復(fù)位后,自動跳轉(zhuǎn)到該入口開始執(zhí)行。
如果映像文件是被一個(gè)加載器加載的,該映像文件該映像文件必須包含一個(gè)初始化入口點(diǎn)。這種映像文件通常還包含了其他普通入口點(diǎn),這些普通入口點(diǎn)一般為異常中斷處理程序的入口地址。
當(dāng)用戶沒有指定-entry address時(shí),連接器根據(jù)下面的規(guī)則決定映像文件的初始入口點(diǎn)。
**如果輸入的目標(biāo)文件中只有一個(gè)普通入口點(diǎn),該普通入口點(diǎn)被連接器當(dāng)成映像文件的初始入口點(diǎn)。
**如果輸入的目標(biāo)文件中沒有一個(gè)普通入口點(diǎn),或者其中的普通入口點(diǎn)多于一個(gè),則連接器生成的映像文件中不包含初始入口點(diǎn),并產(chǎn)生警告信息。

2.3普通入口點(diǎn)的用法


普通入口點(diǎn)是在匯編中用ENTRY 偽操作定義。在嵌入式應(yīng)用中,各異常中斷的處理程序入口使用普通入口點(diǎn)標(biāo)示。這樣連接器在刪除無用段時(shí)不會將該段代碼刪除。
一個(gè)映像文件中可以定義多個(gè)普通入口點(diǎn)。沒有指定連接選項(xiàng)-entry addres時(shí),如果輸入的目標(biāo)文件中只有一個(gè)普通入口點(diǎn),該入口點(diǎn)被連接器當(dāng)成映像文件的初始入口點(diǎn)。

  • 上一篇: ARM基礎(chǔ)知識(10)
  • 下一篇: ARM基礎(chǔ)知識(8)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1