Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Kconfig
Menuconfig
RT-Thread 入门学习笔记 - menuconfig Kconfig的使用
发布于 2020-12-22 09:06:01 浏览:3907
订阅该版
[tocm] [RT-Thread 入门学习笔记 - 目录](https://club.rt-thread.org/ask/article/3420.html) [RT-Thread 入门学习笔记 - menuconfig Kconfig的使用](https://club.rt-thread.org/ask/article/2427.html) [RT-Thread 入门学习笔记 - 熟悉动态内存申请与释放](https://club.rt-thread.org/ask/article/2552.html) [RT-Thread 入门学习笔记 - 查看线程栈的地址](https://club.rt-thread.org/ask/article/2554.html) [RT-Thread 入门学习笔记 - 解决RT_ASSERT失效的问题](https://club.rt-thread.org/ask/article/2559.html) [RT-Thread 入门学习笔记 - Keil MDK软件调试排查assert](https://club.rt-thread.org/ask/article/2562.html) [RT-Thread 入门学习笔记 - 熟悉全局中断的操作](https://club.rt-thread.org/ask/article/2569.html) ## 背景 * RT-Thread 的开发过程中,难免会遇到较多的【宏】配置。 * RT-Thread ENV工具,有menuconfig,类似于Linux开发的menuconfig,可以图形菜单配置【宏】。 * C、C++开发中,【宏】作用强大,给编程带来很大的便利。
## Kconfig * 【宏】的具体内容,一般为:字符串、数值。 * Kconfig,可以实现: ```c #define 一个宏 #define 宏并设置内容为字符串 #define 宏并设置内容为数值 多选一功能 ```
## 实践应用 * RT-Thread menuconfig,并保存退出后,会更新到rtconfig.h文件。 * 想设置【宏】,建议不要直接改rtconfig.h文件,否则,menuconfig后,又被重新更改了。 * rtconfig.h的【宏】,参与scons 工程构建,可以作为功能、文件的编译开关 * define 一个宏,bool类型 ```c config JSFW_USING_HWS_CMD bool "HWS : Enable hws test cmd" default n ``` 选择后效果: ```c #define JSFW_USING_HWS_CMD ``` * define 一个宏,并设置字符串 ```c config HWS_DEV_LCD_NAME string "the device name for lcd" default "lcd" ``` 选择后效果: ![2020-12-22_084244.png](/uploads/20201222/995a417062dd206169a0eac2c67081c2.png) ```c #define HWS_DEV_LCD_NAME "lcd" ``` * define 一个宏,并设置数值 ```c config HWS_KEY_PIN int "key pin number" default 18 ``` 选择后的效果 ![2020-12-22_084533.png](/uploads/20201222/fdcc89753e79a22f9933d9067733293e.png) ```c #define HWS_KEY_PIN 18 ``` * define一个多选一的宏 ```c choice prompt "active level" default HWS_VIBRATE_ACTIVE_HIGH help The vibrate active level. config HWS_VIBRATE_ACTIVE_HIGH bool "Active High" config HWS_VIBRATE_ACTIVE_LOW bool "Active Low" endchoice ``` 选择后的效果 ![2020-12-22_084608.png](/uploads/20201222/4b8284f82bf159ee4f76238e6b071172.png) ```c #define HWS_VIBRATE_ACTIVE_HIGH /* 注意这里是二选一,两个选项中,只有一个生效,这里选择的HIGH */ ``` # Kconfig 语法 * menuconfig HWS_USING_VIBRATE 效果: ![2020-12-22_085615.png](/uploads/20201222/1e328b02901177ac378dcbb2f02fb66e.png) * config HWS_KEY_DEBOUNCE_TIME 效果: ![2020-12-22_085735.png](/uploads/20201222/5adb12539373cd2791591833e44b424c.png) * Kconfig 中,可以使用 if endif ```c menuconfig HWS_USING_KEY bool "Enable key" default y if HWS_USING_KEY config HWS_KEY_PIN int "key pin number" default 18 config HWS_KEY_DEBOUNCE_TIME int "key debounce press time" default 20 config HWS_KEY_LONG_PRESS_TIME int "key long press time" default 1500 endif ``` 效果 ![2020-12-22_091423.png](/uploads/20201222/bce0a494b3475bf75ffa349ff5f6d141.png) ![2020-12-22_091319.png](/uploads/20201222/273375fb4a0a6769dd7ebb6ebc4797c9.png) ![2020-12-22_091349.png](/uploads/20201222/64b6e594aaba7f4b9cebb907b5c0cceb.png) * select RT_USING_DEVICE select 的作用,类似于选择(定义)了这个宏。用于依赖项的选择。如你使能某个功能,需要其他的功能开启后才可以使用,依赖其他的功能。
## 总结 * RT-Thread ENV 工具还是比较易用的。 * Kconfig,多用,这样,让设计更快捷
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
809
被采纳
175
关注TA
发私信
相关文章
1
Kconfig
2
菜鸟请教:ENV工具执行menuconfig命令,提示找不到kconfig文件
3
env menuconfig命令找不到Kconfig文件
4
请教SPI配置的问题
5
【求助】menuconfig无法打开Kconfig文件,
6
代码缩进问题自己审查的小方法。
7
打不开kconfig文件
8
关于config的使用疑问
9
拉取最新的源码后,自己做的BSP的Kconfig好像要手动改
10
刚移植就卡住了这个问题有人遇到吗
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部