当前位置: 首页 > news >正文

kconfig语法(二)

参考文章:博客

总体原则:每一个 config 就表示一个配置选项的开始,后面紧跟着的 ARCH_AIROHA 是配置选项的名称,config 下面几行定义了该配置选项的属性:如选项名是什么,依赖什么,选中这个后同时会选择什么等等

一、菜单项

eg:

 config ARCH_AIROHA bool "选项名" depends on ARCH_MULTI_V7 select ARM_AMBA default n help Support for Airoha EN7523 SoCs

config —> 选项。
ARCH_AIROHA —> 句柄,可用于控制Makefile,选择编译方式。
bool —> 选择可能:TRUE选中、FALSE不选;选中则编译,不选中则不编译。如果后面选项名字串为空,则表示其不会出现在选择软件列表中。
depends on —> 依赖,后面的选择被选择后,这个选项才能被选。
select —> 当前选项选中后,则select后指定的选项自动被选择。
default—> 缺省配置项。
help—> 帮助信息。

二、类型定义

bool/tristate/string/hex/int

菜单选项可以有多个属性。并不要求这些属性可以用在任何地方。每个配置选项都必须指定类型。

在5种类型中tristatestring 为基本类型,其他类型都是基于这两个基本类型。

  • bool:布尔类型:取值范围为Y/N
config BSP_USING_WDTbool "Enable Watchdog Timer"select RT_USING_WDTdefault n
  • tristate 三态类型:取值范围为Y/N/M,相较bool类型,tristate类型的菜单项多了编译成内核模块的选项

  • string 字符串:默认菜单选项显示对应字符串。

config RT_CONSOLE_DEVICE_NAMEstring "the device name for console"default "uart1"
  • int 整型
config BSP_I2C1_SCL_PINint "I2C1 scl pin number"range 1 176default 116
  • hex 十六进制
prompt: 输入提示
prompt  [“if” ]
default: 默认值

一个配置选项可以有任意多个默认值。如果有多个默认值,那么只有第一个被定义的值是可用的

depends on/requires: 依赖关系
select: 反向依赖关系
imply: 弱反向依赖关系
visible if: 选项可见
range: 数据范围
help: 帮助信息
菜单依赖关系
菜单结构关系

一个菜单项在菜单树中的位置是通过两种方式确定的。首先,它可以被明确指定:

menu "Network device support"depends on NETconfig NETDEVICES...endmenu

三、KConfig语法

配置文件描述了一系列菜单项,其中每行以关键字开头(帮助文本除外)。下列关键字则作为菜单项结束

  • config
  • menuconfig
  • choice/endchoice
  • comment
  • menu/endmenu
  • if/endif
  • source

上述前五项也作为菜单项定义的开始。

config: 配置项
"config" <symbol>
<config options>
menuconfig: 配置菜单块
menuconfig <symbol>
<config options>
choice/endchoice: 选择组
choice [<symbol>]
<choice options>
<choice block>
endchoice
comment: 注释项
"comment" <prompt>
<comment options>
menu/endmenu: 菜单块
"menu" <prompt>
<menu options>
<menu block>
"endmenu"
if/endif: 条件块
"if" <expr>
<if block>
"endif"
source: 读取项
"source" <prompt>

source条目用于读取另一个Kconfig文件。例如:

// /Config.in文件:
menu "Target options"……………………
endmenu
menu "Build options"……………………
endmenu
source "toolchain/Config.in"// /toolchain/Config.in文件:
menu "Toolchain"……………………
endmenu    
mainmenu: 标题栏
"mainmenu" <prompt>

如果配置程序启用,将被显示在配置程序的标题栏。该语句应该被放在配置文件的开头,所有语句之前。例如在buildroot根目录下config.in文件开头定义了该句

#: 注释

除了上述语法,在源文件行任何地方出现一个未加引号的’#'字符,表示该行的其余部分是一段注释。


http://www.mrgr.cn/news/57418.html

相关文章:

  • 自动粘贴神器,数据复制粘贴快速处理记事本
  • 计算机网络基础知识|网络安全基础知识
  • Maven入门到实践:从安装到项目构建与IDEA集成
  • 力扣71~75题
  • 设计循环双端队列
  • 深度学习——循环神经网络RNN知识点小结(全)
  • 数据结构 ——— C语言实现链式队列
  • 第五十四章 安全元素的详细信息 - DerivedKeyToken 详情
  • nginx负载均衡机制实现用户无感更新服务
  • 郑州市风景园林专项设计资质人员设置类别
  • 【蓝队技能】【Python规则开发】文件分析微步在线推送文件变化监控流量分析
  • 用Python实现批量解压所有ZIP文件
  • 债券的基础知识(一)
  • L1.【Leetcode笔记】删除有序数组中重复项
  • 从React Hooks看React的本质
  • mongoDB(初识(一)基本概念 ACID、 CAP、 BASE)
  • ECharts饼图-饼图34,附视频讲解与代码下载
  • C语言中#error的作用
  • STM32应用详解(7)USART接收数据的程序(查询方式)
  • 【力扣刷题实战】设计循环队列
  • 工作繁忙的同时,如何兼顾到CSDN的持续分享呢
  • Python中tkinter使用详解
  • Lucas带你机器学习实战——KNN预测未来的爆品
  • 递归算法之组合生成(Combinations)详细解读
  • 事务挂起的原因分析
  • css动画烟花秀__烟花效果