內容大綱
內容關鍵字:
映像文件
RO代碼段
ZI未初始化數據段
RW數據段
Load Address加載地址
Execu o n A ddress 執行地址
Stack Pointer??臻g指針
Boot相關硬件
? Flash Rom(可作為bootrom的存儲器)
Boot相關硬件
Boot相關硬件
Boot的主要功能
? 建立異常向量表
? 初始化中斷
? 初始化硬件設備
? 初始化應用程序執行環境
? 跳轉到主應用程序
初始化硬件
? 軟件的運行離不開硬件,boot必須對硬件進
行初始化。硬件的初始化主要通過配置特
殊控制寄存器來完成,包括下面幾部分:
關閉開門狗
屏蔽所有的中斷
初始化PLL和時鐘。
初始化儲存系統
初始化應用程序的執行環境
? Elf文件的類型:可執行文件、可重定位文
件、共享庫object(又叫做共享庫)文件。
? Elf文件的功能:
1、用作鏈接器的輸入生成可執行的映像文件
2、可裝載到內存里運行,完成特定功能的文件。
elf文件的物理結構
? Elf文件頭
? Sec o n: .text .d ata .b ss. sym t ab
? Program header
? 可重定位文件與可執行文件的區別:
區與段的概念
program header
可執行映像文件的邏輯結構
由幾個可重定位的目標文件的相同屬性區組
成了可執行映像的段,那么段有組成什么?
在邏輯結構里,段組成了更大的組織:域
裝載域和運行域
? 域又組成什么呢?當然就是組成可執行文件了,一個映像文件可以包含一到多個域。與看起來有些多余,實際上更為重要的是用域來描述輸出區運行前和運行時在存儲系統上的位置。所以,域分為裝載域和運行域。裝載域描述運行前輸出段在rom/ram中的分布狀態,運行域描述運行時輸出段在rom/ram中的分布狀態
? 大多數情況下,映像文件在執行前把它裝載到rom中,而當運行時域里 的有些輸出段必須復制到ram中,程序才能正常運行,所以,在裝載和運行時,有些段處在不同的位置(地址空間)。
? 由圖可以看出,映像文件zi段在裝載域里是不存在的,在運行域里才建立的;映像文件在運行時,第一件工作就是把rw輸出段復制到ram里的正確位置,第二件工作就是建立zi輸出段并初始化為0。這就是應用程序執行環境的初始化。然而,在運行時,代碼和數據分布到了不同的地址空間,形成了三個運行域:ro運行域、rw運行域、zi運行域。那么這個過程是如何來實現的?
RO
RO
Base|; Base of ROM code
RO
RO
Limit| ; End of ROM code
(=start of ROM data)
RW
RW
Base| ; Base of RAM to
ini a l ise
ZI
ZI
Base| ; Base and limit of area
ZI
ZI
Limit| ;
分散裝載技術
? 分散裝載技術可以把用戶的應用程序分割成多個RO運行域和RW運行域,并且給他們指定不同的地址,這在嵌入式系統的實際應用中有很多的好處。在一個嵌入式系統中,fl a sh 、16位ram、32位ram都可能存在于系統中,所以將不同功能的代碼定位于特定的位置上會大大提高系統的運行效率。
上一篇:Arm中main()和_main()的區別
下一篇:ARM在進入main函數之前會做什么
推薦閱讀
史海拾趣
Delta非常重視人才的培養和團隊建設。公司建立了完善的培訓體系,為員工提供多元化的培訓和發展機會。同時,Delta還注重團隊協作和溝通,鼓勵員工分享經驗和知識,共同解決問題。這種良好的團隊氛圍和文化,不僅增強了員工的凝聚力和歸屬感,也為公司的發展提供了有力的保障。
APTA Group Inc在電子行業中嶄露頭角,得益于其一次重要的技術突破。公司在研發新型半導體材料方面取得了重大進展,這種材料不僅性能穩定,而且成本大大降低。這一創新使得APTA的產品在市場上具有極強的競爭力,吸引了眾多合作伙伴。隨著技術的逐步推廣和應用,APTA的業績迅速攀升,逐漸在行業中占據了一席之地。
APTA Group Inc在企業管理方面同樣敢于創新。公司引入了一套先進的管理系統,通過數據分析和智能化決策,大大提高了工作效率和決策準確性。同時,公司還注重員工培訓和激勵,打造了一支高效、專業的團隊。這些創新的管理舉措,為APTA的穩健發展提供了堅實保障。
隨著全球電子行業的競爭日益激烈,Ferroxcube公司意識到,要想保持領先地位,就必須不斷創新。于是,公司決定投入巨資建立一個新的研發中心,專注于磁性元件的前沿技術研究。
研發中心的建立吸引了大批優秀的科研人才加入Ferroxcube。在新的研發團隊的帶領下,公司相繼推出了多款具有自主知識產權的新型磁性元件,這些元件在性能、穩定性和可靠性方面都達到了行業領先水平。
其中一款名為“XX磁芯”的產品,憑借其超高的磁導率和極低的損耗,在市場上引起了轟動。這款產品不僅被廣泛應用于各類電子設備中,還成為了許多高校和科研機構的研究對象。Ferroxcube因此成為了行業內技術創新的佼佼者。
為了提升產品質量,增強客戶信任,燦科盟在2008年成功通過了ISO9001:2000版質量管理體系認證。這一認證標志著公司在質量管理方面達到了國際標準,也為公司贏得了更多客戶的青睞。此后,公司繼續加強質量管理體系建設,不斷提升產品質量和服務水平。
如果你曾經也是個學生,也為老師的作業煩惱過,你就一定要來幫忙的 圖上紅色畫線處是什么意思?一個C,還有一個R什么的!不會就是電阻和電容吧?那值怎么看?我們學生是祖國的希望,請各位愛國的有識之士一定要幫忙的 … 查看全部問答∨ |
|
前天我用木馬克星殺了一次毒,等殺完以后,再點擊按Ctrl+Alt+delete的鍵時,系統沒有任何反應,不彈出任務管理器,請問這是什么問題 請各位高手給以解答 在此萬分感謝?。。 ? 查看全部問答∨ |
|
運行于EK-STM32F學習板上的STM32固件庫中的例子 相關鏈接:http://www.stmicroelectronics.com.cn/stonline/mcu/images/STM32F10xxx_Library_Manual_ChineseV2.pdf… 查看全部問答∨ |
根據 ST 虛擬串口 的例子,改寫了一個用USB與上位機通信的程序?,F在的問題是,原程序 把 USB_Init();語句放在了 main 函數里面,這樣如果插著USB線給 ARM 上電的話,就會導致 usb的初始化 ...… 查看全部問答∨ |
請問香主,我在www.stmfans.com里面看到了一個帖子說STM32有內置的硬件CRC計算單元,我在庫文件、datasheet上都沒有找到。請問真是的是有嗎?如果有,在那個模塊?stmfans的鏈接如下:http://www.stmfans.com/bbs/viewthread.php?tid=325&high ...… 查看全部問答∨ |
各位好:我在ad程序里添加了兩個變量:float in_voltage[NP]; float step_h[NP];后出現這個錯誤error: can\\\'t allocate .ebss (sz: 00002898 page: 1) in DRAMH0 (avail: ...… 查看全部問答∨ |
最近一個月多月,工作上的事情繁多,沒能夠及時的完成前期參與的論壇活動,深感抱歉!先開個帖子,我慢慢的補吧 本來打算做成這樣的。 總體設計框圖 實現的功能 1. 完成A/D轉換,FFT變換 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 將低功耗設計進行到底——評論、轉發贏大禮!
- 芯幣競拍:感恩教師節專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應用那些事
- 借助 Microchip 生態系統中的 PIC® 和 AVR® 單片機開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應用而開發的內核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中