运行基于终端的menuconfig界面

#进入zephyr的根目录下
west build -t menuconfig

或者

#进入zephyr根目录下生成的build目录下
ninja menuconfig

注意前提是一定要有应用程序编译了,才能打开界面

运行图形用户界面guiconfig

#进入zephyr的根目录下
west build -t guiconfig

或者

#进入zephyr根目录下生成的build目录下
ninja guiconfig

1、source

用于调用其它路径下的Kconfig

source "xxx/Kconfig"eg: source "arch/Kconfig" /*也就是引用arch文件下的Kconfig*/source "boards/Kconfig"source "soc/Kconfig"source "arch/Kconfig"source "kernel/Kconfig"source "dts/Kconfig"source "drivers/Kconfig"source "lib/Kconfig"source "subsys/Kconfig"

2、menu和endmenu

menu用于生成菜单,endmenu菜单结束标志,两者一般成对出现;

例如:

menu "Compatibility"config COMPAT_INCLUDESbool "Suppress warnings when using header shims"default yhelpSuppress any warnings from the pre-processor when includingdeprecated header files.endmenu

menu "Modules"source "modules/Kconfig"endmenu

3、config

比如在modules/Kconfig.civetweb中:

config CIVETWEBbool "Civetweb Support" /*bool类型*/# The CONFIG_NET_TCP_ISN_RFC6528 option would pull in mbedtls,# and there are include file issues if CONFIG_POSIX_API is set.# Because Civetweb sets the POSIX API option in the samples,# make sure that we do not try to use Civetweb if the TCP ISN# option is set.depends on !NET_TCP_ISN_RFC6528helpThis option enables the civetweb HTTP API.

在modules/Kconfig.telink

config HAS_TELINK_DRIVERSbool "Telink Drivers"helpThis option enables Telink Drivers APIs.

在menuconfig界面中可以看到

[]表示bool,通过键入Y/N选择使能/禁止(通过Enter也可以选择或取消)

类型可以是bool、 tristate、 string、 hex 和 int

常见的是bool、string、tristate

bool类型有两种值:y和n,分别表示使能这个配置项,n表示禁止使用这个配置项;

string类型为字符串;

tristate类型有三种:y、m、n,其中y、n与bool含义相同,m表示将这个配置项编译为模块。

help 表示帮助信息,当我们按“?”时会弹出相关解释。以modules/Kconfig.civetweb为例:

4、depends on与select

depends on表示一种依赖关系,比如在顶层Kconfig.zephyr中:

config CUSTOM_LINKER_SCRIPTstring "Path to custom linker script"depends on HAVE_CUSTOM_LINKER_SCRIPThelp

表示CUSTOM_LINKER_SCRIPT依赖于HAVE_CUSTOM_LINKER_SCRIPT,只有HAVE_CUSTOM_LINKER_SCRIPT被选中,CUSTOM_LINKER_SCRIPT才能被选中。

select表示选择,比如:

config BOOTLOADER_BOSSAbool "BOSSA bootloader support"select USE_DT_CODE_PARTITION

表示选中BOOTLOADER_BOSSA时,也会选中USE_DT_CODE_PARTITION。

5、choice与endchoice

将多个类似的配置项组合在一起,然后用户可以在menuconfig界面中进行选择:

在zephyr顶层的Kconfig.zephyr中

menu "Build and Link Features"menu "Linker Options"choiceprompt "Linker Orphan Section Handling"default LINKER_ORPHAN_SECTION_WARNconfig LINKER_ORPHAN_SECTION_PLACEbool "Place"config LINKER_ORPHAN_SECTION_WARNbool "Warn"config LINKER_ORPHAN_SECTION_ERRORbool "Error"endchoice

6、comment

menuconfig界面注释,比如zephyr-zephyr-v3.0.0\drivers\serial\Kconfig

comment "Capabilities"
...
config SERIAL_INIT_PRIORITYint "Serial init priority"default KERNEL_INIT_PRIORITY_DEVICE
config UART_USE_RUNTIME_CONFIGUREbool "Enable runtime configuration for UART controllers
config UART_ASYNC_APIbool "Enable asynchronous UART API"depends on SERIAL_SUPPORT_ASYNC
...
comment "Serial Drivers"
...
source "drivers/serial/Kconfig.ns16550"
...
source "drivers/serial/Kconfig.it8xxx2"

Kconfig语法学习相关推荐

  1. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  2. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  3. ElasticSearch聚合语法学习(bucket,metric,hitogram,date hitogram)

    ElasticSearch聚合语法学习 目录 bucket与metric两个核心概念 插入数据 统计哪种颜色电视销量最高 统计每种颜色电视平均价格 bucket嵌套实现颜色+品牌的多层下钻 统计每种颜 ...

  4. ElasticSearch搜索语法学习(term,filter,bool,terms,range)

    ES搜索语法学习 目录 原始数据 term,filter使用 bool组合多个filter条件来搜索数据 terms搜索多个值以及多值搜索结果优化 基于range filter来进行范围过滤 手动控制 ...

  5. android语法帮助手册_新 App 「捧读:日语语法学习与分析」的开发幕后思考

    新产品发布后,写一篇幕后思考已经是固定环节了. 为什么开发这款软件? 在开发完日语假名学习的 App 「50 音起源」 之后,便在考虑如何做一款语法相关的产品,市面上虽然有少许产品可供参考,但我觉得这 ...

  6. 【C++学习之路】第二章——C++基础语法学习(1)之黑客攻击系统

    2 C++基础语法学习(1)之黑客攻击系统 遵循原则:从实战中学习知识 法律声明:本系统仅能攻击自己搭建的网站,作为学习使用,不会触犯法律 time:2020.01.20 author:姜海天 IDE ...

  7. 正则不能输入特殊字符_正则表达式语法学习和在线练习

    标题: 正则表达式语法学习和在线练习作者: 梦幻之心星 sky-seeker@qq.com标签: [#正则表达式,#语法,#学习,#练习]目录: [语法]日期: 2021-01-26 背景说明 正则表 ...

  8. python语法学习—实现猜拳游戏

    python基础语法学习,通过实现猜拳游戏,来对python语法的学习. # python语法实现 猜拳游戏 电脑随机出拳进行比较,用户自己输入要出的拳,用户赢了就退出游戏 # 主要用到 python ...

  9. MongoDB语法学习

    MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...

  10. python继承语法_python语法学习面向对象之继承

    python语法学习面向对象之继承 只要涉及到面向对象,"类"是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念 ...

最新文章

  1. 牛客网递归错题:递归、欧几里得求最大公约数的时间复杂度、线性递归与尾递归实例区别
  2. 肝货满满!CV学习笔记:入坑必备
  3. 第一章 Spark系统概述
  4. 优化方案电子版_关于小区分支道路整修设计方案的讨论稿(No.2020121)
  5. 攻防世界reverse新手练习
  6. 链接数据库超级简单的工具类C3P0谁用谁知道
  7. Teigha 4.0 Net 开发记录
  8. oracle 英文 简历,免费英文简历范文模板
  9. 计算机显示去掉拼音分类,win8系统取消电脑文件显示以字母数字拼音分组的操作办法...
  10. 如果你的 pip 命令不能用,你可以这样解决
  11. 【C语言程序设计】基本算术运算
  12. 图表示学习之时序的事件和节点动态
  13. oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
  14. 春节高并发抢红包的技术升华综合实战(Node.js)
  15. 【HDU】5761 Rower Bo
  16. java游戏开发杂谈 - 游戏编程浅析
  17. 2015西交C语言在线作业,西交19秋《程序设计基础(高起专)》在线作业
  18. 宜信敏捷数据中台建设实践
  19. python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片
  20. 【调剂】西北农林科技大学2023年硕士研究生调剂信息

热门文章

  1. 《Redis视频教程》(p9)
  2. Power BI 与企业数据安全
  3. JavaScript封装对象和类
  4. 第三周作业-实现随机点名的签到程序
  5. 最基本的25道深度学习面试问题和答案
  6. winhex使用教程_[攻略] 无限视距——上帝视角教程
  7. 人生时间计算器_真实年龄计算器app下载-抖音珍稀时间年龄计算器下载v1.5 安卓版-西西软件下载...
  8. 【CSRF-01】跨站请求伪造漏洞基础原理及攻防
  9. ev3编程变量模块_【EV3基础编程 第八课】升阶学习难度,一对一个性化控制程序,变量来了...
  10. 破解版抓包工具Charles教程(资源分享)