"); //-->
摘要:以最近官方的一个制作STM32 BSP 为例子,讲解如何向RT-Thread 仓库提交代码。
并且只有一次提交commit.
编程风格
RT-Thread 代码编程风格请参考 rt_thread 项目 documentation 目录下的 coding_style_cn.txt文件。
准备工作
安装 git
安装 TortoiseGit/ Sourcetree 工具,这两个个工具是 git 的一种图形化界面
注意安装 git 的时候记得勾选将 git 所在目录添加到系统环境变量
必须是fork最新的代码。
1.fork 到自己的仓库。
图1:
2.克隆(clone)
将 rt-thread 仓库 clone 到自己的本地 PC。
图3:
在本地找个文件夹,
先使用git init 命令 初始化一个仓库。
再使用 clone 命令。
git clone https://github.com/XiaojieFan/rt-thread.git
图4:
这就是克隆后的最终结果。
图5:
3. 创建本地分支
我们在这里创建一个stm32f103-hw100k-ibox分支为例。目标是保证提交的干净整洁。
这样做的好处是,master 可以跟踪rt-thread 库获取最新的代码,然后自己可以在stm32f103-hw100k-ibox分支进行开发,两者相互不影响,开发完,进行合并就可以。
这是之前的理解,有点问题,你的分支是不需要合并的,其实master 必须保证是最新的代码,然后每次开发在master上建立分支,所以就不需要合并自己的分支。然后就能保证最小的提交数量,保证提交的整洁。或者你修改好了,copy 出来,然后分支回退,也能保证提交干净。
图6:
4.开发
在之前已经做好的stm32f103-hw100k-ibox bsp 基础上修改LED引脚。
图7:
编译通过。
图8:
实际板子验证一下,能正常运行。
图9:
5. 提交(commit)
向本地仓库提交 bug. 不推送到远程仓库。
提交的话,需要先把多余的文件清理干净。具体可参考其他bsp,进行最终提交代码的整理。
图10:
图11:
RT-Thread STM32 系列 BSP 制作与提交时应当遵守的规范 。开发人员在 BSP 制作完成后,可以根据本规范提出的检查点对制作的 BSP 进行检查,确保 BSP 在提交前有较高的质量 。
1. BSP 制作规范
STM32 BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和 IDE 配置。在已有的 STM32 系列 BSP 的模板中,已经根据下列规范对模板进行配置。在制作新 BSP 的过程中,拷贝模板进行修改时,需要注意的是不要修改这些默认的配置。BSP 制作完成后,需要对新制作的 BSP 进行功能测试,功能正常后再进行代码提交。
下面将详细介绍 BSP 的制作规范。
工程配置
遵从RT-Thread 编码规范,代码注释风格统一
main 函数功能保持一致
如果有 LED 的话,main 函数里只放一个 LED 1HZ 闪烁的程序
LED_PIN 定义在 board.h,初始化在 board.c 完成
在 rt_hw_board_init 中需要完成堆的初始化:调用 rt_system_heap_init
默认只初始化 GPIO 驱动和 FinSH 对应的串口驱动,不使用 DMA
当使能板载外设驱动时,应做到不需要修改代码就能编译下载使用
提交前应检查 gcc/mdk/iar 三种编译器直接编译或者重新生成后编译是否成功
使用 dist 功能对 BSP 进行发布,检查使用 dist 命令生成的工程是否可以正常使用
Gcc 如何检查呢?说是改python 脚本。不然没法改参数。
直接在env中使用scons 命令就可以。会生成rtthread.bin 文件。
图12:
ENV 配置规范
IDE 配置规范:
BSP 提交规范:
以上规范详见: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
保持本地仓库最新。因为第一步已经保证了。所以这里是保证后续如何与RTT仓库保持同步更新。 这里只列出一种方法:https://blog.csdn.net/qq1332479771/article/details/56087333
在准备发起 Pull Request 之前,需要同步原仓库最新的代码,记得检查目前的项目是否是最新的版本。
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
然后将自己的分支合并到主分支上,以让自己的分支也是最新的代码。其实还有方法可以直接更新分支的代码和远程RTT 保持一致。然后直接提交分支就可以。不需要合并。
(23)
7. Push 到自己的远程仓库
(24)
(25)
8.发起并完成 Pull Request在 git 仓库中选择自己修改了的分支,点击 create pull request 按钮发起 pull request。注意顺序。
(26)
(27)
第一次提交有个CLA协议的签署。
(28)
(29)
(30)
签完以后,就可以看见自己的提交请求。等待审核。
(31)
最后官方人员审核完成后的结果如下会被合并到库里面:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。