事件

  • 今天在 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 组件包无法添加的解决方法的更多相关文章

  1. 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法

    如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...

  2. TCP的粘包、拆包及解决方法

    TCP粘包,拆包及解决方法 粘包拆包问题是处于网络比较底层的问题,在数据链路层.网络层以及传输层都有可能发生.我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因 ...

  3. PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等

    页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...

  4. jquery ui中 accordion的问题及我的解决方法

    原文:jquery ui中 accordion的问题及我的解决方法 jquery有一套所谓的ui组件,很不错的.如果有兴趣的朋友,可以参考http://jqueryui.com/ 但其中的accord ...

  5. C# 中DataGridView和ListView闪烁问题的解决方法

    C# 中DataGridView和ListView闪烁问题的解决方法 方法一首先定义类,将此类放在datagridview或ListView所在的窗体类外面,然后代码如下, <span styl ...

  6. redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法

      项目中出现如下错误,记录下解决方法: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exce ...

  7. 关于CUDA C 项目中“ error C2059: 语法错误:“<” ”问题的解决方法

    该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译, ...

  8. Ubuntu中找不到pip3命令的解决方法

    Ubuntu中找不到pip3命令的解决方法 Ubuntu 有 python2 和 python3. 今天使用 Ubuntu 中的 python3 时,想要安装第三方库却发现 pip 指向的是 pyth ...

  9. WAMP中phpMyAdmin登陆不了问题的解决方法

    WAMP中phpMyAdmin登陆不了问题的解决方法

  10. 问题-[Access]“无法打开工作组信息文件中的表 'MSysAccounts'”的问题的解决方法

    问题现象:ado.net oledb方式访问Access数据库文件时报错“无法打开工作组信息文件中的表 'MSysAccounts'”的问题的解决方法  问题处理:1.数据库名称不能命名为:Syste ...

随机推荐

  1. MyBatis使用注解开发(及Sqlsession连接器的本质)

    使用注解开发 底层实现机制是反射和,动态代码.反射可以获得这个类的方法属性还可以创建对象,执行方法. 面向接口编程 之前学过,面向对象编程,也学习过接口.但是真正的开发中,很多时候我们会选择面向接口编 ...

  2. Ubuntu 用户的切换

    1.普通用户转成root su root 输入密码 确认密码(此时root账户已经建立) 2. root 转回 普通用户 su  用户名

  3. NAT与NAT实验

    1.NAT与NAT实验 NAT(网络地址翻译) 一个数据包目的ip或者源ip为私网地址, 运营商的设备无法转发数据. 实际场景问题 如下图 201.0.0.1 公网地址?   买的 运营商给你的​19 ...

  4. SQL-去除最大值与最小值求均值的问题

    背景 今天有同事问我一道关于数据库SQL的面试题,我刚开始随便给了一个思路,后来思索发现这个思路有漏洞,于是总结下来,仅供参考. 问题: 薪水表中是员工薪水的基本信息,包括雇员编号,和薪水,查询除去最 ...

  5. Hugging Face 的文本生成和大语言模型的开源生态

    [更新于 2023 年 7 月 23 日: 添加 Llama 2.] 文本生成和对话技术已经出现多年了.早期的挑战在于通过设置参数和分辨偏差,同时控制好文本忠实性和多样性.更忠实的输出一般更缺少创造性 ...

  6. 浏览器Xbox 云游戏教程

    我这里使用的是韩国的地方因为延迟和网速会比较快 Xbox 云游戏韩国网站 Xbox.com에서 Xbox Cloud Gaming(베타) 首先插件商店下载一个油猴插件 在系统语言和时区改为韩国 在  ...

  7. Kioptrix Level 1

    Kioptrix这个系列靶机默认是桥接模式,如果我们kali使用NAT是扫描不到靶机的,通过VM的靶机网络设置也不能更改成功. 解决方式:每次下载好靶机先不导入VM,如果已经导入,需要"移除 ...

  8. WEB组态编辑器插件(BY组态)介绍

    BY组态是一款非常优秀的纯前端的[web组态插件工具],采用标准HTML5技术,基于B/S架构进行开发,支持WEB端呈现,支持在浏览器端完成便捷的人机交互,简单的拖拽即可完成可视化页面的设计.可无缝嵌 ...

  9. 万字长文教你实现华为云IoT+OpenHarmony智能家居开发

    本文分享自华为云社区<华为云IoT+OpenHarmony的智能家居开发>,作者:袁睿. 一.选题说明 1. 选题为基于OpenHarmony的智能家居,应用场景为户用,受益人群为住户. ...

  10. Prometheus + Grafana 搭建监控系统

    前言 本文主要记录下如何使用 Prometheus + Grafana 搭建对各种服务的性能监控,涵盖对 Prometheus.Grafana 的基本介绍,以及如何使用二者进行对 Linux.MySQ ...