标签:除了 属性 amp pre 添加内容 生成 方式 col idt
使用Kconfig时,需要注意的地方
CONFIG宏变量参数
常用参数
示例1-创建复选框(多选多)-探索宏变量参数
接下来我们来试试如何给不同宏设置不同参数,以MY_SYMBOL1~ MY_SYMBOL5为例
设置MY_SYMBOL3~ MY_SYMBOL5依赖于MY_SYMBOL2
修改内核顶层Kconfig文件,添加内容:
menuconfig MY_SYMBOL_TEST #生成一个菜单宏项
bool "MY_SYMBOL_TEST"
default y
config MY_SYMBOL1
bool "my symbol is bool"
default y
depends on MY_SYMBOL_TEST
config MY_SYMBOL2
tristate "my symbo2 is tristate"
default m
depends on MY_SYMBOL_TEST
config MY_SYMBOL3
string "my symbo3 is string"
default "test symbo3"
depends on MY_SYMBOL2 && MY_SYMBOL_TEST
config MY_SYMBOL4
hex "my symbo4 is hex"
range 0 0x2000 #设置hex区间
default 0x1234
depends on MY_SYMBOL2 && MY_SYMBOL_TEST
config MY_SYMBOL5
int "my symbo5 is int"
range 0 2000 #设置int区间
default 1234
depends on MY_SYMBOL2 && MY_SYMBOL_TEST
效果如下所示:
如上图所示,可以看到我们设置my symbol5超出区间[0,2000]时,直接数据报错
编译内核后,查看自动生成的autoconf.h,定义如下:
其中上面的CONFIG_MY_SYMBOL2_MODULE宏是因为我们在Kconfig设置它为default m,所以CONFIG_MY_SYMBOL2_MODULE是个模块宏.
示例2-通过choice创建单选框(多选一)
choice
prompt "choice example" #作为该单选框入口点的标签
default y
default MY_SYMBOL3 #默认选择MY_SYMBOL3配置项
config MY_SYMBOL1
bool "my symbol1 is bool"
help
MY_SYMBOL1 example
config MY_SYMBOL2
bool "my symbo2 is bool"
help
MY_SYMBOL2 example
config MY_SYMBOL3
tristate "my symbo3 is tristate"
help
MY_SYMBOL3 example
endchoice
编译内核后,查看autoconf.h,如下图所示,可以看到对于choice单选框来说,tristate属性其实并没有module功能,只有y/n
未完,后续再遇到不懂的再总结~
标签:除了 属性 amp pre 添加内容 生成 方式 col idt
原文地址:https://www.cnblogs.com/lifexy/p/10292742.html