娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月15日(星期日)

2021年12月15日 | Exynos4412 Uboot 移植(一)—— Uboot 編譯流程分析

發布者:bluepion 來源: eefocus關鍵字:Exynos4412  Uboot  移植 手機看文章 掃描二維碼
隨時隨地手機看文章

Uboot 所用版本 u-boot-2013.01


u-boot-2013.01 中有上千文件,要想了解對于某款開發板,使用哪些文件、哪些文件首先執行、可執行文件占用內存的情況,最好的方法就是閱讀它的Makefile。


根據頂層Readme文件的說明:


可以知道如果使用開發板board/,就先執行“make _config”命令進行配置,然后執行“make all”, 就可以生成如下3個文件:


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/.h 來裁剪、設置U-Boot.


配置文件中有以下兩類宏。


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  Uboot  移植 引用地址:Exynos4412 Uboot 移植(一)—— Uboot 編譯流程分析

上一篇:Exynos4412 所用內存 —— DDR2
下一篇:Exynos4412 Uboot 移植(三)—— Uboot添加自定義命令

推薦閱讀

東軟集團1991年開始與阿爾派合作進入汽車電子領域,27年汽車電子領域深厚技術沉淀和積累,整合全球三大洲汽車電子技術創新能力,通過豐富的產品服務經驗,與眾多世界級頂級汽車廠商建立廣泛合作,并與多家國內外汽車廠商簽訂框架合同,在汽車廠商的開發架構體系下進行汽車電子產品的規劃、設計和開發。同時,東軟汽車電子積極依托智能化產品、場景化功能將...
中國儲能網訊:截至2019年12月7日,祁韶直流輸電工程累計向華中電網打捆輸送風電、太陽能突破400億千瓦時,有力促進西北地區新能源消納,緩解中部地區用電緊張的局面。 祁韶直流特高壓直流輸電工程線路全長2383公里,途經甘肅、陜西、重慶、湖北、湖南5省市,是我國第一條大規模輸送新能源電力的特高壓直流輸電工程。而±800千伏祁連換流站作為國網甘...
是德科技已與ElringKlinger簽署了在電動汽車電池開發領域的合作協議。ElringKlinger將使用是德科技的Scienlab電池測試系統來擴展其開發能力。是德科技的技術與產品將使ElringKlinger能夠更詳細地測試和驗證單元,從而確定針對最終客戶應用的電池單元最有效。這也將使該公司進一步加速電池開發,并為客戶提供快速,經濟高效的“高效,可靠的電池系統”。Elr...
昨天,伴隨 /有線/專場圓滿結束,Xilinx apt – 中國站正式落下帷幕。 過去的 5 周里,Xilinx Adapt – 中國站圍繞 9 大主題,舉行了 40 場演講,覆蓋工業、醫療、、專業音視頻與廣播、汽車與、開發者、數據中心以及有線與無線通信。 作為 Xilinx Adapt 2021 線上技術大會的延伸,Xilinx Adapt – 中國站專門針對中國本土市場量身...

史海拾趣

問答坊 | AI 解惑

美國半數字控制電源管理IC大幅降低手持設

美國國家半導體公司(National Semiconductor)日前宣布推出業界第一款采用數字技術控制的PowerWise能源管理單元(EMU)。以電池供電的手持式電子消費產品只要采用這款高度集成的能源管理芯片,便可減少數字處理器的功耗。 <br /> ...…

查看全部問答∨

DSP與單片機的區別

DSP目前比較流行的是TI公司的。其實DSP也就是一個大的單片機,只是模塊齊全,外設只是多,速度飛快(頻率一般在50MHz至上GHz)。其他的嘛,一般化了。感覺有些DSP還不如AVR單片機,你比方說ATMega128擁有128KByte的Flash,還具有片內EEPROM,這個DSP ...…

查看全部問答∨

本機 wmware + windbg; 請問:如何查看如下三個函數的系統服務號

本機 wmware + windbg; 請問: 如何查看如下三個函數的系統服務號? NtUserGetMessage(), NtUserDispatchMessage()、 NtUserPeekMessage()。 非常感謝。 如下測試: kd> dd KeServiceDescriptorTableShadow 8089f440  80830f5 ...…

查看全部問答∨

想問下 鄭州有做wince開發公司?

想問下 鄭州有做wince開發公司?…

查看全部問答∨

版主STM32103ZE+SST39VF1601的問題

板子是自己做的 片外的FSMC控制的SST39VF1601 flash 讀寫總是不成功用ST自帶的庫例子修改的 將原bank2改成了bank4(我flash掛bank4上)用ST的庫例子在萬利的開發板STM32E上也沒有成功過,并且他提供的讀寫片外RAM程序  ...…

查看全部問答∨

求教:AD采樣時間疑問

                                 AD的采樣時間SampleTime,從1到239Cycles,請問這對精度有影響嗎?比如說1Cycles和7Cycles?…

查看全部問答∨

STM8AD值讀不準?不知道是什么原因

單片機 STM8S903K3 本人采用單次掃描模式,可以讀的到AD值的變化,但是AD值不準 具體來說,測量到AD口的電壓為0.65V 理論計算AD值應該為133,但是程序運行中AD轉化器讀的AD值是46。差別太大了。 程序如下,請大俠們指點問題出在哪? AD轉 ...…

查看全部問答∨

入門小弟求助:error C141: syntax error near ')' 以及不能輸入中文

已經解決 [ 本帖最后由 謎一樣的雙眼 于 2011-9-28 20:59 編輯 ]…

查看全部問答∨

【調查】大家想不想做自己的boosterpack

其實一直覺得boosterpack是launchpad上一個非常有意思的東西, TI在發布launchpad之初就指定好了統一的擴展規范叫做BYOB(Build Your Own Boosterpack)。 細心的童鞋們可能已經發現了,MSP430的launchpad、M4的launchpad還有C2000的launchpad都 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 旺苍县| 金川县| 义马市| 肇源县| 大宁县| 河东区| 涞水县| 奇台县| 措勤县| 崇阳县| 宁波市| 靖安县| 镇江市| 怀安县| 连平县| 专栏| 武宣县| 宜章县| 睢宁县| 新安县| 尚义县| 六安市| 西宁市| 泗洪县| 乐昌市| 德令哈市| 隆子县| 双城市| 合江县| 城市| 博乐市| 抚顺县| 萝北县| 沁阳市| 涟源市| 遵义县| 当雄县| 阆中市| 博白县| 化州市| 远安县|