我是靠谱客的博主 自由夕阳,最近开发中收集的这篇文章主要介绍Kconfig语法详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Kconfig

  当在内核目录执行”make menuconfig”的时候读取相应的Kconfig文件,来生成配置界面。Kconfig常用的语法主要是几个重要的条目,每个条目都有自己的依赖关系。使用这些依赖关系以确定条目的可见性。任何子条目是唯一,如果其父条目可见,则可见。

1.1 config条目

example:
config MODVERSIONS
    bool "Set version information on all module symbols""
    depends 
    help 
        Usually,module have to.......

  大多数条目都定义了这个config选项,所有其他的条目都是来组织config选项的。每行都以一个关键字开始,后面可以跟着多个参数。 “config”启动一个新的配置项。以下几行定义此配置选项的属性。属性可以是选项类型,输入提示符,依赖项,帮助信息和默认值值。配置选项可以多次定义相同名称,但每个定义只能有一个输入提示符和类型不能冲突。
  一个条目有很多属性,如下:

  • 定义类型:bool、tristate、string、hex、int。
    每个config必须有一个类型,其他的类型都是基于tristate和string,其中bool变量的值有y和n,tristate变量的值有y、n和m,string变量的值为字符串。类型定义可以接受输入提示,所以这两个例子是等效的:
    bool "Networking support"
    and
    bool
    prompt "Networking support"
  • 输入提示:变量的类型后面跟着输入提示。输入提示也可以单独做一行,使用prompt,格式为:prompt [if ],其中if用来表示该提示的依赖关系。
  • 依赖关系:格式为depends on(或者requires) ,表示config这个配置选项是依赖与”expr”,如果定义了多重依赖关系,他们之间用”&&”间隔。
  • 选择关系:select [if ],A如果选择了B,则在A被选中的情况下,B自动被选中。
  • 帮助信息:help(或—help—)

1.2 menu条目

  menu条目用于生成菜单,格式如下

example:
menu "Floating poing emulation"
        config FPE_NWFPE
        ..............
        config FPE_NWFPE_XP
        .............
endmenu

  menu之后的字符串是菜单名,menu和endmenu之间有很多config条目(待会说介绍config条目),在配置界面上会出现如下字样的菜单,移动光标选中它之后按回车进入,就会看到config条目定义的配置选项。

Floating point emulation  --->
           [] FPE_NWFPE
           [] FPE_NWFPE_XP

1.3 choice条目

  choice条目将多个类似的配置选项组合在一起,供用户单选或者多选。

example:
choice
    prompt "arm system type"
    default arch_versatile
config arch_aarc200
    ...
config arch_integrator
    ...
endchoice

  prompt后面跟的是提示信息,光标选中它后按回车键进入,就可以看到多个config条目定义的配置选项。
  条目中定义的变量类型只能有两种:bool和tristate,不能同时有这两种类型的变量。对于bool类型的choice条目,只能在多个选项中选择一个;对于tristate类型的choice条目,要么就把多个选项都设为m;要么就像bool类型的choice条目一样,只能选择一个。

1.4 comment条目

  comment条目定义了一些帮助信息,它在配置过程中出现在界面的第一行;并且这些帮助信息会出现在配置文件中,格式如下:

comment <prompt>
<comment options>
example:
menu "floating point emulation"
comment "At least one emultaion must be selected"
...

  进入菜单“floating point emulation —>”之后,在第一行就会看到如下内容:

--- At least one emultaion must be selected

1.5 source条目

  source条目用于读入另一个Kconfig文件,格式如下:

source <promt>
example:
source "net/Kconfig"

最后

以上就是自由夕阳为你收集整理的Kconfig语法详解的全部内容,希望文章能够帮你解决Kconfig语法详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部