色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

uboot圖形化配置及其原理

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-21 12:31 ? 次閱讀

uboot圖形化配置及其原理

uboot可以通過 mx6ull_xxx_defconfig和 mx6ull_xxx_emmc.h文件來配置;另外還有一種配置uboot的方法,就是圖形化配置

1.uboot圖形化配置

1.1 圖形化配置簡介

uboot或 Linux內(nèi)核可以通過輸入“make menuconfig”命令來打開圖形化配置界面,menuconfig是一套圖形化的配置工具,需要 ncurses庫支持。 ncurses庫提供零一系列的 API函數(shù)供調(diào)用者生成基于文本的圖形界面,因此需要先在 Ubuntu中安裝 ncurses庫

sudo apt-get install build-essential
sudo apt-get install libncurses5-dev

menuconfig重點(diǎn)會(huì)用到兩個(gè)文件:“.config”和“Kconfig”,.config文件保存著uboot的配置項(xiàng),使用 menuconfig配置完 uboot后該文件會(huì)被更新; Kconfig文件是圖形界面的描述文件,即描述界面應(yīng)該有什么內(nèi)容,很多目錄下都會(huì)有Kconfig文件

1.2 uboot圖形化配置體驗(yàn)

在打開圖形化配置界面前,需要先對(duì) uboot進(jìn)行一次默認(rèn)配置。 之后使用“make menuconfig”命令打開圖形化界面,打開后的界面如下示:

圖片

主界面上方的英文就是簡單的操作說明,操作方法如下:

通過向上和向下按鍵選擇要配置的菜單,“Enter"按鍵進(jìn)入

選中后按"Y"鍵會(huì)將相應(yīng)的代碼編譯進(jìn)uboot中,菜單前面變?yōu)?*>

選中后按"N"鍵會(huì)取消編譯相應(yīng)的代碼

選中后按"M"鍵會(huì)將相應(yīng)的代碼編譯為模塊,菜單前面變?yōu)?/p>

按兩下"Esc"鍵退出,也就是返回到上一級(jí)

按下"?“ 鍵查看選中菜單的幫助信息

按下”/"鍵打開搜索框,可在搜索框輸入要搜索的內(nèi)容

在配置界面下方有五個(gè)按鈕,其功能如下:

Select:選中按鈕,和enter按鍵功能相同

Exit:退出按鈕,和esc按鍵功能相同

Help:幫助按鈕,查看選中菜單的幫助信息

Save:保存按鈕,保存修改后的配置文件

Load:加載按鈕,加載指定的配置文件

下面以使能DNS命令為例,介紹如何通過圖形化界面來配置uboot

進(jìn)入"Command line interface"配置項(xiàng)

圖片

進(jìn)入"Network commands"網(wǎng)絡(luò)相關(guān)命令配置項(xiàng)

圖片

選中dns,按下"Y"鍵將其編譯到uboot中

圖片

按兩下esc鍵退出,如果有修改項(xiàng)目,在退出主界面時(shí)會(huì)提示是否需要保存

圖片

保存后可在uboot源碼中的".config"文件中發(fā)現(xiàn)多了"CONFIG_CMD_DNS=y"這一行

使用"make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16"命令編譯 uboot

注意:此時(shí)不能用腳本來編譯,因?yàn)槟_本文件在編譯之前會(huì)清理工程,會(huì)刪除掉.config文件,導(dǎo)致通過圖形化界面配置的所有選項(xiàng)都被刪除

編譯完成燒寫到SD卡后,重啟開發(fā)板進(jìn)入uboot命令模式,設(shè)置dns服務(wù)器的IP地址

setenv dnsip 114.114.114.114
saveenv

設(shè)置好后,使用dns命令即可查看百度官網(wǎng)的IP地址

dns www.baidu.com

圖片

2.menuconfig圖形化配置原理

2.1 make menuconfig過程分析

當(dāng)輸入make menuconfig以后會(huì)匹配到頂層Makefile中的如下代碼:

%config: scripts_basic outputmakefile FORCE
    $(Q)$(MAKE) $(build)=scripts/kconfig $@
#其中build=-f ./scripts/Makefile.build obj
###將上面第二行的規(guī)則展開后:
@make -f ./scripts/Makefile.build obj=scripts/kconfig menuconfig

Makefile.build會(huì)讀取scripts/kconfig/Makefile中的內(nèi)容,在scripts/kconfig/Makefile中有如下代碼:

menuconfig: $(obj)/mconf
    $< $(silent) $(Kconfig)
#silent是這是靜默編譯的
###展開后###
menuconfig: scripts/kconfig/mconf
    scripts/kconfig/mconfKconfig

目標(biāo)menuconfig依賴scripts/kconfig/mconf,因此scripts/kconfig/mconf.c文件會(huì)被編譯,生成mconf可執(zhí)行文件;目標(biāo)menuconfig對(duì)應(yīng)的規(guī)則為scripts/kconfig/mconfKconfig, 也就是說mconf會(huì)調(diào)用uboot根目錄下的Kconfig文件開始構(gòu)建圖形配置界面

2.2 Kconfig語法簡介

對(duì)于Kconfig語法不需要太深入的去研究,了解其原理即可。 打開uboot根目錄下的頂層Kconfig,以這個(gè)文件為例來簡單學(xué)習(xí)一下Kconfig語法

mainmenu:主菜單

##########頂層Kconfig代碼段##########
mainmenu "U-Boot $UBOOTVERSION Configuration"

source命令調(diào)用其他目錄下的Kconfig文件

##########頂層Kconfig代碼段##########
source "arch/Kconfig"
......
source "common/Kconfig"
source "cmd/Kconfig"
source "dts/Kconfig"
source "net/Kconfig"
source "drivers/Kconfig"
source "fs/Kconfig"
source "lib/Kconfig"
source "test/Kconfig"

##以上子目錄下的Kconfig文件在主菜單中生成各自的菜單項(xiàng)

menu/endmenu條目:menu用于生成菜單,endmenu菜單結(jié)束標(biāo)志

##########頂層Kconfig代碼段##########
menu "General setup"

config LOCALVERSION
    string "Local version - append to U-Boot release"
    help
      Append an extra string to the end of your U-Boot version.
      This will show up on your boot log, for example.
      The string you set here will be appended after the contents of
      any files with a filename matching localversion* in your
      object and source tree, in that order.  Your total string can
      be a maximum of 64 characters.
......
......
endmenu		# General setup

menu "Boot images"

config SUPPORT_SPL
    bool
......
......
endmenu		# Boot images

以上代碼中有兩個(gè)menu/endmenu代碼塊,這兩個(gè)代碼塊就是兩個(gè)子菜單

圖片

config條目:是菜單里的具體配置項(xiàng)

##########頂層Kconfig代碼段##########
menu "General setup"

config LOCALVERSION
    string "Local version - append to U-Boot release"
    help			
    ......
config LOCALVERSION_AUTO
    bool "Automatically append version information to the version string"
    default y	#表示該配置項(xiàng)默認(rèn)值是y,即默認(rèn)被選中
    help	#表示幫助信息,告知配置項(xiàng)的含義,按下h或?會(huì)彈出help的內(nèi)容
    ......
config CC_OPTIMIZE_FOR_SIZE
    bool "Optimize for size"
    default y
    help
    ......
config SYS_MALLOC_F
    bool "Enable malloc() pool before relocation"
    default y if DM
    help
    ......
config SYS_MALLOC_F_LEN
    hex "Size of malloc() pool before relocation"
    depends on SYS_MALLOC_F
    default 0x400
    help
    ......
menuconfig EXPERT
    bool "Configure standard U-Boot features (expert users)"
    default y
    help
    ......
if EXPERT
    config SYS_MALLOC_CLEAR_ON_INIT
    bool "Init with zeros the memory reserved for malloc (slow)"
    default y
    help
    ......
endif
endmenu		# General setup

以上可看出,在menu/endmenu代碼塊中有大量的"config XXX"代碼塊(config條目)。 若使能了XXX功能,就會(huì)在 .config文件中生成 CONFIG_XXX

常用的三種變量類型:bool、tristate和string

– bool,有兩種值,y和n

– tristate,有三種值,y、n和m

– string,用來存儲(chǔ)本地字符串

圖片

depends on和select

########## arch/Kconfig代碼段 ##########
config SYS_GENERIC_BOARD
    bool
    depends on HAVE_GENERIC_BOARD
#depends on依賴:依賴項(xiàng)選中后,被依賴項(xiàng)才能被選中
choice
    prompt "Architecture select"
    default SANDBOX

config ARC
    bool "ARC architecture"
    select HAVE_PRIVATE_LIBGCC
    select HAVE_GENERIC_BOARD
    select SYS_GENERIC_BOARD
    select SUPPORT_OF_CONTROL
#select方向依賴,“ARC”被選擇后,四個(gè)select也會(huì)被選中

choice/endchoice:定義一組可選擇項(xiàng),將多個(gè)類似配置項(xiàng)組合在一起,供用戶單選或多選

########## arch/Kconfig代碼段 ##########
choice
    prompt "Architecture select"
    default SANDBOX

config ARC
    bool "ARC architecture"
    ......
config ARM
    bool "ARM architecture"
    ......
config AVR32
    bool "AVR32 architecture"
    ......
config BLACKFIN
    bool "Blackfin architecture"
    ......
config M68K
    bool "M68000 architecture"
    ......
config MICROBLAZE
    bool "MicroBlaze architecture"
    ......
config MIPS
    bool "MIPS architecture"
    ......
config NDS32
    bool "NDS32 architecture"
    ......
config NIOS2
    bool "Nios II architecture"
    ......
config OPENRISC
    bool "OpenRISC architecture"

config PPC
    bool "PowerPC architecture"
    ......
config SANDBOX
    bool "Sandbox"
    ......
config SH
    bool "SuperH architecture"
    select HAVE_PRIVATE_LIBGCC

config SPARC
    bool "SPARC architecture"
    ......
config X86
    bool "x86 architecture"
    ......
endchoice

圖片

menuconfig:和menu類似,但是menuconfig是帶選項(xiàng)的菜單,其一般用法如下

menuconfig MODULES    #定義一個(gè)可選的菜單MODULES
    bool "菜單"
if MODULES	      #只有選中了,if里面的內(nèi)容才會(huì)顯示
......
endif # MODULES
##########頂層Kconfig代碼段##########
menu "General setup"
......
menuconfig EXPERT
    bool "Configure standard U-Boot features (expert users)"
    default y
    help
    ......

if EXPERT
    config SYS_MALLOC_CLEAR_ON_INIT
    bool "Init with zeros the memory reserved for malloc (slow)"
    default y
    help
    ......
endif
endmenu		# General setup

以上代碼實(shí)現(xiàn)了一個(gè)帶選項(xiàng)的菜單EXPERT,只有被選中了,if/endif里的內(nèi)容才會(huì)顯示出來

圖片

圖片

comment:用于在圖形化界面中顯示一行注釋

########## drviers/mtd/nand/Kconfig代碼段##########
config NAND_ARASAN
    bool "Configure Arasan Nand"
    help
      This enables Nand driver support for Arasan nand flash
      controller. This uses the hardware ECC for read and
      write operations.

comment "Generic NAND options"   #標(biāo)注了一行注釋

圖片

3.添加自定義菜單

圖形化配置工具的主要工作就是在.config文件里生成前綴為“CONFIG_”變量,這些變量一般都有值(y/m/n),在uboot源碼里會(huì)根據(jù)這些變量來決定編譯哪個(gè)文件。 下面介紹如何添加一個(gè)自已的自定義菜單,自定義菜單要求:

在主界面中添加名為“My test menu”菜單項(xiàng),菜單內(nèi)部有一個(gè)配置項(xiàng)

配置項(xiàng)為“MY_TESTCONFIG”,處于菜單“My test menu”中

配置項(xiàng)的變量類型為bool,默認(rèn)值為y

配置項(xiàng)菜單名字為“This is my test config”

配置項(xiàng)的幫助內(nèi)容為“This is a empty config, just for testing!”

完成以上菜單要求,只需要在頂層Kconfig文件末尾加上如下代碼即可

menu "My test menu"

config MY_TESTCONFIG
    bool "This is my test config"
    default y
    help
      This is a empty config,just for test!

endmenu		#my test menu

添加完成后,打開圖形化配置界面,可見主菜單最后面出現(xiàn)一個(gè)名為“My test menu”的子菜單

圖片

進(jìn)入子菜單如下圖示,可見配置項(xiàng)菜單名字

圖片

按下help按鍵打開幫助文檔,如下圖示

圖片

打開.config文件,可以發(fā)現(xiàn)“CONFIG_MY_TESTCONFIG=y”,如下圖示,至此在主菜單中添加自定義菜單的功能就實(shí)現(xiàn)了

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1377

    瀏覽量

    40326
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11322

    瀏覽量

    209862
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4803

    瀏覽量

    68752
  • 圖形化
    +關(guān)注

    關(guān)注

    0

    文章

    56

    瀏覽量

    14223
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    28259
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [分享]圖形化系統(tǒng)的設(shè)計(jì)

    圖形化系統(tǒng)的設(shè)計(jì) 商用現(xiàn)成建模平臺(tái)如前所述,由于許多設(shè)計(jì)延遲或是根本無法面市,甚至更糟;由于設(shè)計(jì)會(huì)在推出之后宣告失敗,我們必須采取行動(dòng),確保以更短的時(shí)間獲得更優(yōu)質(zhì)的產(chǎn)品。一舉兩得
    發(fā)表于 05-30 15:56

    圖形化編程

    圖形化編程語言的線型如何區(qū)分
    發(fā)表于 05-24 13:57

    labview圖形化編程分享!

    工作以來一直從事下位機(jī)的開發(fā),對(duì)上位機(jī)了解很少。有的時(shí)候DIY時(shí),想將下位機(jī)與上位機(jī)結(jié)合起來,但不知上位機(jī)編程怎么回事。從網(wǎng)上了解到一種圖形化編程語言(也叫G語言),LABVIEW就是圖形化編程
    發(fā)表于 10-20 20:15

    「正點(diǎn)原子Linux連載」第三十四章U-Boot圖形化配置及其原理

    mx6ull_alientek_emmc_defconfig來配置,或者通過文件mx6ull_alientek_emmc.h來配置uboot。還有另外一種配置
    發(fā)表于 03-16 16:16

    【正點(diǎn)原子FPGA連載】第十五章U-Boot圖形化配置及其原理-領(lǐng)航者ZYNQ之linux開發(fā)指南

    原子公眾號(hào),獲取最新資料第十五章U-Boot圖形化配置及其原理在前兩章中我們知道uboot可以通過zynq_altk_defconfig來配置
    發(fā)表于 09-11 15:57

    淺析Mixly圖形化編程軟件

    Mixly 是由北師大米思齊團(tuán)隊(duì)開發(fā)的圖形化編程軟件,自發(fā)布以來深受國內(nèi)創(chuàng)客圈的喜愛。Mixly 編程軟件采用圖形化編程,不用記代碼,只需要拖拽、簡單設(shè)置,就能讓你快速完成創(chuàng)意電子編程。本...
    發(fā)表于 08-04 07:35

    Mixly圖形化編程軟件介紹

    Mixly 是由北師大米思齊團(tuán)隊(duì)開發(fā)的圖形化編程軟件,自發(fā)布以來深受國內(nèi)創(chuàng)客圈的喜愛。Mixly 編程軟件采用圖形化編程,不用記代碼,只需要拖拽、簡單設(shè)置,就能讓你快速完成創(chuàng)意電子編程。本...
    發(fā)表于 09-01 08:22

    STM32CubeMX圖形化配置軟件怎么使用?有哪些注意事項(xiàng)?

    STM32CubeMX圖形化配置軟件怎么使用?有哪些注意事項(xiàng)?
    發(fā)表于 02-14 06:13

    求openharmony圖形化的編程軟件

    學(xué)openharmony那些開發(fā)板,有圖形化的編程軟件嘛?
    發(fā)表于 05-05 07:43

    cpuview圖形化單片機(jī)編程軟件下載

    cpuview圖形化單片機(jī)編程軟件下載
    發(fā)表于 04-09 12:05 ?1095次下載

    Arduino教程_Arduino圖形化編程教程_ArduBlock

    Arduino教程_Arduino圖形化編程軟件_ArduBlock
    發(fā)表于 09-25 09:22 ?0次下載
    Arduino教程_Arduino<b class='flag-5'>圖形化</b>編程教程_ArduBlock

    怎樣才能縮短開發(fā)圖形化系統(tǒng)設(shè)計(jì)的時(shí)間?

    圖形化系統(tǒng)設(shè)計(jì)革命性地解決了設(shè)計(jì)問題,它將直觀的圖形化編程和靈活的商用現(xiàn)成(COTS)硬件融為一體,幫助工程師和科學(xué)家更有效地設(shè)計(jì)、建模、部署嵌入式系統(tǒng)。用戶通過圖形化系統(tǒng)設(shè)計(jì),在設(shè)計(jì)的各個(gè)階段采用單一的環(huán)境,從而提高生產(chǎn)效率、
    發(fā)表于 07-19 07:32 ?724次閱讀
    怎樣才能縮短開發(fā)<b class='flag-5'>圖形化</b>系統(tǒng)設(shè)計(jì)的時(shí)間?

    Scratch圖形化編程軟件安裝包下載

    Scratch圖形化編程軟件安裝包下載
    發(fā)表于 06-18 09:14 ?0次下載

    STM32CubeMX圖形化配置工具的安裝教程

      STM32CubeMX是STM32芯片圖形化配置工具,通過簡單的操作便能實(shí)現(xiàn)相關(guān)配置,省去了我們配置各種外設(shè)的時(shí)間,支持MDK、IAR For ARM、TrueStudio等多種工
    的頭像 發(fā)表于 07-02 16:00 ?6386次閱讀
    STM32CubeMX<b class='flag-5'>圖形化</b><b class='flag-5'>配置</b>工具的安裝教程

    STM32CubeMx圖形化配置工具的主要特征與安裝教程

    STM32CubeMX 是意法半導(dǎo)體推出的圖形化配置工具, 通過傻瓜的操作便能實(shí)現(xiàn)相關(guān)配置, 最終能夠生成 C 語言代碼, 支持多種工具鏈, 比如 MDK、 IARFor ARM、
    的頭像 發(fā)表于 05-28 19:07 ?4507次閱讀
    STM32CubeMx<b class='flag-5'>圖形化</b><b class='flag-5'>配置</b>工具的主要特征與安裝教程
    主站蜘蛛池模板: 色四房播播| 99热免费精品店| 亚洲色图在线播放| 最美女人体内射精一区二区| 被两根巨大同时进去高H| 国产亚洲精品成人a在线| 久久亚洲精品中文字幕| 日韩毛片大全| 野花日本韩国视频免费高清观看 | 青青草原国产| 亚洲精品不卡在线| FREE性丰满HD毛多多| 国产永久免费观看视频软件| 内地同志男16china16| 午夜射精日本三级| 91chinesevideo| 国产婷婷午夜无码A片| 内射爽无广熟女亚洲| 羞羞麻豆国产精品1区2区3区| 92电影网午夜福利| 国产在线视频分类精品| 欧美日韩一二区旡码高清在线| 亚洲精品国产自在在线观看| 啊好大好厉害好爽真骚| 久久精品黄AA片一区二区三区| 三叶草未满十八岁| 最近中文字幕完整版免费高清| 国产精品一国产AV麻豆| 欧美人与善交大片| 伊人久久久久久久久久| 国产高清视频在线播放www色| 美女露100%全身无遮挡| 亚洲精品免播放器在线观看| 成人人观看的免费毛片| 美美哒高清在线播放8| 亚洲妈妈精品一区二区三区| 成年黄网站免费大全毛片| 久亚洲AV无码专区A片| 亚洲国语在线视频手机在线 | qq快播电影网| 久久亚洲国产精品亚洲|