Kconfig文件是各种配置界面的源文件,在bsp目录下使用env工具执行menuconfig命令调出的系统配置界面,就是通过读取当前bsp目录下的Kconfig文件来生成的配置界面,这个文件是所有配置的总入口。不同层级目录下的Kconfig文件可以通过这个入口包含到配置界面上来,配置工具通过读取各个目录下的Kconfig文件,从而生成配置界面供开发人员配置系统,最终生成RT-Thread系统的配置文件rtconfig.h。所以详细学习一下Kconfig的语法还是至关重要的,前面我们在BSP制作的时候,已经简单使用过Kconfig文件,就从这里入手开始详细学习。
内容提要config语句
一个config语句定义一组新的配置选项,代码对应界面内容,示例如下:
语句主要包括以下几部分:类型,输入提示,依赖关系,默认值,帮助信息
语句结构说明类型:每个config菜单项都要有类型定义,变量共有五种类型:bool,tristate(三态),string,hex,int
反向依赖关系:select语句表示反向依赖关系,即当前配置选项被选中
默认值:表示当前配置选项的默认值,很好理解
通过以上语句配置之后,最终就会在rtconfig.h文件中生成如下两个宏:
#define RT_USING_PIN
#define BSP_USING_GPIO
特别说明:其中tristate类型的取值范围值y,n和m,分别代表不选中,选中直接编译进内核,手动添加驱动,其使用方法和bool类型相似。
menu语句
menu语句用于生成菜单,使用menu和endmenu定义一个菜单,其中可以包含很多条config语句。这个很简单,不做详细展开。
if/endif语句
用于定义条件判断语句,通过判断一个标志,来决定是否显示某个配置项。
menuconfig语句
表示带菜单的配置项,menuconfig语句和config语句相似,但它在config的基础上要求所有的子选项作为独立的行显示。用depends on表示依赖某个配置选项。
choice/endchoice语句
将多个类似的配置选项组合在一起,供用户选择一组配置项。用prompt给出提示信息,作为弹出框的标题,在一组choice语句中,可以给出多个配置项供选择,但是在配置界面只能选择一个配置项,相当于是一个单选框。
comment语句
comment 语句出现在界面的第一行,用于定义一些提示信息。
source语句
用于读取另一个文件中的 Kconfig 文件
网友评论