概述
Kconfig语法
bool/tristate/int/hex/string属性
bool 值为y或n
tristate 值为y或m或n
string 值为字符串
int 值为十进制整数
hex 值为十六进制整数
这几个属性一般必有一个。
default属性
表示缺省值,意思就是系统默认属性
help属性
这个属性是简介,没有啥实际作用,主要是写一些信息备注一类的
示例:
我在char目录的Kconfig下添加了一个新的驱动
config JASON1
tristate "MY JASON1 TEXT"
default m
help
my jason1
再在Makefile下添加编译:
obj-$(CONFIG_JASON1) += jason1.o
现在我们打开make menuconfig看看
可以看到默认就是m,如果我们个default m这句去掉我们在看看!
PS:
在menuconfig中选择m和 *的区别:
* : 模块驱动编译到内核中,启动时自动加载
M : 标识作为内核模块编译模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做
到linux的文件系统中,然后用insmod实现动态加载
空格:表示该功能不编译到内核中,即新的内核将不支持该功能。。
可以看到去掉default m 后默认就不是m状态了。
depends on属性
当依赖的定义为Y或者M时才会有效,否则不显示。
(比较老的说法是只能Y时候才行,但是实际上Y或者M都行)
上面我们添加了一个JASON1,这里我们在添加一个JASON2
Kconfig:
config JASON1
tristate "MY JASON1 TEXT"
help
my jason1
config JASON2
tristate "MY JASON2 TEXT"
depends on JASON1
help
my jason2
Makefile
obj-$(CONFIG_JASON1) += jason1.o
obj-$(CONFIG_JASON2) += jason2.o
再打开make menuconfig看看
给JASON1选中为Y
select 属性
当前选项选中后则select后指定的选项自动被选择
Kconfig
config JASON1
tristate "MY JASON1 TEXT"
depends on JASON3
help
my jason1
config JASON2
tristate "MY JASON2 TEXT"
select JASON1
help
my jason2s
config JASON3
tristate "MY JASON3 TEXT"
help
my jason3s
Makefile
obj-$(CONFIG_JASON1) += jason1.o
obj-$(CONFIG_JASON2) += jason2.o
obj-$(CONFIG_JASON3) += jason3.o
选中JASON3
可以看到JASON1出来了
选择JASON2为M
可以看到JASON1自动被选择为M
JASON2选择为上面JASON1就会自动被置为什么。
目前暂时遇到这么多,后续遇到别的属性会继续更!2021/10/12 17.34
最后
以上就是着急星月为你收集整理的Kconfig语法详解--结合示例的全部内容,希望文章能够帮你解决Kconfig语法详解--结合示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复