日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]備注:分析的是OK210開(kāi)發(fā)板自帶的uboot_smdkv210,可能有些部分和其他版本不太一樣,但是原理都類似。編譯u-boot的步驟makeforlinx_linux_configmake1212首先生成配置文件,然后編譯源碼,依次看看這些命令都干了些什

備注:分析的是OK210開(kāi)發(fā)板自帶的uboot_smdkv210,可能有些部分和其他版本不太一樣,但是原理都類似。

編譯u-boot的步驟
makeforlinx_linux_configmake1212

首先生成配置文件,然后編譯源碼,依次看看這些命令都干了些什么事情

配置過(guò)程
#forlinxaddforlinx_linux_config:unconfig@$(MKCONFIG)$(@:_config=)arms5pc11xsmdkc110samsungs5pc110linux@echo"TEXT_BASE=0xcc800000">$(obj)board/samsung/smdkc110/config.mk12341234
清除上一次配置的文件

此目標(biāo)依賴unconfig目標(biāo),因此先調(diào)用unconfig的命令,命令如下

unconfig:@rm-f$(obj)include/config.h$(obj)include/config.mk$(obj)board/*/config.tmp$(obj)board/*/*/config.tmp$(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep$(obj)board/$(VENDOR)/$(BOARD)/config.mk1234512345

執(zhí)行的操作主要是刪除上一次配置生成的配置文件。

開(kāi)始配置操作

在Makefile中以@開(kāi)頭的命令表示,在命令執(zhí)行的時(shí)候不在終端上打印信息。
$(MKCONFIG)變量在Makefile的101行有定義,如下:

MKCONFIG:=$(SRCTREE)/mkconfigexportMKCONFIG1212

$(@:_config=)這句話的意思是將 forlinx_linux_config的_config用空白代替只剩下forlinx_linux,
其中$(srcfiles:xxx=ccc)是Makefile的規(guī)則,用等號(hào)后邊的ccc替代srcfiles中等號(hào)前邊的xxx,
$(@) = $@代表目標(biāo),即在命令行輸入的make forlinx_linux_config中的forlinx_linux_config。
因此@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110 linux
的意思就是調(diào)用u-boot根目錄的mkconfig腳本并將 forlinx_linux arm s5pc11x smdkc110 samsung s5pc110 linux作為參數(shù)傳遞給腳本。

mkconfig文件

在文件的頭部的注釋已經(jīng)交代了文件的作用和調(diào)用的格式

#Scripttocreateheaderfilesandlinkstoconfigure#U-Bootforaspecificboard.##Parameters:TargetArchitectureCPUBoard[VENDOR][SOC]#1234512345

$0=mkconfig(腳本文件名)$1=Target(目標(biāo))forlinx_linux$2=Architecture(架構(gòu))arm$3=CPU(CPU型號(hào))s5pc11x$4=Board(開(kāi)發(fā)板名)smdkc110$5=VENDOR(生產(chǎn)商)samsung$6=SOC(芯片名)s5pc11012345671234567

最后一個(gè)linux是OK210的工程師自己添加的用于區(qū)別Android版本的內(nèi)核和linux的內(nèi)核,沒(méi)有什么實(shí)質(zhì)用途。(個(gè)人猜測(cè))

APPEND=no#Default:CreatenewconfigfileBOARD_NAME=""#Nametoprintinmakeoutputwhile[$#-gt0];docase"$1"in--)shift;break;;-a)shift;APPEND=yes;;-n)shift;BOARD_NAME="${1%%_config}";shift;;*)break;;esacdone12345678910111234567891011

接下來(lái)定義了兩個(gè)變量為后邊配置過(guò)程做準(zhǔn)備,用途注釋已經(jīng)寫(xiě)的很清楚,APPEND=no是表示需要重新創(chuàng)建配置文件的標(biāo)志。
再然后循環(huán):如果參數(shù)個(gè)數(shù)大于零就執(zhí)行循環(huán),然后再循環(huán)里判斷第一個(gè)參數(shù)(腳本可以有參數(shù)選項(xiàng)),很明顯都不符合,所以直接跳出循環(huán)。

["${BOARD_NAME}"]||BOARD_NAME="$1"[$#-lt4]&&exit1[$#-gt7]&&exit1echo"Configuringfor${BOARD_NAME}board..."123456123456

將BOARD_NAME賦值為forlinx_linux,然后判斷參數(shù)個(gè)數(shù),小于4大于7(一般情況為大于6應(yīng)該還是OK210的工程師修改了)就直接退出腳本,放棄執(zhí)行。

創(chuàng)建軟連接

接下來(lái)創(chuàng)建很多鏈接文件,這些操作是mkconfig腳本的主要工作,主要?jiǎng)?chuàng)建的鏈接文件如下:

if["$SRCTREE"!="$OBJTREE"];thenmkdir-p${OBJTREE}/includemkdir-p${OBJTREE}/include2cd${OBJTREE}/include2rm-fasmln-s${SRCTREE}/include/asm-$2asmLNPREFIX="../../include2/asm/"cd../includerm-rfasm-$2rm-fasmmkdirasm-$2ln-sasm-$2asmelsecd./includerm-fasmln-sasm-$2asmfi12345678910111213141516171234567891011121314151617

./include/asm --> asm-$2 (asm-arm)

#createlinkfors5pc11xSoCif["$3"="s5pc11x"];thenrm-fregs.hln-s$6.hregs.hrm-fasm-$2/archln-sarch-$3asm-$2/archfi12345671234567

regs.h --> $6.h (s5pc110.h)
asm-$2/arch --> arch-$3(arch-s5pc11x)

u-boot支持很多種開(kāi)發(fā)板,很多種類型的CPU,所以要有一種通用得配置方式來(lái)方便移植;u-boot甚至linux內(nèi)核都采用了這種方式:針對(duì)不同的處理器或者板子都有自己的頭文件和文件夾,但是真正的編譯過(guò)程卻不直接使用,而是在配置階段創(chuàng)建這些頭文件或者文件夾的軟連接,并命名為一種通用的名字。在編譯的時(shí)候通過(guò)這些軟連接訪問(wèn)真正需要的文件。例如,在u-boot的include目錄下有一個(gè)asm的目錄,此目錄就是在配置完后生成的一個(gè)軟連接,當(dāng)配置的是arm架構(gòu)時(shí),此文件是asm-arm的軟連接。
創(chuàng)建make時(shí)用到的包含文件 config.mk
##CreateincludefileforMake#echo"ARCH=$2">config.mkecho"CPU=$3">>config.mkecho"BOARD=$4">>config.mk["$5"]&&["$5"!="NULL"]&&echo"VENDOR=$5">>config.mk["$6"]&&["$6"!="NULL"]&&echo"SOC=$6">>config.mk1234567891012345678910
創(chuàng)建開(kāi)發(fā)板特定的頭文件 config.h
##Createboardspecificheaderfile#if["$APPEND"="yes"]#Appendtoexistingconfigfilethenecho>>config.helse>config.h#Createnewconfigfilefiecho"/*Automaticallygenerated-donotedit*/">>config.h#forlinxaddif["$7"="linux"]thenecho"#defineCONFIG_LINUX_FORLINX1">>config.helseecho"#defineCONFIG_ANDROID_FORLINX1">>config.hfi#echo"#include">>config.h#forlinxchangeforlinuxandandroidecho"#include">>config.h12345678910111213141516171819202122231234567891011121314151617181920212223

因?yàn)樯线呉呀?jīng)把APPEND設(shè)置為NO,所以執(zhí)行> config.h即創(chuàng)建config.h頭文件,并向config.h中寫(xiě)入
/* Automatically generated - do not edit */
"#define CONFIG_LINUX_FORLINX 1
以及#include
同樣是OK210的工程師加入的
#include 即#include
注意:創(chuàng)建軟連接的操作全都是在u-boot根目錄的include子目錄中執(zhí)行的。

配置腳本mkconfig結(jié)束。

mkconfig腳本小結(jié)

一共創(chuàng)建了三個(gè)連接文件,
./include/asm --> asm-$2 (asm-arm)
regs.h --> $6.h (s5pc110.h)
asm-$2/arch --> arch-$3(asm-arm -> arch-s5pc11x)
以及include/config.mk和include/config.h,其中include/config.mk文件中記錄著u-boot的版本信息,include/config.h中包含了 configs/$1.h,此文件里記錄著是很多很多以CONFIG_開(kāi)頭的宏,是開(kāi)發(fā)板u-boot的主配置信息。

主Makefile版本號(hào)相關(guān)
VERSION=1PATCHLEVEL=3SUBLEVEL=4EXTRAVERSION=U_BOOT_VERSION=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE=$(obj)include/version_autogenerated.h123456123456

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達(dá)) Blackwell平臺(tái)規(guī)?;鲐?,以及北美CSP業(yè)者持續(xù)擴(kuò)大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋(píng)果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機(jī),除了外觀辨識(shí)度升級(jí),處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機(jī)

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場(chǎng)趨勢(shì)與技術(shù)分析》報(bào)告,2025年隨著國(guó)際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計(jì)在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價(jià)上漲、出貨量顯著增長(zhǎng),加上HBM出貨規(guī)模擴(kuò)張,整體營(yíng)收為3...

關(guān)鍵字: DRAM 智能手機(jī) ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國(guó)市場(chǎng)消費(fèi)補(bǔ)貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機(jī)、筆電/PC、Server新品所需帶動(dòng),整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機(jī) 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價(jià)格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場(chǎng)政策推動(dòng),整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達(dá))近日推出的Jetson Thor被視為機(jī)器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機(jī)器人 大型語(yǔ)言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機(jī)柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級(jí)AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點(diǎn)邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過(guò)程也需要保護(hù)。鋰電池的放電電壓不能低于3.0V,否則電池壽命會(huì)大幅縮短。為了實(shí)現(xiàn)這一保護(hù),工程師們?cè)O(shè)計(jì)了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池

在PCB設(shè)計(jì)的宏偉藍(lán)圖中,布局與布線規(guī)則猶如精密樂(lè)章中的指揮棒,是鑄就電路板卓越性能、堅(jiān)不可摧的可靠性及經(jīng)濟(jì)高效的制造成本的靈魂所在。恰如一位巧手的園藝師,合理的布局藝術(shù)性地編排著每一寸空間,既削減了布線交織的繁復(fù)迷宮,...

關(guān)鍵字: PCB 電路板
關(guān)閉