目錄
一、Kconfig的作用
Kconfig 對內核和組件的功能進行配置,對組件進行自由裁剪。
二、元素解釋
2.1、menu && endmenu
menu的作用,可以理解成一個目錄, menu可以把其中一部分配置項包含到一個menu中,這樣有利於配置的分類顯示。menu與endmenu是一組指令,必須同時出現。menu和endmenu中包含的部分就是子目錄中的配置項。
也就是說menu與endmenu之間的內容構成一個部分,這樣易於分類管理。
menu "Hardware Drivers Config"
//此處包含一部分的內容
endmenu
menu後面連接的字符串就是菜單名稱,在menuconfig界面中,顯示如下:
2.2、config
config是關鍵字,表示一個配置選項的開始;
config有5種類型:bool、tristate、string、hex和int,其中tristate和string是基本的類型。
(1)bool變量的值:y和n。(2)tristate變量的值:y、n和m。 (3)string變量的值: 字符串。
bool之後的字符串是提示信息,顯示在界面用於提示。
select:是反向依賴關係的意思,即當前配置選項被選中,說明配置的內容需要選上這個選項。
depends on:表示依賴於XXX,“depends on TMPFS”表示只有當TMPFS配置選項被選中時,當前配置選項的提示信息纔會出現,才能設置當前配置選項,除了防止配置錯誤外,也可以使顯示更簡短,減少顯示的篇幅。
舉例:
config BSP_USING_UART2
bool "Enable UART2"
select RT_USING_SERIAL
default n
這裏是配置BSP_USING_UART2作爲bool型變量,bool後面是顯示信息,同時也選擇了RT_USING_SERIAL,其中該bool類型值默認爲n(no,意味着不選取)。
2.3、comment
只是起到插入語的作用,別的沒啥作用。comment "****Boot options******"
2.4、if && endif
menuconfig BSP_USING_I2C1
bool "Enable I2C1 BUS (software simulation)"
default n
select RT_USING_I2C
select RT_USING_I2C_BITOPS
select RT_USING_PIN
if BSP_USING_I2C1
config BSP_I2C1_SCL_PIN
int "i2c1 scl pin number"
range 1 176
default 15
config BSP_I2C1_SDA_PIN
int "I2C1 sda pin number"
range 1 176
default 16
endif
配置項是位於if和endif中。其中的部分就是子目錄BSP_USING_I2C1顯示的內容。如果選中了BSP_USING_I2C1,那麼if和endif中的內容可以顯示。如果沒有定義,就只能進入一個空目。
2.5、遇到再說,待續。。。。。