目录
一、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、遇到再说,待续。。。。。