RT-Thread學(xué)習(xí)之Kconfig語(yǔ)法

Kconfig文件是各種配置界面的源文件,在bsp目錄下使用env工具執(zhí)行menuconfig命令調(diào)出的系統(tǒng)配置界面,就是通過讀取當(dāng)前bsp目錄下的Kconfig文件來生成的配置界面,這個(gè)文件是所有配置的總?cè)肟?。不同層?jí)目錄下的Kconfig文件可以通過這個(gè)入口包含到配置界面上來,配置工具通過讀取各個(gè)目錄下的Kconfig文件,從而生成配置界面供開發(fā)人員配置系統(tǒng),最終生成RT-Thread系統(tǒng)的配置文件rtconfig.h。所以詳細(xì)學(xué)習(xí)一下Kconfig的語(yǔ)法還是至關(guān)重要的,前面我們?cè)贐SP制作的時(shí)候,已經(jīng)簡(jiǎn)單使用過Kconfig文件,就從這里入手開始詳細(xì)學(xué)習(xí)。


內(nèi)容提要

config語(yǔ)句

一個(gè)config語(yǔ)句定義一組新的配置選項(xiàng),代碼對(duì)應(yīng)界面內(nèi)容,示例如下:

語(yǔ)句主要包括以下幾部分:類型,輸入提示,依賴關(guān)系,默認(rèn)值,幫助信息


語(yǔ)句結(jié)構(gòu)說明

類型:每個(gè)config菜單項(xiàng)都要有類型定義,變量共有五種類型:bool,tristate(三態(tài)),string,hex,int

反向依賴關(guān)系:select語(yǔ)句表示反向依賴關(guān)系,即當(dāng)前配置選項(xiàng)被選中

默認(rèn)值:表示當(dāng)前配置選項(xiàng)的默認(rèn)值,很好理解

通過以上語(yǔ)句配置之后,最終就會(huì)在rtconfig.h文件中生成如下兩個(gè)宏:

#define RT_USING_PIN

#define BSP_USING_GPIO

特別說明:其中tristate類型的取值范圍值y,n和m,分別代表不選中,選中直接編譯進(jìn)內(nèi)核,手動(dòng)添加驅(qū)動(dòng),其使用方法和bool類型相似。

menu語(yǔ)句

menu語(yǔ)句用于生成菜單,使用menu和endmenu定義一個(gè)菜單,其中可以包含很多條config語(yǔ)句。這個(gè)很簡(jiǎn)單,不做詳細(xì)展開。

if/endif語(yǔ)句

用于定義條件判斷語(yǔ)句,通過判斷一個(gè)標(biāo)志,來決定是否顯示某個(gè)配置項(xiàng)。

menuconfig語(yǔ)句

表示帶菜單的配置項(xiàng),menuconfig語(yǔ)句和config語(yǔ)句相似,但它在config的基礎(chǔ)上要求所有的子選項(xiàng)作為獨(dú)立的行顯示。用depends on表示依賴某個(gè)配置選項(xiàng)。

choice/endchoice語(yǔ)句

將多個(gè)類似的配置選項(xiàng)組合在一起,供用戶選擇一組配置項(xiàng)。用prompt給出提示信息,作為彈出框的標(biāo)題,在一組choice語(yǔ)句中,可以給出多個(gè)配置項(xiàng)供選擇,但是在配置界面只能選擇一個(gè)配置項(xiàng),相當(dāng)于是一個(gè)單選框。

comment語(yǔ)句

comment 語(yǔ)句出現(xiàn)在界面的第一行,用于定義一些提示信息。

source語(yǔ)句

用于讀取另一個(gè)文件中的 Kconfig 文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容