如何手動(dòng)打包RTT 上的bsp
PART01
簡(jiǎn)介
有很多小伙伴喜歡用scons --dist功能下載包,但是又有時(shí)候不想下載RT-THREAD的所有的包,這個(gè)時(shí)候,可以考慮看下這篇文章,說(shuō)不定對(duì)你有幫助。這邊我提供了一種手動(dòng)來(lái)trigger 生成特定bsp的project文件。PART02
如何使用
打開(kāi)倉(cāng)庫(kù):https://github.com/RT-Thread/rt-thread比如想生成qemu-vexpress-a9的單獨(dú)的project,可以參考下面圖的操作:
- 注意事項(xiàng):你需要有這個(gè)倉(cāng)庫(kù)的權(quán)限才行,所以如果小伙伴發(fā)現(xiàn)沒(méi)有這個(gè)按鈕,你可以把倉(cāng)庫(kù)fork下來(lái),在自己fork之后的倉(cāng)庫(kù)來(lái)操作
PART03
生成之后的文件在哪里
點(diǎn)完之后,會(huì)稍微需要等一會(huì),因?yàn)閍ction在跑運(yùn)行。

PART04
最后文件
最后zip包里面有兩個(gè)文件,project.zip 和qemu-vexpress-a9 這兩個(gè)文件,project.zip 就是我們平時(shí)用的scons --dist 生成出來(lái)的。另外一個(gè)文件就是原來(lái)master分支上bsp經(jīng)過(guò)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輸入功能,可以用來(lái)手動(dòng)trigger1#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先拷貝出來(lái),之后再執(zhí)行scons --dist 最后將project.zip也拷貝出來(lái),方便后面上傳。
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之后的文件。大家如果覺(jué)得好用,可以在評(píng)論區(qū)留言。如果覺(jué)得有哪里還有可以改進(jìn)的地方,也可也在評(píng)論區(qū)里面建議或者提PR,都可以~非常歡迎。這個(gè)功能剛開(kāi)始做,所以肯定有很多地方可以完善的地方。后續(xù)我會(huì)繼續(xù)考慮完善它。大家可以試試幫我試試自己常用的bsp,看下是否ok。如果有問(wèn)題歡迎反饋~。原文:https://club.rt-thread.org/ask/article/419a30e57384a239.html
———————End———————
RT-Thread線下入門(mén)培訓(xùn)
7月 -上海,南京
1.免費(fèi)2.動(dòng)手實(shí)驗(yàn)+理論3.主辦方免費(fèi)提供開(kāi)發(fā)板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語(yǔ)言、單片機(jī)(ARM Cortex-M核)基礎(chǔ),請(qǐng)?zhí)崆鞍惭b好RT-Thread Studio 開(kāi)發(fā)環(huán)境
立即掃碼報(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)注明出處。
-
RT-Thread
+關(guān)注
關(guān)注
32文章
1400瀏覽量
41838
原文標(biāo)題:RTT黑科技: 添加手動(dòng)打包和編譯特定bsp功能
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
使用 BSP 助手創(chuàng)建項(xiàng)目并創(chuàng)建 BSP 后,我應(yīng)該在哪里更改 cy_device_headers.h 中列出的設(shè)備名稱宏?
手動(dòng)添加cubeMX的軟件自動(dòng)生成代碼后,編譯出現(xiàn)’rtthread.elf’:No Such File 的錯(cuò)誤怎么解決?
【RA4L1-SENSOR】+ RA4L1-SENSOR開(kāi)發(fā)版之使用Jlink的RTT打印功能代替串口

【RA-Eco-RA4M2開(kāi)發(fā)板評(píng)測(cè)】使用Jlink的RTT來(lái)實(shí)現(xiàn)串口打印功能
RZ MPU工業(yè)控制教程連載(62)Yocto系統(tǒng)添加程序

在下載的源碼進(jìn)入bsp目錄下的一個(gè)板子中執(zhí)行menuconfig報(bào)錯(cuò),怎么解決?
【RA-Eco-RA2L1-48PIN-V1.0開(kāi)發(fā)板試用】——使用Jlink的RTT實(shí)現(xiàn)串口打印功能
使用OpenVINO?條件編譯功能,壓縮Windows應(yīng)用體積

Triton編譯器功能介紹 Triton編譯器使用教程
【敏矽微ME32G070開(kāi)發(fā)板免費(fèi)體驗(yàn)】使用JLINK的RTT功能實(shí)現(xiàn)類(lèi)似串口printf打印功能
快使用yml看護(hù)主線bsp,讓bsp維護(hù)更簡(jiǎn)單!

評(píng)論