ESP-IDF Kconfig文件配置

IDF开发环境的工程目录下,有一个sdkconfig文件,这个文件中包含了一些预设的参数,可以通过menuconfig进行可视化调节参数,十分方便。但是如果我们要修改这个文件,会发现编译的时候,我们修改的文件会被编译器改写,因此,下面就教大家如何修改Kconfig文件。

1.建立Kconfig.projbuild文件

在工程的main路径中建立Kconfig.projbuild文本文件

2.改写Kconfig文件

这里是Kconfig文件格式的介绍

下面是一个I2C自定义组件里的例子,在Kconfig中增加关于I2C总线SCL引脚的定义:

menu "Example Configuration"menu "I2C Master"​    config I2C_MASTER_SCL​      int "SCL GPIO Num"​      default 6 if IDF_TARGET_ESP32C3​      default 19 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3​      help​        GPIO number for I2C Master clock line.

menu "I2C Master"是生成菜单的名字,内部包含N个关键字或者配置选项,可以进行嵌套,时间效果如下图:

config是关键字,表示一组配置选项的开始,内部包含N个配置选项

int "SCL GPIO Num"这个为所配置选项的名称,前面跟该变量的数据类型。

default 跟该条目的初始变量值,可用if进行预值判断。

help就是在UI界面中,点击问号,会出现的文本,给用户做配置选项的说明。

实际的最后配置界面中,就会出现这样子的目录结构:

具体的Kconfig语言还有很多其他的语法,它使我们可以使用menuconfig时能快速配置各个选项,十分方便,其他的写法可以举一反三。

修改完Kconfig,projbuild文件后,点击保存,进入下一步。

3.清空工程(Full Clean)并编译

猴急的小伙伴修改完肯定迫不及待地点了编译,这时候你会发现,你的Kconfig文件还是没有任何更改,因为编译器二次编译的检索文件更新,检测不到我们新增的Kconfig.projbuild,因此我们需要点击VSCODE下方的垃圾桶图标(也可用idf.py的clean命令):

然后再点击右侧的编译,等待漫长的编译过程后,再点击下方的menuconfig的齿轮图标,可以看到成果了:

4.CONFIG变量使用

配置完可视化界面修改变量后,我们要怎么使用这个变量呢?

这个时候,这个CONFIG变量已经转换成了常量,只能读取,不能进行修改,因此我们可以很方便地进行操作。

首先在我们之前定义的CONFIG变量名前加上前缀CONFIG_,这个是编译器帮我们加的,具体的变量可以在sdkconfig文件中找到:

可以发现我们使用的是IDF_TARGET_ESP32平台,因此编译器将此数值定义为了19。

我们可以使用#define关键字,将改预定义变量,与实际程序中的接口变量进行替换:

当然也可以直接将该常量赋值给其他的变量:

这样子就完成了,本人才疏学浅,若文中有误请各位大佬不吝赐教!

ESP-IDF Kconfig文件配置相关推荐

  1. Linux内核配置——Kconfig文件

    1.1.Kconfig文件内容 menuconfig NETDEVICESdefault y if UMLdepends on NETbool "Network device support ...

  2. linux 内核编译 Kconfig文件详解

    Kconfig的格式 下面截取/drivers/net下的Kconfig文件中的部分内容, # Network device configuration menuconfig NETDEVICESde ...

  3. Kconfig文件详解

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 1.Kconfig的格式 (1)Kconfig按照一定的格式来书写,menuconfig程序可以识别这种格式,然后从中提取出有效信息组成me ...

  4. Linux源码Kconfig文件语法分析

    Kconfig是我们进行内核配置的关键文件,用于生成menuconfig的界面并生成最终确定编译选项的.config文件.关于Kconfig文件的编写规则,在Documentation/kbuild/ ...

  5. ESP 常用的低功耗配置选项解析

    此篇博客介绍 ESP 常用的低功耗配置选项. 1.常用功耗优化配置选项 1.1.动态调频 CPU 工作的频率越高,功耗消耗也越大.通过 DFS(dynamic frequency scaling,动态 ...

  6. SpringSecurity使用 配置文件 和wen.xml 文件配置

    目录 1.web.xml 文件配置 2.spring-security  普通 为使用自己创建的认证类 1.web.xml 文件配置 !-- 配置SpringSecurity的拦截器 -->&l ...

  7. Web.Config文件配置之连接默认错误页

    在一些网站中,当网络地址发生错误时,通常会自动跳转到一个页面,并在该页面显示错误信息,此功能叶可以通过配置Web.Config文件配置实现.例如访问者在访问网站时出现错误,程序将跳转到默认页面erro ...

  8. mysql 参数sql文件_为MySQL的source命令导入SQL文件配置参数

    为MySQL的source命令导入SQL文件配置参数 执行 mysql -uroot -p 输入密码后进入 MySQL 命令提示符 set charset utf8; source /root/xxx ...

  9. Tomcat下conf下server.xml的文件配置信息

    Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server. ...

最新文章

  1. python程序设计搜题软件_智慧职教APPPython程序设计题库及答案
  2. 每个程序员都应该了解的内存知识(3)-虚拟内存
  3. java求面积Shape类_Shape-2,形状类,正方形类,长方形类,圆类,求周长面积
  4. python主进程 子进程_pool主进程捕获子进程异常
  5. 工作日志之个人统计篇
  6. python3 创建简单的游戏窗口,并有单独的配置文件
  7. 【转】译文:.net 程序员易犯的7个通病
  8. LeetCode刷题实战(13):Roman to Integer
  9. 爬虫那些事儿-- 简介
  10. jquery 验证小数点后几位_(亲测可用)input只能输入数字或小数点后几位
  11. 计算机网络提高网络安全意识,提升网络安全意识 共创清朗网络环境
  12. junit进行单元测试_通过JUnit规则轻松进行AppEngine单元测试
  13. TCP和UDP Socket
  14. 用C语言进行BMP文件的读写
  15. LINUX下载编译tiff
  16. 最全电商分类信息(08)
  17. 杨建:网站加速--实例分析篇
  18. Kubernetes容器平台架构之道
  19. 简单css实现表格头部固定
  20. nginx 做均衡负载

热门文章

  1. RF发射器和接收器电路
  2. 16位增强色RGB转换为24/32位真色彩
  3. HEVC Study Three(基于HM14.0平台)--GOP研究之大揭秘
  4. [职场全攻略] 【职场攻略】看透“潜”职场规则
  5. STL 标准模板库详细
  6. NPOI 设置EXCEL单元格格式为 数值
  7. 福大软工1816 - 404 Note Found选题报告
  8. Playwirght深度入门
  9. MTK平台的LCM驱动移植
  10. 每月播报:2008年10月 动态语言