RT-Thread 中 minIni 组件包无法添加的解决方法
事件
今天在 Env 下添加 minIni 包的时候出现了无法将其添加到工程的情况。借此机会来记录一下如何解决该类问题。
如果你想快速排错可以直接到 【2、minIni 组件出现的问题】查看。
一、准备工作
1、配置 Env 自动更新工程
在 Env 中输入 menuconfig -s 回车

回车,进入正式配置

这是我的配置,仅供参考

以上这些配置并不是必须的, 如果你喜欢手动更新的话。
二、开始操作
1、了解一下组件配置的相关文件结构

如上图,
[2]处 Hardware Drivers Config 相关的配置文件 Kconfig 放在工程目录下Board文件夹下。
这里重点说一下 [1]处 RT-Thread online packages 它的组件配置相关文件放在 Env 工具的相关目录下。 如 minIni 文件的相关配置放在目录为:
D:\env\packages\packages\system\minIni\

其中,package.json 文件描述了该组件的仓库地址,组件版本,组件描述,作者等信息。
Kconfig的作用是用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。
2、minIni 组件出现的问题
在 minIni 的源码文件夹下找到 SConscript 文件, 该文件是 Scons 的脚本文件, 它描述了该组件的文件组成。有点类似 Makefile 的作用,但又不同。不过这个不重要。
打开 SConscript 文件,如下图:

重点看一下 depend 参数,这里的意思是说,minIni 组件的添加依赖 RT_USING_INI 和 RT_USING_DFS 两个宏。RT_USING_DFS 宏已经在 DFS 组件中打开,RT_USING_INI 呢?
看到这里似乎我们找到了问题,就是 RT_USING_INI 没有配置(定义)。
再次打开 D:\env\packages\packages\system\minIni 目录下的 Kconfig 文件,

显然是该配置文件中没有配置 RT_USING_INI 的原因。添加 select RT_USING_INI 是必须的。
然后发现源码中是有例程相关的加入可选项的, 然后我们顺便添加一个例程的勾选选项。最终的效果如下:

至此,minIni 的组件添加问题我们已经修改完毕。
3、小技巧
当我们手动修改完 Kconfig 文件后, 我们可以在 Env 中输入 menuconfig 然后在 ESC 退出,这样 Env 就会帮我们自己更新工程了。前提是你已经配置了 Env 的自动更新工程。

三、一些其他问题

按照上述方法,我们完成了 minIni 组件的添加。但是截止当前 "version": "v1.2.0", 好像例程部分仍然有问题。所以,Env 配置中可以去掉例程的勾选。
具体为, 一些语法问题,和一些宏找不到。不过这并不影响我们使用。

总结
RT-Thread 是我非常喜欢的一款RTOS,它借鉴了一些Linux的做法,也有很多创新的地方。我尤其对它的组件包独有情钟。但是,如果你想玩转它,而不是被它折磨。那么你需要静下心来对它做一个全面的了解。比如 Env,Scons工具的使用等。其实这些也是Linux上在用的东西。
当你搜到这篇博文的时候,或许是你遇到了这方面的问题。更详细的学习可以参考RT-Thread工具手册。
RT-Thread 中 minIni 组件包无法添加的解决方法的更多相关文章
- 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法
如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...
- TCP的粘包、拆包及解决方法
TCP粘包,拆包及解决方法 粘包拆包问题是处于网络比较底层的问题,在数据链路层.网络层以及传输层都有可能发生.我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因 ...
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
- jquery ui中 accordion的问题及我的解决方法
原文:jquery ui中 accordion的问题及我的解决方法 jquery有一套所谓的ui组件,很不错的.如果有兴趣的朋友,可以参考http://jqueryui.com/ 但其中的accord ...
- C# 中DataGridView和ListView闪烁问题的解决方法
C# 中DataGridView和ListView闪烁问题的解决方法 方法一首先定义类,将此类放在datagridview或ListView所在的窗体类外面,然后代码如下, <span styl ...
- redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法
项目中出现如下错误,记录下解决方法: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exce ...
- 关于CUDA C 项目中“ error C2059: 语法错误:“<” ”问题的解决方法
该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译, ...
- Ubuntu中找不到pip3命令的解决方法
Ubuntu中找不到pip3命令的解决方法 Ubuntu 有 python2 和 python3. 今天使用 Ubuntu 中的 python3 时,想要安装第三方库却发现 pip 指向的是 pyth ...
- WAMP中phpMyAdmin登陆不了问题的解决方法
WAMP中phpMyAdmin登陆不了问题的解决方法
- 问题-[Access]“无法打开工作组信息文件中的表 'MSysAccounts'”的问题的解决方法
问题现象:ado.net oledb方式访问Access数据库文件时报错“无法打开工作组信息文件中的表 'MSysAccounts'”的问题的解决方法 问题处理:1.数据库名称不能命名为:Syste ...
随机推荐
- MyBatis使用注解开发(及Sqlsession连接器的本质)
使用注解开发 底层实现机制是反射和,动态代码.反射可以获得这个类的方法属性还可以创建对象,执行方法. 面向接口编程 之前学过,面向对象编程,也学习过接口.但是真正的开发中,很多时候我们会选择面向接口编 ...
- Ubuntu 用户的切换
1.普通用户转成root su root 输入密码 确认密码(此时root账户已经建立) 2. root 转回 普通用户 su 用户名
- NAT与NAT实验
1.NAT与NAT实验 NAT(网络地址翻译) 一个数据包目的ip或者源ip为私网地址, 运营商的设备无法转发数据. 实际场景问题 如下图 201.0.0.1 公网地址? 买的 运营商给你的19 ...
- SQL-去除最大值与最小值求均值的问题
背景 今天有同事问我一道关于数据库SQL的面试题,我刚开始随便给了一个思路,后来思索发现这个思路有漏洞,于是总结下来,仅供参考. 问题: 薪水表中是员工薪水的基本信息,包括雇员编号,和薪水,查询除去最 ...
- Hugging Face 的文本生成和大语言模型的开源生态
[更新于 2023 年 7 月 23 日: 添加 Llama 2.] 文本生成和对话技术已经出现多年了.早期的挑战在于通过设置参数和分辨偏差,同时控制好文本忠实性和多样性.更忠实的输出一般更缺少创造性 ...
- 浏览器Xbox 云游戏教程
我这里使用的是韩国的地方因为延迟和网速会比较快 Xbox 云游戏韩国网站 Xbox.com에서 Xbox Cloud Gaming(베타) 首先插件商店下载一个油猴插件 在系统语言和时区改为韩国 在 ...
- Kioptrix Level 1
Kioptrix这个系列靶机默认是桥接模式,如果我们kali使用NAT是扫描不到靶机的,通过VM的靶机网络设置也不能更改成功. 解决方式:每次下载好靶机先不导入VM,如果已经导入,需要"移除 ...
- WEB组态编辑器插件(BY组态)介绍
BY组态是一款非常优秀的纯前端的[web组态插件工具],采用标准HTML5技术,基于B/S架构进行开发,支持WEB端呈现,支持在浏览器端完成便捷的人机交互,简单的拖拽即可完成可视化页面的设计.可无缝嵌 ...
- 万字长文教你实现华为云IoT+OpenHarmony智能家居开发
本文分享自华为云社区<华为云IoT+OpenHarmony的智能家居开发>,作者:袁睿. 一.选题说明 1. 选题为基于OpenHarmony的智能家居,应用场景为户用,受益人群为住户. ...
- Prometheus + Grafana 搭建监控系统
前言 本文主要记录下如何使用 Prometheus + Grafana 搭建对各种服务的性能监控,涵盖对 Prometheus.Grafana 的基本介绍,以及如何使用二者进行对 Linux.MySQ ...