RT-Thread 中 minIni 组件包无法添加的解决方法

事件

  • 今天在 Env 下添加 minIni 包的时候出现了无法将其添加到工程的情况。借此机会来记录一下如何解决该类问题。

  • 如果你想快速排错可以直接到 【2、minIni 组件出现的问题】查看。

一、准备工作

1、配置 Env 自动更新工程

  • 在 Env 中输入 menuconfig -s 回车

image-20210711193751833

  • 回车,进入正式配置

image-20210711193549147

  • 这是我的配置,仅供参考

image-20210711193611559

以上这些配置并不是必须的, 如果你喜欢手动更新的话。

二、开始操作

1、了解一下组件配置的相关文件结构

image-20210711200538752
如上图,

[2]处 Hardware Drivers Config 相关的配置文件 Kconfig 放在工程目录下Board文件夹下。

这里重点说一下 [1]处 RT-Thread online packages 它的组件配置相关文件放在 Env 工具的相关目录下。 如 minIni 文件的相关配置放在目录为:

D:\env\packages\packages\system\minIni\

image-20210711201343903

其中,package.json 文件描述了该组件的仓库地址,组件版本,组件描述,作者等信息。

Kconfig的作用是用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。

2、minIni 组件出现的问题

在 minIni 的源码文件夹下找到 SConscript 文件, 该文件是 Scons 的脚本文件, 它描述了该组件的文件组成。有点类似 Makefile 的作用,但又不同。不过这个不重要。

打开 SConscript 文件,如下图:

image-20210711202757749

重点看一下 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 文件,

image-20210711203624468

显然是该配置文件中没有配置 RT_USING_INI 的原因。添加 select RT_USING_INI 是必须的。

然后发现源码中是有例程相关的加入可选项的, 然后我们顺便添加一个例程的勾选选项。最终的效果如下:

image-20210711203928181

至此,minIni 的组件添加问题我们已经修改完毕。

3、小技巧

当我们手动修改完 Kconfig 文件后, 我们可以在 Env 中输入 menuconfig 然后在 ESC 退出,这样 Env 就会帮我们自己更新工程了。前提是你已经配置了 Env 的自动更新工程。

image-20210711204541906

三、一些其他问题

image-20210711204700885

按照上述方法,我们完成了 minIni 组件的添加。但是截止当前 "version": "v1.2.0", 好像例程部分仍然有问题。所以,Env 配置中可以去掉例程的勾选。

具体为, 一些语法问题,和一些宏找不到。不过这并不影响我们使用。

image-20210711205013689

总结

  • RT-Thread 是我非常喜欢的一款RTOS,它借鉴了一些Linux的做法,也有很多创新的地方。我尤其对它的组件包独有情钟。但是,如果你想玩转它,而不是被它折磨。那么你需要静下心来对它做一个全面的了解。比如 Env,Scons工具的使用等。其实这些也是Linux上在用的东西。

  • 当你搜到这篇博文的时候,或许是你遇到了这方面的问题。更详细的学习可以参考RT-Thread工具手册

posted @ 2021-07-11 21:01  svchao  阅读(247)  评论(0)    收藏  举报