chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ZephyrOS中對(duì)于Kconfig的介紹

恩智浦MCU加油站 ? 來(lái)源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2021-10-11 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這次小編為大家?guī)?lái)的是ZephyrOS系列文章的第五篇,將為大家介紹Kconfig。

這次小編緊接著上篇給大家?guī)?lái)ZephyrOS中對(duì)于Kconfig的介紹。

簡(jiǎn)單的來(lái)說(shuō),Kconfig就是Zephyr的配置系統(tǒng),Zephyr內(nèi)核可以在構(gòu)建階段,根據(jù)不同的配置,包含特定的應(yīng)用和平臺(tái)。而這個(gè)配置過(guò)程正是通過(guò)Kconfig實(shí)現(xiàn)的,其也與Linux內(nèi)核配置所使用的Kconfig完全一致。設(shè)計(jì)目標(biāo)就是讓我們無(wú)需修改源代碼就可以完成Zephyr的配置工作,包括內(nèi)核,硬件,子系統(tǒng)等。通常配置項(xiàng)(也被稱作symbol)是在Kconfig文件中定義的。當(dāng)然不同的配置項(xiàng)之間也是可以存在依賴關(guān)系的,比如定義一個(gè)符號(hào)A,它依賴于B,那么只有當(dāng)B被使能之后,A才是有效的。同時(shí),所有的符號(hào)可以被合并到一個(gè)叫做menu/sub-menu的組里面,便于圖形化管理。在正式開篇之前,小編先給大家推薦一個(gè)小工具,叫做menuconfig,他是一個(gè)可選的圖形化工具,可以用來(lái)查看和修改Kconfig設(shè)置:

當(dāng)然默認(rèn)是不會(huì)打開的,即默認(rèn)使用west構(gòu)建工程是不支持menuconfig的,需要傳入-t menuconfig參數(shù):

west build –t menuconfig –b mimxrt1060_evksampleshello_world

最終,所有配置項(xiàng)會(huì)被生成到一個(gè)叫做autoconf.h的文件中,沒(méi)有用到的代碼就不會(huì)再被編譯系統(tǒng)所編譯,以節(jié)省代碼空間。

下面,介紹Kconfig中的一個(gè)比較重要的概念,visible和invisible符號(hào)。

首先說(shuō)visible符號(hào),也就是那些可以在menuconfig窗口中見(jiàn)到的,這些符號(hào),通常都有一個(gè)prompt屬性,即一個(gè)字符串來(lái)進(jìn)行描述,例如:

config FPU bool “Support floating point operations” depends on HAS_FPU

然后,我們就可以在menuconfig界面中找到他:

[ ] Support floating pointoperations

Invisible符號(hào)則與之相對(duì),一般沒(méi)有prompt屬性,即字符串來(lái)說(shuō)明,例如:

config CPU_HAS_FPU

bool

help

This symbol is y if the CPU has a hardwarefloating point unit.

他的特殊性在于,這些符號(hào)對(duì)于用戶是不可見(jiàn)的,即不能通過(guò)menuconfig提供的圖形化工具來(lái)配置,只能通過(guò)其他手段來(lái)修改其的值。

例如,通過(guò)Kconfig.defconfig文件設(shè)置下面這個(gè)符號(hào)的值為32:

config FOO_WIDTH

int

我們就可以在Kconfig.defconfig文件中定義:

config FOO_WIDTH

default 32

endif

這樣一來(lái),我們就修改了FOO_WIDTH的默認(rèn)值為32。

要注意的是,Kconfig.defconfig中所定義的默認(rèn)值會(huì)覆蓋掉起始值,且優(yōu)先級(jí)比較高。

我們?cè)倥e一個(gè)choice的例子,比起上面我們定義的config形式的變量,choice類似于一種單選框,當(dāng)有多個(gè)配置存在時(shí),只能一個(gè)配置項(xiàng)有效,這樣一來(lái),達(dá)到一個(gè)互斥的效果。要如何操作呢?假定有一個(gè)choice叫做FOO,他有兩個(gè)配置項(xiàng)A和B,初始默認(rèn)值是B:

choice FOO

bool “Foo choice”

default B

config A

bool “A”

config B

bool “B”

endchoice

下面我們把他的默認(rèn)值修改為A,完成這個(gè)操作,除了在Kconfig.defconfig中修改外,我們還可以在prj.conf中添加:

choice FOO

default A

endchoice

當(dāng)然,這里要注意,如果我們定義了一個(gè)invisible的choice變量FOO的話,就只能通過(guò)Kconfig.defconfig來(lái)修改了。

那么在Zephyr工程中,都有哪些修改默認(rèn)配置的地方呢?如果只考慮板級(jí)(即Zephyr所支持的開發(fā)板)+ 應(yīng)用這一層,大致分為三類:

板子相關(guān)的配置文件,一般名為:boards/《ARCH》/《BOARD》/《BOARD》_defconfig

任意的CMake cache文件,以CONFIG_開頭

應(yīng)用配置:

a) 默認(rèn)prj.conf

b) 通過(guò)-DCONF_FILE=《conf_file》指定,進(jìn)行重載

c) 通過(guò)-DOVERLAY_CONFIG=《conf_file》指定,進(jìn)行擴(kuò)展

d) 通過(guò)prj_《BOARD》.conf進(jìn)行重載

e) 通過(guò)boards/《BOARD》.conf進(jìn)行擴(kuò)展

那么小編就不再擴(kuò)展Kconfig的其他語(yǔ)法了,大家可以參考這里來(lái)了解更多。

至此,Zephyr所使用的兩大配置系統(tǒng)就大致講完了,那么有朋友可能會(huì)問(wèn)了,我們什么時(shí)候要用DeviceTree什么時(shí)候要用Kconfig呢?小編在這里簡(jiǎn)單總結(jié)一下:

使用設(shè)備樹來(lái)描述硬件和啟動(dòng)配置,例如板載外設(shè)和設(shè)置啟動(dòng)時(shí)系統(tǒng)時(shí)鐘頻率等

使用Kconfig來(lái)配置哪些源代碼將要被放到最終的鏡像中,例如是否添加網(wǎng)絡(luò)的支持,哪個(gè)驅(qū)動(dòng)是需要的。

通俗點(diǎn)講,DeviceTree負(fù)責(zé)管理那些硬件資源,Kconfig負(fù)責(zé)管理軟件資源。

舉個(gè)例子,有個(gè)設(shè)備同時(shí)擁有2.4GHz,multi-protocol radio; 藍(lán)牙和802.15.4,那么設(shè)備樹就用來(lái)描述:

是否有radio硬件存在

兼容性驅(qū)動(dòng)

啟動(dòng)階段配置,比如TX power in dBm

Kconfig文件決定哪個(gè)軟件包需要被構(gòu)建,是選擇BLE還是選擇802.15.4協(xié)議棧。

聊到這里,結(jié)合上一篇關(guān)于DeviceTree的文章,小編就將DeviceTree和Kconfig的一

些知識(shí)點(diǎn)分享給大家了,不過(guò),限于篇幅,都只是一些比較簡(jiǎn)單的介紹,大家可以自行深入探索。

責(zé)任編輯:haq

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

    關(guān)注

    147

    文章

    18923

    瀏覽量

    397972
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

    6579

原文標(biāo)題:清風(fēng)徐來(lái)——Zephyr實(shí)戰(zhàn)篇(4)之Kconfig

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ZephyrOS添加NPU驅(qū)動(dòng)支持加速AI應(yīng)用

    ? 承接上文——小編就不再鋪墊了,直接上重點(diǎn)! 在上一節(jié),我們已經(jīng)成功完成模型訓(xùn)練,并獲得了?量化后的 TFLite 模型。 那模型到底“長(zhǎng)”什么樣?結(jié)構(gòu)是否如預(yù)期?算子是否都被正確量化? 要回答
    的頭像 發(fā)表于 02-12 10:30 ?593次閱讀
    在<b class='flag-5'>ZephyrOS</b>添加NPU驅(qū)動(dòng)支持加速AI應(yīng)用

    智駕感知系統(tǒng)中立體視覺(jué)相對(duì)于LiDAR的性能優(yōu)勢(shì)

    上一篇我們引用馬斯克對(duì)于智駕感知的觀點(diǎn),以及分享了LiDAR與雙目立體視覺(jué)的原理技術(shù)知識(shí),下面我們?cè)敿?xì)介紹一下立體視覺(jué)相對(duì)于LiDAR的性能優(yōu)勢(shì)。
    的頭像 發(fā)表于 11-11 10:58 ?1933次閱讀
    智駕感知系統(tǒng)中立體視覺(jué)相<b class='flag-5'>對(duì)于</b>LiDAR的性能優(yōu)勢(shì)

    對(duì)于指令集中back2back情況的簡(jiǎn)單介紹

    1. 什么是back2back問(wèn)題 在分析上述問(wèn)題之前,我們先來(lái)想這么一個(gè)問(wèn)題:對(duì)于無(wú)符號(hào)二進(jìn)制數(shù),兩個(gè)4位數(shù)相乘需要一個(gè)幾位的寄存器才能保證結(jié)果沒(méi)有溢出呢?答案是我們需要用一個(gè)8位的寄存器來(lái)存
    發(fā)表于 10-23 06:52

    ENV工具menuconfig時(shí)出錯(cuò)了怎么解決?

    在下載的源碼進(jìn)入bsp目錄下的一個(gè)板子執(zhí)行menuconfig報(bào)錯(cuò),如下: Kconfig:3:warning: ignoring unsupported character '
    發(fā)表于 09-29 10:09

    rt thread 5.2.0 env出錯(cuò),執(zhí)行menuconfig 和scons命令報(bào)錯(cuò)怎么解決?

    問(wèn)題 menuconfig Kconfig:3:warning: ignoring unsupported character \':\' Kconfig:4: syntax error Kconfig:3
    發(fā)表于 09-23 08:19

    ENV工具安裝后menuconfig報(bào)錯(cuò)怎么解決?

    menuconfig menuconfig: Kconfig:9: \'../../../Kconfig\' not found (in \'source \"$(RTT_DIR
    發(fā)表于 09-23 06:57

    使用ENV工具進(jìn)行menuconfig找不到路徑是哪里的問(wèn)題?

    使用ENV2.0.0 在執(zhí)行menuconfig時(shí)有以下提示 $ menuconfig menuconfig: Kconfig:21: 'rt-thread
    發(fā)表于 09-17 07:39

    對(duì)于新唐的8051芯片,在Keil Debug模式下的單步執(zhí)行過(guò)程定時(shí)器可以停止嗎?

    對(duì)于新唐的8051芯片,在Keil Debug模式下的單步執(zhí)行過(guò)程,定時(shí)器可以停止嗎?
    發(fā)表于 08-26 06:33

    對(duì)于新唐的8051芯片,在Keil Debug模式下的單步執(zhí)行過(guò)程,定時(shí)器可以停止嗎?

    對(duì)于新唐的8051芯片,在Keil Debug模式下的單步執(zhí)行過(guò)程,定時(shí)器可以停止嗎?
    發(fā)表于 08-25 07:57

    對(duì)于在STM32CubeMx使用FMC的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?

    對(duì)于在STM32CubeMx使用FMC的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?
    發(fā)表于 07-21 07:07

    在canmv_k230 運(yùn)行make rtsmart-menuconfig報(bào)錯(cuò)怎么解決?

    /kconfig-frontends\' scons: Reading SConscript files ... scons: done reading SConscript files. scons
    發(fā)表于 07-21 06:35

    使用ENV工具進(jìn)行menuconfig找不到路徑怎么解決?

    使用ENV2.0.0 在執(zhí)行menuconfig時(shí)有以下提示 $ menuconfig menuconfig: Kconfig:21: \'rt-thread/Kconfig
    發(fā)表于 06-12 07:51

    芯片制造的應(yīng)變硅技術(shù)介紹

    本文介紹了在芯片制造的應(yīng)變硅技術(shù)的原理、材料選擇和核心方法。
    的頭像 發(fā)表于 04-15 15:21 ?3146次閱讀
    芯片制造<b class='flag-5'>中</b>的應(yīng)變硅技術(shù)<b class='flag-5'>介紹</b>

    集成電路制造的電鍍工藝介紹

    本文介紹了集成電路制造工藝的電鍍工藝的概念、應(yīng)用和工藝流程。
    的頭像 發(fā)表于 03-13 14:48 ?2735次閱讀
    集成電路制造<b class='flag-5'>中</b>的電鍍工藝<b class='flag-5'>介紹</b>

    在下載的源碼進(jìn)入bsp目錄下的一個(gè)板子執(zhí)行menuconfig報(bào)錯(cuò),怎么解決?

    在下載的源碼進(jìn)入bsp目錄下的一個(gè)板子執(zhí)行menuconfig報(bào)錯(cuò),如下: Kconfig:3:warning: ignoring unsupported character
    發(fā)表于 03-07 06:35