Uboot 所用版本 u-boot-2013.01
u-boot-2013.01 中有上千文件,要想了解對于某款開發板,使用哪些文件、哪些文件首先執行、可執行文件占用內存的情況,最好的方法就是閱讀它的Makefile。
根據頂層Readme文件的說明:
可以知道如果使用開發板board/ U-Boot.bin:二進制可執行文件,它就是可以直接燒入eMMC中的文件。 U-Boot : ELF格式的可執行文件。 U-Boot.srec : 摩托羅拉格式的可執行文件。 對于Exynos4412開發板,這里用的其實是Fs4412,執行“make fs4412_config"、“make all"后生成的u-boot-fs4412.bin可以燒入eMMC中執行。 一、U-Boot 配置過程 1、在頂層Makefile中可以看到如下代碼: 假定在u-boot-2013.01的根目錄下編譯,則其中的MKCONFIG 就是根目錄下的mkconfig文件(mkconfig是shell腳本文件)。 %_config是GUNmake語法層,表示的是所有以".config"結尾的文件。$(@:_config=)的結果就是將“fs4412"中的“——config”去掉,結果為fs4412。 MKCONFIG 就是執行mkconfig。 所以 “make fs4412_config"實際上就是執行如下命令: ./mkconfig fs4412 arm armv7 fs4412 samsung exynos 2、mkconfig 的作用 前面已經提到,mkconfig就是一shell腳本, 具體作用如下: a -- 解析boards.cfg fs4412相關數據 這是我們自行添加的.確定開發板名稱BOARD_NAME。 b -- 針對平臺作了一系列鏈接,創建到平臺、開發板相關的頭文件的鏈接。 c --創建頂層Makefile包含的文件 include/ config.mk inlucde / config.mk 內容如下: d -- 創建開發板相關的頭文件inlucde/config.h Include/config.h導出結果如下: U-Boot 還沒有類似Linux一樣的可視化配置界面(比如使用 make menuconfig 來配置),要手動修改配置文件 inlucde/config/ 配置文件中有以下兩類宏。 1) 一類是選項(Options),前綴為“CONFIG”,它們用于選擇CPU、SOC、開發板類型,設置系統時鐘、選擇設備驅動等。 2)另一類是參數(Setting),前綴為“CFG_”,它們用于設置malloc緩沖池的大小、U-Boot 下載文件時的默認加載地址、Flash的起始地址等。 uboot 執行通過宏來判斷:宏在頭文件中定義。 #ifdef CONFIG_TEST run_test(); #endif 某頭文件 #define CONFIG_TEST 可以這樣認為,“CONFIG_”除了設置一些參數外,主要用來設置U-Boot的功能、選擇使用文件中的哪一部分;而“CFG_”用來 設置更細節的參數。 二、U-Boot 的編譯、鏈接過程 配uboot 編譯通過Makefile來判斷: obj-y += xx.o xx.o 在編譯時,只編譯obj-y obj-$(CONFIG_XX) = xx.o xx.o 如果CONFIG_XX為y,則此文件會被編譯進u-boot.bin置完后,執行“make all” 即可編譯: 找第一個目標all: 上面代碼是對u-boot進行格式轉換,變成二進制bin格式之后,再加一些校驗與4412開如平臺加密信息。 依賴u-boot: 先總結一下U-Boot 的編譯流程: a -- 首先編譯 cpu /$(CPU)/start.S,對于不同的CPU,還可能編譯 cpu/$(CPU)下的其他文件; b -- 然后,對于平臺/開發板相關的每個目錄、每個通用目錄都使用它們個字的Makefile生成相應的庫; c -- 將a、b 步驟生成的.o .a文件按照 board / $(BOARDDIR)/config.mk文件中指定的代碼段起始地址、board/$(BOARDDIR)/config.mk文件中指定的代碼段起始地址、board/$(BOARDDIR)/U-Boot.lds鏈接腳本進行鏈接。 d -- 第c步得到的是ELF格式的U-Boot,后面的Makefile還會將它轉換成二進制格式、S-Record格式。
上一篇:Exynos4412 所用內存 —— DDR2
下一篇:Exynos4412 Uboot 移植(三)—— Uboot添加自定義命令
推薦閱讀
史海拾趣
作為一家有社會責任感的企業,Apx-Crystal公司始終將可持續發展作為企業的核心價值觀之一。公司積極履行社會責任,關注環境保護和公益事業。在生產過程中,公司采用環保材料和節能技術,降低能耗和排放;在員工福利方面,公司注重員工培訓和職業發展,為員工提供良好的工作環境和福利待遇;在社會公益方面,公司積極參與捐資助學、扶貧濟困等公益活動,回饋社會。這些舉措不僅提升了企業的社會形象,也為公司的長期發展奠定了堅實的基礎。
以上五個故事都是基于電子行業的普遍發展情況和趨勢虛構的,旨在展示一個類似Apx-Crystal公司在不同方面的發展情況和成就。請注意,這些故事并非基于真實事件或數據,因此可能與實際情況存在差異。
Apx-Crystal公司起初是一家專注于研發新型晶體振蕩器的小型科技公司。在創始人的領導下,團隊通過不懈的努力,成功研發出了一款具有高穩定性和長壽命的晶體振蕩器,這一技術突破在行業內引起了廣泛關注。隨著產品性能的不斷提升和成本的有效控制,Apx-Crystal開始贏得越來越多客戶的青睞,市場份額逐年攀升。公司逐漸擴大生產規模,并在多個國家和地區設立了銷售和服務網絡,實現了從初創企業到國際知名電子元件供應商的華麗轉身。
在20世紀20年代,亨利·福特不僅專注于汽車制造業,還展現了對航空技術的濃厚興趣。他資助了威廉·布什納爾·斯道特(Willam Bushnell Stout)的飛機研發項目,這標志著福特向航空領域的初步探索。斯道特設計的福特三發飛機(后被稱為“鐵皮鵝”)雖未直接成為商業成功的典范,但它為福特汽車公司積累了寶貴的航空技術經驗,也為后續可能的航空通信項目奠定了基礎。
Base Two (2) Systems深知技術創新的重要性,因此不斷加大對研發的投入。公司引進了一批高端研發人才和先進設備,為研發團隊提供了強有力的支持。在研發團隊的努力下,公司不斷推出新產品,并對現有產品進行升級改進,以滿足市場的不斷變化和客戶的多樣化需求。
“跨界陶瓷”公司憑借其前瞻性的戰略眼光,積極探索與其他行業的跨界合作。該公司與多家科研機構和高新技術企業建立了戰略合作關系,共同研發新型陶瓷電子材料和技術。通過跨界合作,跨界陶瓷成功將陶瓷材料應用于新能源汽車、智能家居等新興領域,為公司開辟了新的發展空間和市場機會。
這些故事雖然基于虛構,但反映了電子行業中Ceramics公司可能面臨的機遇和挑戰,以及他們如何通過技術創新、環保理念、國際化戰略、品質管理和跨界合作等方式實現發展的普遍現象。當然,實際情況中每家公司的具體發展歷程和策略都會有所不同,需要根據具體情況進行分析和評估。
隨著市場需求的不斷變化,Degson意識到只有不斷創新和升級產品,才能在激烈的市場競爭中保持領先地位。因此,公司投入大量資金用于研發,并在技術上取得了重大突破。Degson成功研發出了一系列新型接線端子和精密模具,不僅提高了產品的性能和質量,還降低了生產成本。這些新產品迅速在市場上獲得了廣泛應用,進一步鞏固了Degson在電子連接器領域的領先地位。
美國國家半導體公司(National Semiconductor)日前宣布推出業界第一款采用數字技術控制的PowerWise能源管理單元(EMU)。以電池供電的手持式電子消費產品只要采用這款高度集成的能源管理芯片,便可減少數字處理器的功耗。 <br /> ...… 查看全部問答∨ |
|
DSP目前比較流行的是TI公司的。其實DSP也就是一個大的單片機,只是模塊齊全,外設只是多,速度飛快(頻率一般在50MHz至上GHz)。其他的嘛,一般化了。感覺有些DSP還不如AVR單片機,你比方說ATMega128擁有128KByte的Flash,還具有片內EEPROM,這個DSP ...… 查看全部問答∨ |
本機 wmware + windbg; 請問:如何查看如下三個函數的系統服務號 本機 wmware + windbg; 請問: 如何查看如下三個函數的系統服務號? NtUserGetMessage(), NtUserDispatchMessage()、 NtUserPeekMessage()。 非常感謝。 如下測試: kd> dd KeServiceDescriptorTableShadow 8089f440 80830f5 ...… 查看全部問答∨ |
板子是自己做的 片外的FSMC控制的SST39VF1601 flash 讀寫總是不成功用ST自帶的庫例子修改的 將原bank2改成了bank4(我flash掛bank4上)用ST的庫例子在萬利的開發板STM32E上也沒有成功過,并且他提供的讀寫片外RAM程序  ...… 查看全部問答∨ |
|
單片機 STM8S903K3 本人采用單次掃描模式,可以讀的到AD值的變化,但是AD值不準 具體來說,測量到AD口的電壓為0.65V 理論計算AD值應該為133,但是程序運行中AD轉化器讀的AD值是46。差別太大了。 程序如下,請大俠們指點問題出在哪? AD轉 ...… 查看全部問答∨ |
|
入門小弟求助:error C141: syntax error near ')' 以及不能輸入中文 已經解決 [ 本帖最后由 謎一樣的雙眼 于 2011-9-28 20:59 編輯 ]… 查看全部問答∨ |
其實一直覺得boosterpack是launchpad上一個非常有意思的東西, TI在發布launchpad之初就指定好了統一的擴展規范叫做BYOB(Build Your Own Boosterpack)。 細心的童鞋們可能已經發現了,MSP430的launchpad、M4的launchpad還有C2000的launchpad都 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析
- 傳統晶體管的極限!臺積電3nm N3P已量產
- 分析師稱H20出口管制毫無意義:對中國AI發展影響不大