博客專欄

        EEPW首頁 > 博客 > 如何向RT-Thread 倉庫提交代碼

        如何向RT-Thread 倉庫提交代碼

        發(fā)布人:電子禪石 時間:2019-01-15 來源:工程師 發(fā)布文章

        摘要:以最近官方的一個制作STM32 BSP 為例子,講解如何向RT-Thread 倉庫提交代碼。

        并且只有一次提交commit.

        編程風格

        RT-Thread 代碼編程風格請參考 rt_thread 項目 documentation 目錄下的 coding_style_cn.txt文件。

        準備工作

        • 安裝 git

        • 安裝 TortoiseGit/ Sourcetree 工具,這兩個個工具是 git 的一種圖形化界面

        • 注意安裝 git 的時候記得勾選將 git 所在目錄添加到系統(tǒng)環(huán)境變量

        • 必須是fork最新的代碼。

        1.fork 到自己的倉庫。1.png

        圖1:

        2.png

        2.克隆(clone)

        將 rt-thread 倉庫 clone 到自己的本地 PC。

        3.png

        圖3:

        在本地找個文件夾,

        先使用git init 命令 初始化一個倉庫。

        再使用 clone 命令。

        git clone https://github.com/XiaojieFan/rt-thread.git

        4.png

        圖4:

        這就是克隆后的最終結果。

        5.png

        圖5:

        3. 創(chuàng)建本地分支

        我們在這里創(chuàng)建一個stm32f103-hw100k-ibox分支為例。目標是保證提交的干凈整潔。

        這樣做的好處是,master 可以跟蹤rt-thread 庫獲取最新的代碼,然后自己可以在stm32f103-hw100k-ibox分支進行開發(fā),兩者相互不影響,開發(fā)完,進行合并就可以。

        這是之前的理解,有點問題,你的分支是不需要合并的,其實master 必須保證是最新的代碼,然后每次開發(fā)在master上建立分支,所以就不需要合并自己的分支。然后就能保證最小的提交數(shù)量,保證提交的整潔。或者你修改好了,copy 出來,然后分支回退,也能保證提交干凈。

        6.png

        圖6:

        4.開發(fā)

        在之前已經(jīng)做好的stm32f103-hw100k-ibox bsp 基礎上修改LED引腳。

        7.png

        圖7:

        編譯通過。

        8.png

        圖8:

        實際板子驗證一下,能正常運行。

        9.png

        圖9:

        5. 提交(commit)

        向本地倉庫提交 bug.   不推送到遠程倉庫。

        提交的話,需要先把多余的文件清理干凈。具體可參考其他bsp,進行最終提交代碼的整理。

        10.png

        圖10:

        11.png

        圖11:

        RT-Thread STM32 系列 BSP 制作與提交時應當遵守的規(guī)范 。開發(fā)人員在 BSP 制作完成后,可以根據(jù)本規(guī)范提出的檢查點對制作的 BSP 進行檢查,確保 BSP 在提交前有較高的質(zhì)量

        1. BSP 制作規(guī)范

        STM32 BSP 的制作規(guī)范主要分為 3 個方面:工程配置,ENV 配置和 IDE 配置。在已有的 STM32 系列 BSP 的模板中,已經(jīng)根據(jù)下列規(guī)范對模板進行配置。在制作新 BSP 的過程中,拷貝模板進行修改時,需要注意的是不要修改這些默認的配置。BSP 制作完成后,需要對新制作的 BSP 進行功能測試,功能正常后再進行代碼提交。

        下面將詳細介紹 BSP 的制作規(guī)范。

        工程配置

        • 遵從RT-Thread 編碼規(guī)范,代碼注釋風格統(tǒng)一

        • main      函數(shù)功能保持一致

          • 如果有 LED 的話,main 函數(shù)里只放一個 LED 1HZ 閃爍的程序

          • LED_PIN       定義在 board.h,初始化在 board.c 完成

        • rt_hw_board_init 中需要完成堆的初始化:調(diào)用 rt_system_heap_init

        • 默認只初始化 GPIO 驅動和 FinSH 對應的串口驅動,不使用 DMA

        • 當使能板載外設驅動時,應做到不需要修改代碼就能編譯下載使用

        • 提交前應檢查      gcc/mdk/iar 三種編譯器直接編譯或者重新生成后編譯是否成功

        • 使用 dist 功能對 BSP 進行發(fā)布,檢查使用 dist 命令生成的工程是否可以正常使用

        Gcc 如何檢查呢?說是改python 腳本。不然沒法改參數(shù)。

        直接在env中使用scons 命令就可以。會生成rtthread.bin 文件。


         12.png

         

        圖12: 

        ENV 配置規(guī)范

        IDE 配置規(guī)范:

        BSP 提交規(guī)范:

        以上規(guī)范詳見:https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md

        6. 保持本地倉庫最新

        保持本地倉庫最新。因為第一步已經(jīng)保證了。所以這里是保證后續(xù)如何與RTT倉庫保持同步更新。 這里只列出一種方法:https://blog.csdn.net/qq1332479771/article/details/56087333

        在準備發(fā)起 Pull Request 之前,需要同步原倉庫最新的代碼,記得檢查目前的項目是否是最新的版本。

        13.png

        (13)

        14.png

        (14)

        15.png

        (15)


        16.png

        (16)

        16-1.png

        (17)

        點獲取最新代碼,

        18.png

        (18)

        19.png


        (19)

        然后拉取到本地。

        20.png

        (20)

        21.png

        (21)

        22.png

        (22)

        然后將自己的分支合并到主分支上,以讓自己的分支也是最新的代碼。其實還有方法可以直接更新分支的代碼和遠程RTT 保持一致。然后直接提交分支就可以。不需要合并。

        23.png

        (23)

        7. Push 到自己的遠程倉庫

        push 到開發(fā)者自己的遠程倉庫中。

        24.png

        (24)

        25.png

        (25)

        8.發(fā)起并完成 Pull Request

        在 git 倉庫中選擇自己修改了的分支,點擊 create pull request 按鈕發(fā)起 pull request。注意順序。

        26.png

        (26)

        27.png

        (27)

        第一次提交有個CLA協(xié)議的簽署。

        28.png

        (28)

        29.png

        (29)

        30.png

        (30)

        簽完以后,就可以看見自己的提交請求。等待審核。

        31.png

        (31)

        最后官方人員審核完成后的結果如下會被合并到庫里面:

        32.png

        33.png

        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。

        斷路器相關文章:斷路器原理


        高壓真空斷路器相關文章:高壓真空斷路器原理
        漏電斷路器相關文章:漏電斷路器原理


        關鍵詞:

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 雅安市| 广西| 稷山县| 定安县| 芦山县| 日照市| 娱乐| 项城市| 太白县| 滕州市| 芦山县| 化德县| 怀宁县| 宣威市| 深水埗区| 东山县| 建始县| 开阳县| 天门市| 旌德县| 德清县| 正镶白旗| 丁青县| 仁化县| 富源县| 锡林郭勒盟| 安化县| 马边| 犍为县| 灵宝市| 枣强县| 揭东县| 黄大仙区| 灵川县| 双江| 竹山县| 蕉岭县| 南涧| 盘锦市| 太和县| 新丰县|