Kconfig语法简介

序言

    所谓Kconfig语法,主要是在linux内核源码中所有目录下的Kconfig脚本文件的语法,而make menuconfig所依赖的正是这些Kconfig文件。

语法简介

单一选项
config CPU_S5PC100 
    bool "选项名"
    select S5P_EXT_INT
    select SAMSUNG_DMADEV
    help
      Enable S5PC100 CPU support

关键字说明:
config CPU_S5PC100 :划分一个配置项CONFIG_CPU_S5PC100
bool “选项名”: bool对应着配置项的可选择状态,只能是 Y or N,不支持编译成ko文件,“选项名” 为该配置项显示的文本标题
"select S5P_EXT_INT": 表示该配置项一旦选中,则关联选中 CONFIG_S5P_EXT_INT 配置项
help:表示该配置项的对应的详细帮助的文本描述

依赖语法
depends on ARM || BLACKFIN || MIPS || COLDFIRE

当上述语句插入到配置项中的话,代表只有当 ARM 等四个配置项至少有一个选中时,配置项才能被选中。

三种选项
config DM9000
    tristate "DM9000 support"

关键字说明:
tristate:表示该配置,支持M选项,表示可以编译成ko文件。

选项为数字
config ARM_DMA_IOMMU_ALIGNMENT
    int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers"
    range 4 9 ---->该选项的范围值
    default 8 ---->该选项的默认值
    help
    DMA mapping framework by default aligns all buffers to the smallest

关键字说明:
int:表示该配置项是数值
range 4 9:表示该值的范围
default 8:表示该值的默认值,default y 同样可以表示默认选中

if endif
if ARCH_S5PC100
config CPU_S5PC100
    bool "选项名"
    select S5P_EXT_INT
    select SAMSUNG_DMADEV
    help
      Enable S5PC100 CPU support
 endif

如上述脚本所示, 如果ARCH_S5PC100选项选中了,则在endif范围内的选项才会被选

choice多个选项
choice      --->表示选择列表
    prompt "Default I/O scheduler"         //主目录名字
        default DEFAULT_CFQ                    //默认CFQ
    help
          Select the I/O scheduler which will be used by default for all
      block devices.
  config DEFAULT_DEADLINE
        bool "Deadline" if IOSCHED_DEADLINE=y 
  config DEFAULT_CFQ
        bool "CFQ" if IOSCHED_CFQ=y
  config DEFAULT_NOOP
        bool "No-op"
endchoice

choice 是单项选择,就是说DEFAULT_DEADLINE,DEFAULT_CFQ和DEFAULT_NOOP中,只能选中一个。

menu的用法
menu "Boot options"  ----> menu表示该选项是不可选的菜单,其后是在选择列表的菜单名
config USE_OF
    bool "Flattened Device Tree support"
    select IRQ_DOMAIN
    select OF
    select OF_EARLY_FLATTREE
    help
      Include support for flattened device tree machine descriptions.
endmenu     ----> menu菜单结束

menu中可以有多个选项,同时menu本身也是一个选项,只是这个选项只有选中状态,不可改。

menuconfig的用法
menuconfig MODULES ---> menuconfig表示MODULE是一个可选菜单,其选中后是CONFIG_MODULES
    bool "菜单名"
if MODULES
...
endif # MODULES

类似于menu的用法,只是menuconfig是可以选择的菜单,可以选择选中或不选中,而menu则只有选中,不可更改。没有被选中的menuconfig,则其下属的所有选项都是不被选中的。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值