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

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

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

RTT黑科技: 添加手動(dòng)打包和編譯特定bsp功能

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:未知 ? 2023-06-12 19:40 ? 次閱讀

如何手動(dòng)打包RTT 上的bsp

PART01

簡(jiǎn)介

有很多小伙伴喜歡用scons --dist功能下載包,但是又有時(shí)候不想下載RT-THREAD的所有的包,這個(gè)時(shí)候,可以考慮看下這篇文章,說不定對(duì)你有幫助。這邊我提供了一種手動(dòng)來trigger 生成特定bsp的project文件。

PART02

如何使用

打開倉庫:https://github.com/RT-Thread/rt-thread比如想生成qemu-vexpress-a9的單獨(dú)的project,可以參考下面圖的操作:824f7104-0915-11ee-962d-dac502259ad0.jpg這個(gè)時(shí)候,你可以選擇自己熟悉的bsp,只需要告訴action你需要編譯的bsp路徑就可以了,然后選擇一下tool_chain, 自己應(yīng)該知道平時(shí)用的是哪個(gè)toolchain。
  • 注意事項(xiàng):你需要有這個(gè)倉庫的權(quán)限才行,所以如果小伙伴發(fā)現(xiàn)沒有這個(gè)按鈕,你可以把倉庫fork下來,在自己fork之后的倉庫來操作
最后如果需要,可以選擇一個(gè)配置進(jìn)行選擇配置,比如CONFIG_BSP_USING_I2C ,最后執(zhí)行Run worflow 綠色的小按鈕。之后就可以讓action幫你生成了。

PART03

生成之后的文件在哪里

點(diǎn)完之后,會(huì)稍微需要等一會(huì),因?yàn)閍ction在跑運(yùn)行。826f242c-0915-11ee-962d-dac502259ad0.png稍微等個(gè)5分鐘以內(nèi)吧。然后就可以獲得工程文件,參考下圖:8296c824-0915-11ee-962d-dac502259ad0.jpg這個(gè)時(shí)候,你就可以把這個(gè)下載下來。當(dāng)然這個(gè)action也會(huì)幫你檢查bsp的scons編譯情況(可以加特定config 配置情況),你不需要每次都把最新的代碼下載下來。

PART04

最后文件

最后zip包里面有兩個(gè)文件,project.zipqemu-vexpress-a9 這兩個(gè)文件,project.zip 就是我們平時(shí)用的scons --dist 生成出來的。另外一個(gè)文件就是原來master分支上bsp經(jīng)過scons編譯之后,里面包含可執(zhí)行文件,如果qemu-vexpress-a9,你可以在scons直接執(zhí)行,里面已經(jīng)有rtthread.elf 文件。

PART05

原理講解

如何實(shí)現(xiàn)上述功能呢?這里很多是關(guān)于github action的內(nèi)容,方便后續(xù)維護(hù)。這個(gè)功能添加的PR 鏈接:https://github.com/RT-Thread/rt-thread/pull/7648 輸入功能github action 有一個(gè)input輸入功能,可以用來手動(dòng)trigger

				1#Controlswhentheactionwillrun.Triggers'scons--dist'tobuildthedist  2on:  3workflow_dispatch:  4#https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs  5inputs:  6bsp_options:  7description:'WhichbsppathWouldyouwantdistinbsp?likestm32/stm32l496-st-nucleo'  8required:false  9type:string 10default:'qemu-vexpress-a9' 11bsp_tool_chain: 12description:'Choicetool_chain' 13required:false 14default:'sourcery-arm' 15type:choice 16options: 17-"sourcery-arm" 18-"llvm-arm" 19-"sourcery-aarch64" 20-"sourcery-mips" 21-"sourcery-riscv-none-embed" 22-"sourcery-riscv64-unknown-elf" 23bsp_config: 24description:'Typeaconfigyouwantmannualtestin.config,likeCONFIG_BSP_USING_I2CCONFIG_BSP_USING_WDT' 25required:false 26type:string 27default:'CONFIG_BSP_USING_GPIO'
				這里可以具體內(nèi)容參考github中的文檔:https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs大概看yaml也能大概看懂,就是輸入的一些參數(shù)改成變量bsp_options, bsp_tool_chain, bsp_config有了這3個(gè)變量,我們就可以編譯特定的bsp了。
				如何編譯執(zhí)行如何編譯執(zhí)行,這里參考了一下action.yml中的操作,將.config按照要求修改,然后執(zhí)行pkgs --update 更新下軟件包,然后執(zhí)行下scons, 把scons之后的bsp先拷貝出來,之后再執(zhí)行scons --dist 最后將project.zip也拷貝出來,方便后面上傳。

				1-name:BspSconsCompile  2if:${{success()}}  3shell:bash  4env:  5RTT_BSP:${{github.event.inputs.bsp_options}}  6RTT_TOOL_CHAIN:${{github.event.inputs.bsp_tool_chain}}  7run:|  8source~/.env/env.sh  9echo$RTT_BSP 10lsbsp/$RTT_BSP/Kconfig&&scons-Cbsp/$RTT_BSP--pyconfig-silent 11sed-i"s/#${{github.event.inputs.bsp_config}}isnotset/${{github.event.inputs.bsp_config}}=y/g"bsp/$RTT_BSP/.config 12pushdbsp/$RTT_BSP&&pkgs--update&&popd 13scons-Cbsp/$RTT_BSP-j$(nproc) 14mkdir-p${{github.workspace}}/$RTT_BSP 15cp-rbsp/$RTT_BSP${{github.workspace}}/$RTT_BSP/ 16scons--dist-Cbsp/$RTT_BSP 17cpbsp/$RTT_BSP/dist/project.zip${{github.workspace}}/$RTT_BSP/ 18lsbsp/$RTT_BSP/dist 19pwd
				
				如何上傳中間文件那如何上傳中間文件的呢?這里就要用到github中的一個(gè)小功能了。只需要在action中添加下面的代碼。·name 是你要顯示的名字·path 是你要上傳的文件路徑

				1-uses:actions/upload-artifact@v3 2with: 3name:dist_file 4path:${{github.workspace}}/${{github.event.inputs.bsp_options}}/*
				

PART06

總結(jié)

這個(gè)方便生成dist之后的文件。大家如果覺得好用,可以在評(píng)論區(qū)留言。如果覺得有哪里還有可以改進(jìn)的地方,也可也在評(píng)論區(qū)里面建議或者提PR,都可以~非常歡迎。這個(gè)功能剛開始做,所以肯定有很多地方可以完善的地方。后續(xù)我會(huì)繼續(xù)考慮完善它。大家可以試試幫我試試自己常用的bsp,看下是否ok。如果有問題歡迎反饋~。

原文:https://club.rt-thread.org/ask/article/419a30e57384a239.html

———————End———————

RT-Thread線下入門培訓(xùn)

7月 -上海,南京

1.免費(fèi)2.動(dòng)手實(shí)驗(yàn)+理論3.主辦方免費(fèi)提供開發(fā)板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語言、單片機(jī)(ARM Cortex-M核)基礎(chǔ),請(qǐng)?zhí)崆鞍惭b好RT-Thread Studio 開發(fā)環(huán)境

82b43260-0915-11ee-962d-dac502259ad0.png

立即掃碼報(bào)名

報(bào)名鏈接

https://jinshuju.net/f/UYxS2k

巡回城市:青島、北京、西安、成都、武漢、鄭州、杭州、深圳、上海、南京

你可以添加微信:rtthread2020 為好友,注明:公司+姓名,拉進(jìn)RT-Thread官方微信交流群!

點(diǎn)擊閱讀原文,進(jìn)入RT-Thread 官網(wǎng)


原文標(biāo)題:RTT黑科技: 添加手動(dòng)打包和編譯特定bsp功能

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


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

    關(guān)注

    31

    文章

    1239

    瀏覽量

    39474

原文標(biāo)題:RTT黑科技: 添加手動(dòng)打包和編譯特定bsp功能

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    rt-thread studio手動(dòng)導(dǎo)入bsp失敗的原因?怎么處理?

    rt-thread studio 手動(dòng)導(dǎo)入bsp 失敗。 版本: 2.2.8 構(gòu)建ID: 202405200930 導(dǎo)入的bsp 是直接從rt-thread 代碼倉庫下載的
    發(fā)表于 09-13 06:45

    linux驅(qū)動(dòng)程序的編譯方法有哪兩種

    Linux驅(qū)動(dòng)程序的編譯方法主要可以歸納為兩種: 手動(dòng)編譯 和 使用內(nèi)核構(gòu)建系統(tǒng)(Makefile)自動(dòng)編譯 。 1. 手動(dòng)
    的頭像 發(fā)表于 08-30 14:39 ?248次閱讀

    延時(shí)開關(guān)改手動(dòng)開關(guān)怎么接線

    延時(shí)開關(guān)和手動(dòng)開關(guān)是兩種不同類型的開關(guān),它們的工作原理和接線方式也有所不同。在某些情況下,我們可能需要將延時(shí)開關(guān)改為手動(dòng)開關(guān),以滿足特定的使用需求。 一、延時(shí)開關(guān)和手動(dòng)開關(guān)的區(qū)別 工作
    的頭像 發(fā)表于 08-19 15:49 ?213次閱讀

    FRDM-MCXN947的純Linux命令行環(huán)境搭建

    arm-none-eabi-gcc 從arm官網(wǎng)下載標(biāo)準(zhǔn)工具鏈(arm-none-eabi-gcc),并解壓縮。由于RTT可以直接在腳本里指定工具鏈的絕對(duì)路徑,我們也可以偷懶不配置環(huán)境變量。 直接修改板級(jí)目錄洗的編譯配置腳本,設(shè)置
    發(fā)表于 07-28 22:55

    【PHYTEC AM62x開發(fā)板試用】BSP編譯

    BSP編譯過程中遇到了很多問題,問題及處理方法匯總?cè)缦拢?1、Ubuntu版本問題。開始安裝的是Ubuntu18.04,在執(zhí)行下面的指令的時(shí)候發(fā)現(xiàn)有幾個(gè)功能安不上 通過網(wǎng)上查詢解決了部分問題,但是
    發(fā)表于 07-10 11:54

    cubeMX能直接導(dǎo)入開發(fā)板的BSP嗎?

    開發(fā)板用的是F7discovery,想用上邊的音頻DAC,能在cubeMX里設(shè)置對(duì)應(yīng)的功能,生成工程時(shí)自動(dòng)把cube庫driver下的BSP和Components里對(duì)應(yīng)的文件也導(dǎo)入到工程嗎?還是得自己手動(dòng)導(dǎo)入?
    發(fā)表于 05-10 06:49

    TASKING編譯器是否可以將數(shù)據(jù)結(jié)構(gòu)設(shè)置為 \"打包\"?

    TASKING 編譯器是否可以將數(shù)據(jù)結(jié)構(gòu)設(shè)置為 \"打包\"? GCC 很早以前就提供了這種可能性,可以將__attribute__((packed))與對(duì)齊指令結(jié)合使用。 對(duì)于
    發(fā)表于 03-05 06:00

    RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢?

    RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢? RT-Thread的RTT_Draco是一款高性能的MCU芯片,它提供了外置UART接口(TXD,RXD)用于與外部設(shè)備進(jìn)行
    的頭像 發(fā)表于 01-16 17:11 ?757次閱讀

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-AGC分發(fā)如何編譯打包應(yīng)用

    軟件包規(guī)范 在正式打包應(yīng)用前,請(qǐng)確保已了解HarmonyOS應(yīng)用軟件包規(guī)范。 操作步驟 1.打開DevEco Studio,菜單選擇“Build > Build Hap(s)/APP
    發(fā)表于 11-20 17:19

    JLink手動(dòng)添加Artery MCU

    JLink 如何手動(dòng)添加 Artery MCU
    發(fā)表于 10-23 07:36

    vscode全系列調(diào)試

    這里介紹了 RTT 常見的幾個(gè) bsp 的調(diào)試方法,其他的都是類似的形式,照著寫即可
    的頭像 發(fā)表于 10-17 11:39 ?522次閱讀
    vscode全系列調(diào)試

    記錄為BL808添加GPIO驅(qū)動(dòng)

    該文主要記錄為 BL808 BSP 添加 GPIO 驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案。這是我第一次對(duì)接 RT-Thread BSP 的驅(qū)動(dòng),整理出本文避免之后踩到同樣的坑,也希望能幫助到和我一樣的新手。
    的頭像 發(fā)表于 10-13 11:18 ?504次閱讀

    RA2L1上手優(yōu)化BSP占用

    在上手RA2L1開發(fā)板的時(shí)候,使用RTT Studio給的BSP進(jìn)行開發(fā)時(shí)發(fā)現(xiàn)默認(rèn)占用太大了,所以今天就來說一下如何優(yōu)化掉不是很必要的部分(當(dāng)然芯片資源很大且不在乎的可以不做)。
    的頭像 發(fā)表于 10-12 11:18 ?528次閱讀
    RA2L1上手優(yōu)化<b class='flag-5'>BSP</b>占用

    RTT是什么?對(duì)TCP中RTT時(shí)延的理解

    最近服務(wù)器環(huán)境部署了**tcprtt**網(wǎng)絡(luò)時(shí)延監(jiān)控,發(fā)現(xiàn)不同服務(wù)器不同節(jié)點(diǎn)之間的RTT時(shí)延表象非常奇怪,無法準(zhǔn)確的判斷服務(wù)器的網(wǎng)絡(luò)情況。
    的頭像 發(fā)表于 10-09 16:24 ?3.7w次閱讀
    <b class='flag-5'>RTT</b>是什么?對(duì)TCP中<b class='flag-5'>RTT</b>時(shí)延的理解

    RT-Thread BSP qemu-virt64-aarch64文件系統(tǒng)

    前面大體上搭建了 RT-Thread BSP qemu-virt64-aarch64 的交叉編譯環(huán)境,運(yùn)行后發(fā)現(xiàn),文件系統(tǒng)沒有掛載上,感覺是沒有 mkfs。
    的頭像 發(fā)表于 10-08 16:34 ?789次閱讀
    RT-Thread <b class='flag-5'>BSP</b> qemu-virt64-aarch64文件系統(tǒng)