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

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

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

RTT黑科技: 添加手動打包和編譯特定bsp功能

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

如何手動打包RTT 上的bsp

PART01

簡介

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

PART02

如何使用

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

PART03

生成之后的文件在哪里

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

PART04

最后文件

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

PART05

原理講解

如何實現(xiàn)上述功能呢?這里很多是關于github action的內(nèi)容,方便后續(xù)維護。這個功能添加的PR 鏈接:https://github.com/RT-Thread/rt-thread/pull/7648 輸入功能github action 有一個input輸入功能,可以用來手動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個變量,我們就可以編譯特定的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中的一個小功能了。只需要在action中添加下面的代碼。·name 是你要顯示的名字·path 是你要上傳的文件路徑

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

PART06

總結

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

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

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

RT-Thread線下入門培訓

7月 -上海,南京

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

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

立即掃碼報名

報名鏈接

https://jinshuju.net/f/UYxS2k

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

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

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


原文標題:RTT黑科技: 添加手動打包和編譯特定bsp功能

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


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

    關注

    31

    文章

    1251

    瀏覽量

    39746

原文標題:RTT黑科技: 添加手動打包和編譯特定bsp功能

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

收藏 人收藏

    評論

    相關推薦

    如何移植STM32F429 RTT 4.10串口V2?

    tx_pin_name , rx_pin_name定義屏蔽掉 3.將board.h中添加 #define BSP_UART1_TX_BUFSIZE 512 #define BSP_UART1_RX_BUFSIZE 0 目前
    發(fā)表于 09-27 09:30

    rtt studio使用qspi dma就是進不了中斷,為什么?

    我用的是rtt studio, 當不用qspi dma的時候,stm32g474 qspi讀取w25q64 id正常,后續(xù)的讀寫都正常。 如果在dma_config.h添加已下幾個宏使用DMA1
    發(fā)表于 09-27 07:03

    rt-thread studio手動導入bsp失敗的原因?怎么處理?

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

    linux驅動程序的編譯方法有哪兩種

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

    延時開關改手動開關怎么接線

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

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

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

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

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

    請問直通模式下如何添加特定頻段的濾波算法?

    ; 現(xiàn)在我想在拾音后對特定頻段的音頻進行濾波算法(如只允許通過500-100Hz頻段的音頻),這個算法如何添加到pipeline,或者有沒有什么建議?
    發(fā)表于 06-28 08:18

    全志D1s軟件入門之Tina Linux編譯教程

    編譯 Tina Linux 在搭建好編譯環(huán)境并下載好源碼后,即可對源碼進行編譯,編譯打包好后,即可將打包
    發(fā)表于 06-05 09:50

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

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

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

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

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

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

    Mini51DE_Series_BSP_CMSIS_v3.02.000為何在IAR中編譯報錯?

    IAR 8.32 編譯時報如下錯誤: Error[Pe235]: variable \"__stdout\" was declared with a
    發(fā)表于 01-15 08:22

    自動打包機PLC控制系統(tǒng)控制原理及功能

    液壓系統(tǒng)為打包機的核心部分,其工作的可靠性直接決定了打包機動作是否正常可靠,這其中油溫控制就成為打包機液壓控制部分的關鍵。本系統(tǒng)采用PT100作為測量元件,測量值直接送入8#站的模擬量輸入模板的第一個通道PIW248。
    發(fā)表于 12-04 10:31 ?1905次閱讀
    自動<b class='flag-5'>打包</b>機PLC控制系統(tǒng)控制原理及<b class='flag-5'>功能</b>

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

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