国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uboot頂層Makefile前期所做工作說明四

這篇具有很好參考價(jià)值的文章主要介紹了uboot頂層Makefile前期所做工作說明四。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?一.? uboot頂層 Makefile文件

uboot 頂層 Makefile,就是 uboot源碼工程的根目錄下的? Makefile文件。

本文繼續(xù)對(duì) uboot頂層 Makefile的前期準(zhǔn)備工作進(jìn)行介紹。續(xù)上一篇文章內(nèi)容的學(xué)習(xí),如下:

uboot頂層Makefile前期所做工作說明三_凌肖戰(zhàn)的博客-CSDN博客
?

本文主要 了解 uboot頂層 Makefile前期所做的部分工作, 包括如下內(nèi)容:

Makefile文件中導(dǎo)出變量,具體涉及uboot 的頂層 Makefile中 幾個(gè)變量的文件調(diào)動(dòng)關(guān)系。

二.? Makefile 前期所做的內(nèi)容

?11.? 導(dǎo)出其他變量

接下來,在 頂層 Makefile中導(dǎo)出很多變量, 頂層 Makefile 內(nèi)容如下:

371 export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
372 export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
373 export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
374 export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
375 export MAKE AWK PERL PYTHON
376 export HOSTCXX HOSTCXXFLAGS DTC CHECK CHECKFLAGS
377
378 export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS
379 export KBUILD_CFLAGS KBUILD_AFLAGS

涉及一些變量的文件調(diào)用關(guān)系:

(1)? 打印變量值

這些變量中大部分都已經(jīng)在前面定義了,我們重點(diǎn)來看一下下面這幾個(gè)變量,下面這幾個(gè)變量在 頂層 Makefile 中是找不到的,變量如下:

ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR

這 7 個(gè)變量在頂層 Makefile 是找不到的,說明這 7 個(gè)變量是在其他文件里面定義的,先來

看一下這 7 個(gè)變量都是什么內(nèi)容。,即打印出這些變量的值。在頂層 Makefile 中輸入如下內(nèi)容:

uboot頂層Makefile前期所做工作說明四,嵌入式C開發(fā),linux

進(jìn)入 uboot 源碼根目錄下,打開Linux 終端,輸入如下命令打印這些變量:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/alientek_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ make mytest
ARCH= arm
CPU= armv7
BOARD= mx6ull_alientek_nand
VENDOR= freescale
SOC= mx6
CPUDIR= arch/arm/cpu/armv7
BOARDDIR= freescale/mx6ull_alientek_nand

(2) 幾個(gè)個(gè)變量的來源

uboot 根目錄下,有個(gè)文件 config.mk,這 7 個(gè)變量就是在 config.mk 里面定義的,打開 config.mk 文件的部分內(nèi)容如下(這里只列出了涉及變量的部分代碼):

25 ARCH := $(CONFIG_SYS_ARCH:"%"=%)
26 CPU := $(CONFIG_SYS_CPU:"%"=%)
27 ifdef CONFIG_SPL_BUILD
28 ifdef CONFIG_TEGRA
29 CPU := arm720t
30 endif
31 endif
32 BOARD := $(CONFIG_SYS_BOARD:"%"=%)
33 ifneq ($(CONFIG_SYS_VENDOR),)
34 VENDOR := $(CONFIG_SYS_VENDOR:"%"=%)
35 endif
36 ifneq ($(CONFIG_SYS_SOC),)
37 SOC := $(CONFIG_SYS_SOC:"%"=%)
38 endif
39
40 # Some architecture config.mk files need to know what CPUDIR is set 
to,
41 # so calculate CPUDIR before including ARCH/SOC/CPU config.mk files.
42 # Check if arch/$ARCH/cpu/$CPU exists, otherwise assume 
arch/$ARCH/cpu contains
43 # CPU-specific code.
44 CPUDIR=arch/$(ARCH)/cpu$(if $(CPU),/$(CPU),)
45
46 sinclude $(srctree)/arch/$(ARCH)/config.mk 
47 sinclude $(srctree)/$(CPUDIR)/config.mk 
48
49 ifdef SOC
50 sinclude $(srctree)/$(CPUDIR)/$(SOC)/config.mk 
51 endif
52 ifneq ($(BOARD),)
53 ifdef VENDOR
54 BOARDDIR = $(VENDOR)/$(BOARD)
55 else
56 BOARDDIR = $(BOARD)
57 endif
58 endif
59 ifdef BOARD
60 sinclude $(srctree)/board/$(BOARDDIR)/config.mk # include board 
specific rules
61 endif

第 25 行 定 義 變 量 ARCH ,值為 $(CONFIG_SYS_ARCH:"%"=%) , 也 就 是 提 取

CONFIG_SYS_ARCH 里面雙引號(hào)“”之間的內(nèi)容。比如 CONFIG_SYS_ARCH=“arm”的話,

ARCH=arm。

下面的幾行的功能類似。

46 sinclude include 的功能類似,在 Makefile 中都是讀取指定文件內(nèi)容,這里讀取
文件 $(srctree)/arch/$(ARCH)/config.mk 的內(nèi)容。 sinclude 讀取的文件如果不存在的話不會(huì)報(bào)錯(cuò)。

接下來需要找到 CONFIG_SYS_ARCH、CONFIG_SYS_CPU、CONFIG_SYS_BOARD、

CONFIG_SYS_VENDORCONFIG_SYS_SOC 這 5 個(gè)變量的值。

這 5 個(gè)變量在 uboot 根目錄下的 .config 文件中有定義,定義如下:

23 CONFIG_SYS_ARCH="arm"
24 CONFIG_SYS_CPU="armv7"
25 CONFIG_SYS_SOC="mx6"
26 CONFIG_SYS_VENDOR="freescale"
27 CONFIG_SYS_BOARD="mx6ullevk "
28 CONFIG_SYS_CONFIG_NAME="mx6ullevk"

從 上面的 .config 文件?可以看出,這些變量的值正好符合 頂層 Makefile中打印的幾個(gè)變量值。

那么, config.mk文件中讀取的文件有:

arch/arm/config.mk
arch/arm/cpu/armv7/config.mk
arch/arm/cpu/armv7/mx6/config.mk (此文件不存在)
board/ freescale/mx6ullevk/config.mk (此文件不存在)

三. 總結(jié)

1.?? 頂層 Makefile涉及幾個(gè)變量的文件調(diào)用關(guān)系

頂層 Makefile 中涉及一些變量如 ARCH、CPU、 BOARD、 VENDOR 、SOC等等。這些變量涉及文件調(diào)用關(guān)系:

Makefile 來源于 config.mk 文件, config.mk 文件中涉及變量又來源于 .config 文件。

.config 文件是執(zhí)行了 "make xxx_deconfig" 命令,即配置 uboot 源碼以后生成的。

.config 文件來源

默認(rèn)情況下,.configxxx_defconfig 內(nèi)容是一樣的,因?yàn)?config 就是從 xxx_defconfig 復(fù)制過來的。如果后續(xù)自行調(diào)整 了 uboot 的一些配置參數(shù),那么這些新的配置參數(shù)就添加到了.config 中,而不是 xxx_defconfig。 相當(dāng)于 xxx_defconfig 只是一些初始配置,而 .config 的內(nèi)容才是實(shí)時(shí)有效的配置。
?

2.?? Makefile前期所做的工作

uboot 頂層 Makefile前期所做的內(nèi)容大體包括如下:

版本號(hào),MAKEFLAGS 變量 、命令輸出/靜默輸出、設(shè)置編譯結(jié)果輸出目錄、

代碼檢查 、模塊編譯、獲取主機(jī)架構(gòu)和系統(tǒng)、(設(shè)置目標(biāo)架構(gòu)、交叉編譯器和配置文件)、

交叉編譯工具變量設(shè)置、調(diào)用 scripts/Kbuild.include、導(dǎo)出其他變量等。文章來源地址http://www.zghlxwxcb.cn/news/detail-704315.html

到了這里,關(guān)于uboot頂層Makefile前期所做工作說明四的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ARM 嵌入式 編譯 Makefile 系列 2 - Makefile 如何打印信息】

    請(qǐng)閱讀 【ARM GCC Makefile 編譯專欄導(dǎo)讀】 下篇文章:【ARM 嵌入式 編譯 Makefile 系列 2.1 - Makefile info,warn, error 打印詳細(xì)介紹】 上篇文章:【ARM 嵌入式 編譯 Makefile 系列 1 - Makefile 如何調(diào)用 shell 腳本】 在Makefile中,我們可以使用echo命令來打印信息。這種方法適用于大多數(shù)的 UNI

    2024年02月12日
    瀏覽(47)
  • 基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    ??????? 由于官方的SDK占用空間較大(大約20GB左右),需要聯(lián)系相關(guān)供應(yīng)商提供,且官方的SDK通過各種腳本文件進(jìn)行集成編譯,難以理解系統(tǒng)開發(fā)的詳細(xì)過程。本章介紹直接從官方Github網(wǎng)站下載源碼進(jìn)行移植,進(jìn)行uboot移植及編譯,具體內(nèi)容如下所述: 1.進(jìn)入官方的github網(wǎng)

    2024年01月16日
    瀏覽(27)
  • 【ARM 嵌入式 編譯 Makefile 系列 16 - Makefile 偽目標(biāo).PHONY 與 FORCE 詳細(xì)介紹】

    請(qǐng)閱讀 【ARM GCC Makefile 編譯專欄導(dǎo)讀】 .PHONY 是GNU make的一個(gè)特殊目標(biāo),它用來指定那些不產(chǎn)生文件的目標(biāo)。如果一個(gè)目標(biāo)被聲明為 .PHONY ,那么make命令會(huì)忽略這個(gè)目標(biāo)的文件名,即使在文件系統(tǒng)中存在同名的文件,make命令也會(huì)每次都執(zhí)行這個(gè)目標(biāo)的命令 在 Makefile 中, 目標(biāo)

    2024年02月12日
    瀏覽(44)
  • 基于RK3588的嵌入式linux系統(tǒng)開發(fā)(五)——uboot優(yōu)化修改(按任意按鍵停止autoboot)

    基于RK3588的嵌入式linux系統(tǒng)開發(fā)(五)——uboot優(yōu)化修改(按任意按鍵停止autoboot)

    ????????我們通常情況下,芯片進(jìn)入uboot后,會(huì)根據(jù)設(shè)置的bootdelay時(shí)間進(jìn)行倒數(shù)計(jì)數(shù)。這時(shí)候在終端按任意鍵,即可退出autoboot,進(jìn)入uboot的命令行模式。 ????????官方提供的uboot源碼中,為了防止調(diào)試串口干擾導(dǎo)致不能進(jìn)入系統(tǒng),使用“Ctrl+c”的組合鍵來退出autoboot。本

    2024年02月10日
    瀏覽(17)
  • 嵌入式Linux驅(qū)動(dòng)開發(fā)系列六:Makefile

    嵌入式Linux驅(qū)動(dòng)開發(fā)系列六:Makefile

    Makefile是什么? gcc hello.c -o hello gcc aa.c bb.c cc.c dd.c ... make工具和Makefile make和Makefile是什么關(guān)系? make工具:找出修改過的文件,根據(jù)依賴關(guān)系,找出受影響的相關(guān)文件,最后按照規(guī)則單獨(dú)編譯這些文件。 Makefile文件:記錄依賴關(guān)系和編譯規(guī)則。 必須要學(xué)精Makefile嗎? 怎么學(xué)習(xí)Makefi

    2024年02月13日
    瀏覽(24)
  • 嵌入式 Linux 入門(十一、make 和 MakeFile)

    嵌入式 Linux 入門(十一、make 和 MakeFile)

    Linux 系列距離上一篇文章已經(jīng)半年多了,因?yàn)楦鞣N事情一直耽擱到現(xiàn)在,很多小伙伴都問了好些次,一直在等著,感謝大家支持! 確實(shí)時(shí)間拖得太久了,是時(shí)候重新加油起來! 簡(jiǎn)單理了理思路,通過一篇簡(jiǎn)單點(diǎn)的文章過度一下,上一篇講到了 Linux 下的 C 編程, 本文就要引出

    2024年02月06日
    瀏覽(17)
  • 00.嵌入式筆記——初識(shí)make工具和Makefile文件

    make是解決大工程編譯的工具,描述哪些文件需要編譯、哪些需要重新編譯的文件就叫做 Makefile,Makefile 就跟腳本文件一樣,Makefile 里面還可以執(zhí)行系統(tǒng)命令。我們使用的時(shí)候只需要一個(gè)make命令即可完成整個(gè)工程的自動(dòng)編譯,極大的提高了軟件開發(fā)的效率。 Makefile 的引入 如果

    2024年02月08日
    瀏覽(88)
  • 嵌入式Linux開發(fā)——解決uboot無法使用nfs服務(wù)從ubuntu中下載文件(TTT、cannot mount等錯(cuò)誤)

    嵌入式Linux開發(fā)——解決uboot無法使用nfs服務(wù)從ubuntu中下載文件(TTT、cannot mount等錯(cuò)誤)

    最近在學(xué)習(xí)正點(diǎn)原子嵌入式Linux開發(fā)板uboot的移植實(shí)驗(yàn),移植完之后想測(cè)試網(wǎng)絡(luò)部分的驅(qū)動(dòng)能否工作正常。最后經(jīng)過測(cè)試發(fā)現(xiàn)tftp可以正常下載,nfs卻一直報(bào)錯(cuò)無法下載文件,最后也是折磨了兩天才解決了問題,特寫下此博客進(jìn)行記錄、總結(jié)。 我的輕薄本沒有網(wǎng)口,事先買了一

    2024年01月20日
    瀏覽(24)
  • 【嵌入式Linux】編譯應(yīng)用和ko內(nèi)核模塊Makefile使用記錄

    【嵌入式Linux】編譯應(yīng)用和ko內(nèi)核模塊Makefile使用記錄

    在Makefile中,變量的賦值可以使用以下幾種方式: = :最基本的賦值符號(hào),表示簡(jiǎn)單的延遲展開(lazy expansion)方式。變量的值將會(huì)在使用變量的時(shí)候進(jìn)行展開。 := :立即展開(immediate expansion)的賦值方式。變量的值在賦值的時(shí)候立即展開,并且在后續(xù)的使用中不再改變。

    2024年02月08日
    瀏覽(24)
  • 【C語言】嵌入式C語言項(xiàng)目管理利器:深入理解Makefile的應(yīng)用與實(shí)踐

    【C語言】嵌入式C語言項(xiàng)目管理利器:深入理解Makefile的應(yīng)用與實(shí)踐

    目錄 一、makedile的概述 1、案例引入 2、makefile? 3、Makefile優(yōu)點(diǎn) 二、makefile的語法規(guī)則? 1、語法規(guī)則 2、簡(jiǎn)單實(shí)戰(zhàn) 三、makefile的變量 1、自定義變量 2、系統(tǒng)環(huán)境變量 3、預(yù)定義變量 4、高級(jí)makefile gcc a.c b.c c.c ‐o main 如果只修改了b.c 使用gcc編譯 需要對(duì)所有文件重新編譯。makefi

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包