0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

快使用yml看護主線bsp,讓bsp維護更簡單!

RT-Thread官方賬號 ? 2024-12-03 01:07 ? 次閱讀

問題

目前,RT-Thread倉庫中的CI(持續(xù)集成)系統(tǒng)對BSP(板級支持包)的檢查主要限于基本的GPIO和UART編譯配置。這種限制可能導(dǎo)致其他一些.c文件未被檢測到,從而可能會導(dǎo)致系統(tǒng)更新的時候出現(xiàn)編譯不過的情況。通過添加BSP的YML文件,我們可以讓CI系統(tǒng)編譯更多配置,確保更全面的代碼編譯覆蓋率。

引入yml有以下幾點優(yōu)勢:

可讀性和易用性:YML文件采用一種簡潔明了的格式,非常接近人類語言,便于閱讀和理解,即使是非技術(shù)人員也能很容易地進行編輯。

集中管理:使用YML文件可以將所有配置選項集中在一個地方,便于統(tǒng)一管理和修改,減少了分散管理帶來的復(fù)雜性和可能的錯誤。

版本控制友好:YML文件是文本文件,可以輕松集成到Git等版本控制系統(tǒng)中。這允許跟蹤配置變化歷史,并在需要時回滾到之前的版本。

擴展性強:YML文件結(jié)構(gòu)化良好,支持嵌套配置,適合用于描述復(fù)雜的配置場景,并且易于擴展以滿足新的需求。

自動化集成:YML配置文件可以方便地與CI/CD工具集成,實現(xiàn)自動化構(gòu)建、測試和部署流程,確保各環(huán)境下的一致性。

以下是yml文件的主要內(nèi)容如下所示。

e5ce0d04-b0cf-11ef-8084-92fbcf53809c.png

簡介

我們的RT-Thread倉庫中,BSP的CI檢測已經(jīng)涵蓋了大部分BSP,所有檢測配置都集中在.github/workflow/bsp_buildings.yml文件中。當(dāng)新的BSP提交時,只需在此YML文件中添加相關(guān)配置即可。這一過程已經(jīng)在300多個BSP中得到了應(yīng)用,每次Pull Request(PR)都會觸發(fā)相應(yīng)的檢測。

以下是bsp_buildings.yml中的部分內(nèi)容

e5e7f354-b0cf-11ef-8084-92fbcf53809c.png

之前論壇有文章介紹了如何使用attach文件來擴大CI檢測范圍,當(dāng)前的目標(biāo)基本一致,即希望CI能檢測更多配置,從而編譯更多的.c文件。此外,用戶還可以上傳自己的常用配置以便復(fù)用。RT-Thread論壇上搜索”attach”關(guān)鍵字大家可以查看文章。

attach: 大致上可以理解為不同的config配置,提供給CI,讓CI來進行編譯檢查。

yml文件

我們引入了一個包含所有配置的YML文件,方便統(tǒng)一管理和修改。這種方式與attach文件功能相同,采用YML文件更易管理和編輯,也可以采用之前attach文件方式,目前是兼容的。

參考yml文件

https://github.com/RT-Thread/rt-thread/blob/master/bsp/nrf5x/nrf5340/.ci/attachconfig/ci.attachconfig.yml

如何添加yml文件

第一步添加ci.attachconfig.yml

在你常用的bsp下面添加文件.ci/attachconfig/ci.attachconfig.yml

比如bsp/nrf5x/nrf5340/.ci/attachconfig/csi.attachconfig.yml

參考鏈接

https://github.com/RT-Thread/rt-thread/blob/master/bsp/nrf5x/nrf52840/.ci/attachconfig/ci.attachconfig.yml

注意這里的文件夾結(jié)構(gòu)和文件名不要改變。

第二步,添加對應(yīng)的CONFIG

在YML文件中填寫需要啟用的menuconfig選項。例如,為測試segger_rtt,可參考以下配置:

添加如下配置

e6055232-b0cf-11ef-8084-92fbcf53809c.png

這里的配置就是差異的配置,你可以在menuconfig之后,查看.config 的差異,找到這些修改之后的配置。這里注意只需要填寫主要的menuconfig的那個主配置,比如這里選中軟件包CONFIG_PKG_USING_SEGGER_RTT 其他默認配置不需要添加,只添加修改的配置即可。

如果想要disable某個配置也是添加CONFIG_RT_USING_SERIAL_V2=n即可。

第三步,提PR驗證

通常提交PR之后,會有一個對所有BSP的檢測

https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml

這里是所有bsp的檢測

e61da2d8-b0cf-11ef-8084-92fbcf53809c.png

找到你的BSP查看修改是否生效

e63b56ca-b0cf-11ef-8084-92fbcf53809c.png

這里可以看到編譯是否通過,如果不通過,需要修改對應(yīng)的.c文件

額外功能

添加scons 參數(shù)

另外如果需要加--strict 強制編譯的話。

直接添加一個參數(shù)scons_arg:

例如:

e6620414-b0cf-11ef-8084-92fbcf53809c.png

添加依賴

如果想要復(fù)用之前的config,可以參考下圖,添加depends 節(jié)點

e6786312-b0cf-11ef-8084-92fbcf53809c.png

添加引用

如果想復(fù)用之前的scons_arg: 參數(shù)也可以參考下面寫法:

e691aeee-b0cf-11ef-8084-92fbcf53809c.pnge6ab475a-b0cf-11ef-8084-92fbcf53809c.png

這個主體功能在https://github.com/RT-Thread/rt-thread/blob/master/tools/ci/bsp_buildings.py 中實現(xiàn)。

總結(jié)

通過引入YML配置文件,可以有效保存和管理常用的menuconfig配置。這種方法有助于在CI中維護穩(wěn)定的配置環(huán)境,使得常用的配置不會在編譯過程中出現(xiàn)問題。建議在添加YML文件時遵循以下規(guī)則:

采用單獨的yml文件放所有的配置,

每個配置名稱盡量不同,如果相同請用--- 號隔開,可以參考yml語法

盡量在kconfig中寫出所有修改的配置,保證config配置能夠盡可能方便驗證。

#表示注釋

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測
    +關(guān)注

    關(guān)注

    5

    文章

    4613

    瀏覽量

    92571
  • BSP
    BSP
    +關(guān)注

    關(guān)注

    1

    文章

    91

    瀏覽量

    26764
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1372

    瀏覽量

    41561
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    STM32系列的BSP框架

    為了廣大開發(fā)者更好、方便地使用 BSP 進行開發(fā),RT-Thread 開發(fā)團隊重新整理了現(xiàn)有的 STM32 系列的 BSP,推出了新的 BSP
    發(fā)表于 08-09 08:51

    STM32系列BSP制作教程簡介

    STM32 系列 BSP 制作教程簡介為了廣大開發(fā)者更好、方便地使用 BSP 進行開發(fā),RT-Thread 開發(fā)團隊重新整理了現(xiàn)有的 STM32 系列的
    發(fā)表于 08-24 06:53

    STM32系列BSP制作教程相關(guān)資料分享

    存放在 Library 文件夾中,通過在特定 BSP 中引用這些文件的方式,來包含 BSP中所需的庫文件或者驅(qū)動文件。這種方式不僅大大提高了代碼復(fù)用率,降低了 BSP維護成本,而且可
    發(fā)表于 10-10 15:43

    rttstudio使用at32的bsp library驅(qū)動為什么和github主線上at32的bsp里面的文件有很大差異呢?

    請問rttstudio里面使用at32的bsp library里面的驅(qū)動為啥和現(xiàn)在github主線上at32的bsp里面的文件有很大差異呢 是studio自動建立的工程現(xiàn)在沒有跟上更新嗎 比如這里面的驅(qū)動代碼版本就不太一樣,
    發(fā)表于 09-07 16:39

    基于VxWorks的BSP技術(shù)分析

    結(jié)合嵌入式操作系統(tǒng)設(shè)計的主要特點,針對486 目標(biāo)機上VxWorks 的定制,運用其BSP 技術(shù)解決了移植過程中底層硬件與上層軟件無關(guān)性的問題。描述了BSP 的概念和啟動流程,介紹了BSP
    發(fā)表于 08-15 10:45 ?17次下載

    VxWorks實時操作系統(tǒng)下BSP

    文中介紹實時操作系統(tǒng)V Works中BSP的概念,以及開發(fā)BSP必須要了解的交叉調(diào)試環(huán)境、系統(tǒng)的啟動過程、V works Image的分類以及BSP文件的組成等內(nèi)容。
    發(fā)表于 11-27 16:19 ?16次下載

    vxworks BSP設(shè)計

    BSP是Board Support Package的縮寫。該術(shù)語通常用于嵌入式領(lǐng)域,主要指在開發(fā)嵌人式應(yīng)用時系統(tǒng)開發(fā)商提供的各種粗動支持庫。在嵌人式領(lǐng)域人們對BSP有各種不同的理解
    發(fā)表于 01-15 18:54 ?2989次閱讀

    bsp是什么

    一、BSP是什么 板級支持包(BSP)是介于主板硬件和操作系統(tǒng)中驅(qū)動層程序之間的一層,一般認為它屬于操作系統(tǒng)一部分,主要是實現(xiàn)對操作系統(tǒng)的支持,為上層的驅(qū)動程序提供訪問硬件設(shè)備寄存器的函數(shù)包,使之能
    發(fā)表于 10-16 15:59 ?13.6w次閱讀

    Petalinux BSP安裝與構(gòu)建過程

    Petalinux參考bsp可以用戶迅速啟動。并且,這些設(shè)計可以作為用戶設(shè)計的基。Petalinux BSP是標(biāo)準可安裝格式,包含啟動所需的設(shè)計和配置文件。BSP包中設(shè)計好的軟硬件可
    發(fā)表于 11-15 11:50 ?8258次閱讀

    STM32系列RT-Thread系統(tǒng)BSP制作教程免費下載

    為了廣大開發(fā)者更好、方便地使用 BSP 進行開發(fā),RT-Thread 開發(fā)團隊重新整理了現(xiàn)有的 STM32 系列的 BSP,推出了新的 BSP
    發(fā)表于 02-25 08:00 ?47次下載
    STM32系列RT-Thread系統(tǒng)<b class='flag-5'>BSP</b>制作教程免費下載

    Xilinx全新開發(fā)工具Vitis里,如何配置BSP

    在Xilinx為異構(gòu)計算打造的全新開發(fā)工具Vitis里,BSP被包含在Platform工程里。雙擊Platform工程里里的platform.spr,等界面初始化完成后,點擊右邊的“Modify
    的頭像 發(fā)表于 06-03 16:59 ?6319次閱讀
    Xilinx全新開發(fā)工具Vitis里,如何配置<b class='flag-5'>BSP</b>?

    Xilinx如何配置BSP工程包含的的公共模塊

    Xilinx的SoC在業(yè)界應(yīng)用非常廣泛。對應(yīng)的開發(fā)工具SDK也很成熟。在SDK里,每一個baremetal工程,對應(yīng)一個BSP工程,它包含一些Xilinx提供的公共模塊,比如硬件的驅(qū)動
    的頭像 發(fā)表于 10-09 12:22 ?3925次閱讀
    Xilinx如何配置<b class='flag-5'>BSP</b>工程包含的的公共模塊

    嵌入式中的BSP---BSP到底是什么

    轉(zhuǎn)自: http://blog.chinaunix.net/uid-20788636-id-1841270.html(1)什么是BSPBSP是板級支持包,(board support
    發(fā)表于 10-21 13:36 ?5次下載
    嵌入式中的<b class='flag-5'>BSP---BSP</b>到底是什么

    MCU軟件開發(fā)——如何設(shè)計bsp

    如何設(shè)計bsp
    發(fā)表于 11-05 16:35 ?8次下載
    MCU軟件開發(fā)——如何設(shè)計<b class='flag-5'>bsp</b>

    BSP 入門簡介 | 九七的BSP

    BSP Camera開發(fā)BSP(Board Support Package),板級支持包,也稱為硬件抽象層HAL或者中間層??床欢疀]關(guān)系,等看完所有的文檔,你的疑惑都會得到解決的。作為BSP
    發(fā)表于 01-17 12:16 ?7次下載
    <b class='flag-5'>BSP</b> 入門簡介 | 九七的<b class='flag-5'>BSP</b>

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品