1. 程式人生 > 其它 >RT-Thread 中 minIni 元件包無法新增的解決方法

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工具手冊