前言
大家有沒有遇到過這樣的問題:明明已經(jīng)啟用了某個功能,卻因為編譯報錯不得不進(jìn)入 menuconfig 去啟用其依賴的功能;或者是為了啟用某個功能,需要在 menuconfig 中四處尋找相關(guān)選項,甚至有時不知道該如何在特定板子上正確配置這些功能。
于是,結(jié)合 scons 的 --attach 功能應(yīng)運而生。通過使用 scons --attach 命令,可以快速加載前人已經(jīng)配置好的功能(PS:由于這些配置已經(jīng)通過 CI 檢查,確保不會出現(xiàn)編譯錯誤)。
實際操作
這里以星火一號開發(fā)板為例子
首先是查看當(dāng)前bsp支持所有的attachconfig
scons --attach=?

比如說我想快速打開rw007模塊的配置
那么在終端里就可以輸入
scons --attach=peripheral.rw007

這樣rw007就打開了,然后就可以用scons -j4進(jìn)行編譯
如果還想打開其他功能也可以重復(fù)上述操作
最后是恢復(fù)命令
scons --attach=default

首次使用 scons --attach=peripheral.rw007命令開啟功能時,會自動備份當(dāng)前的 .config 和 rtconfig 文件。之后,如果需要恢復(fù),系統(tǒng)會將備份的 .config 和 rtconfig 文件恢復(fù)為未使用--attach 命令之前的狀態(tài)。
如何編寫attachconfig
首先在剛拉下來的bsp里用menuconfig配置好選項
然后按下d彈出最小配置保存頁面,再次按下回車即可

接下來在bsp目錄下就會看到一個叫defconfig的文件

其中的內(nèi)容就是剛剛用menuconfig打開了的設(shè)置
比如說:
上圖的CONFIG_RT_USING_NANO=y就是我剛打開了的nano配置
然后找到當(dāng)前bsp中.ci\attachconfig下面的ci.attachconfig.yml

比如說我想配置nano的attach
那么按照這個格式添加到attachconfig文件中
nano: kconfig: - CONFIG_RT_USING_NANO=y

其中的<<: *scons 是yaml語法
用于繼承另一個屬性的內(nèi)容
這里完整的語句是這樣
scons.args: &scons scons_arg: - '--strict'nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y
主要用于ci的時候開啟嚴(yán)格編譯,這里可以先不管
具體關(guān)于attachconfig可以參考以下帖子:(可在以下網(wǎng)站https://club.rt-thread.org/index.html搜索下列對應(yīng)名稱瀏覽相應(yīng)文章)
RT-Thread-還在擔(dān)心bsp不好維護(hù)嗎?快使用yml管理主線bspRT-Thread問答社區(qū) - RT-Thread
RT-Thread-【bsp】如何添加.ci,attach文件完善bsp編譯RT-Thread問答社區(qū) - RT-Thread
RT-Thread-【1024】【ci】【github】【bsp】RT-THREAD中的attach文件使用(開啟對應(yīng)配置的CI檢查)RT-Thread問答社區(qū) - RT-Thread
結(jié)語
感覺attachconfig還有很大的潛力,可以讓 menuconfig 保留最基礎(chǔ)的配置,而將更復(fù)雜的功能配置放到 attachconfig 中。這樣不僅能夠確保剛拉下來的 BSP 是一個最小系統(tǒng),同時也能保留 menuconfig 的靈活性,使得系統(tǒng)配置更加模塊化和易于擴(kuò)展。
輕度開發(fā)用attachconfig,深度開發(fā)用menuconfig從零配置
后續(xù)感覺可以出個圖形化界面,根據(jù)功能類別分個類,然后每個attach是通過打勾的形式去開啟
由于這個功能剛剛推出,大部分 BSP 中的 attachconfig 還不是開箱即用的,甚至有的 BSP 還沒有 attachconfig 。因此,仍然需要大家共同努力,進(jìn)一步完善和優(yōu)化它,以確保其在各個項目中的兼容性和可用性。
該功能僅支持ENV下的RT-Thread
————————————————
版權(quán)聲明:本文為RT-Thread論壇用戶「alight」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5389瀏覽量
100896 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1348瀏覽量
41368 -
scons
+關(guān)注
關(guān)注
0文章
2瀏覽量
997
發(fā)布評論請先 登錄
相關(guān)推薦
【RT-Thread學(xué)習(xí)筆記】使用scons命令生成靜態(tài)庫

基于RT-Thread的RoboMaster電控框架設(shè)計
使用RT-Thread的scons構(gòu)建系統(tǒng)來編譯ESP32C3固件?
如何在RT-Thread中用好SCons工具
RT-Thread系統(tǒng)中的Scons構(gòu)建工具資料推薦
介紹一個RT-Thread進(jìn)行持續(xù)集成的容器化Linux環(huán)境
RT-Thread Linux CI 環(huán)境使用教程
RT-Thread SCons編譯不穩(wěn)定問題debug總結(jié)
如何在自己軟件包上添加CI集成工具
如何在RT-Thread中用好SCons工具
RT-Thread BSP qemu-virt64-aarch64的編譯環(huán)境搭建步驟
RT-Thread Smart已正式上線
RT-Thread 4.1.0的CMake構(gòu)建教程
RT-Thread全球技術(shù)大會:關(guān)于SCons構(gòu)建引擎的主要部分介紹

評論