0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

快使用yml看護(hù)主線bsp,讓bsp維護(hù)更簡(jiǎn)單!

RT-Thread官方賬號(hào) ? 2024-12-03 01:07 ? 次閱讀

問(wèn)題

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

引入yml有以下幾點(diǎn)優(yōu)勢(shì):

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

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

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

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

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

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

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

簡(jiǎn)介

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

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

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

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

attach: 大致上可以理解為不同的config配置,提供給CI,讓CI來(lái)進(jìn)行編譯檢查。

yml文件

我們引入了一個(gè)包含所有配置的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)和文件名不要改變。

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

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

添加如下配置

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

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

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

第三步,提PR驗(yàn)證

通常提交PR之后,會(huì)有一個(gè)對(duì)所有BSP的檢測(cè)

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

這里是所有bsp的檢測(cè)

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

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

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

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

額外功能

添加scons 參數(shù)

另外如果需要加--strict 強(qiáng)制編譯的話。

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

例如:

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

添加依賴

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

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

添加引用

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

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

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

總結(jié)

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

采用單獨(dú)的yml文件放所有的配置,

每個(gè)配置名稱盡量不同,如果相同請(qǐng)用--- 號(hào)隔開(kāi),可以參考yml語(yǔ)法

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

#表示注釋

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

    關(guān)注

    5

    文章

    4503

    瀏覽量

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

    關(guān)注

    1

    文章

    88

    瀏覽量

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

    關(guān)注

    31

    文章

    1299

    瀏覽量

    40258
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32系列的BSP框架

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

    STM32系列BSP制作教程簡(jiǎn)介

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

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

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

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

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

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

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

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

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

    vxworks BSP設(shè)計(jì)

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

    bsp是什么

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

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

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

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

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

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

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

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

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

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

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

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

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

    BSP 入門簡(jiǎn)介 | 九七的BSP

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