From bee713318c9fbd71dbeca1e1f34b95d662794fae Mon Sep 17 00:00:00 2001 From: yangjie Date: Fri, 3 Sep 2021 10:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91bsp=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=87=AA=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsp/bsp-selfcheck/bsp-selfcheck.md | 124 ++++++++++++++++++ .../bsp/bsp-selfcheck/figures/checkok.png | Bin 0 -> 18549 bytes .../bsp/bsp-selfcheck/figures/cla.png | Bin 0 -> 16765 bytes .../bsp-selfcheck/figures/iar-proj-check.png | Bin 0 -> 3398 bytes .../bsp/bsp-selfcheck/figures/ignore-dir.png | Bin 0 -> 23517 bytes .../bsp-selfcheck/figures/mdk-proj-check.png | Bin 0 -> 3814 bytes 6 files changed, 124 insertions(+) create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/bsp-selfcheck.md create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/checkok.png create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/cla.png create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/iar-proj-check.png create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/ignore-dir.png create mode 100644 rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/mdk-proj-check.png diff --git a/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/bsp-selfcheck.md b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/bsp-selfcheck.md new file mode 100644 index 0000000..07b6f74 --- /dev/null +++ b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/bsp-selfcheck.md @@ -0,0 +1,124 @@ +# BSP 提交自查 + +当一个 BSP 制作完成之后,需要提交者自查以下内容,缩短 review 周期。以下所有要求不针对厂商提供的库文件驱动等等,但为防止库文件 ci 不通过,需要增加一个 `.ignore_format.yml` 文件到新的 bsp 路径(文件内容参照如下),加入库文件相对路径,将忽略检查该库文件的格式。例如: + +```python +# files format check exclude path, please follow the instructions below to modify; +# If you need to exclude an entire folder, add the folder path in dir_path; +# If you need to exclude a file, add the path to the file in file_path. + +file_path: + +dir_path: + +``` + +![image-20210902113243600](figures/ignore-dir.png) + +## 代码规范部分 + +首先了解代码规范,可以查看 rt-thread 源码中的文档:[代码格式](https://gitee.com/rtthread/rt-thread/blob/gitee_master/documentation/coding_style_cn.md),请仔细阅读每一条内容。 + +举例代码格式要求: + +- 不允许中文注释 +- 4 个空格缩进 +- 大括号换行 + +了解上述链接中的代码规范之后,根据链接中的文档要求编写代码,代码格式可以使用 [astyle 格式化](https://club.rt-thread.org/ask/article/2993.html#)。 + +## readme 检查 + +是否清晰可读 + +1. 开发板的照片 +2. 芯片资源的介绍中是否包含 FLASH,RAM(需要在 heap 配置时候检查大小,链接脚本是否配置正确) +3. 添加开发板资源的链接 +4. 硬件连接是否清晰 +5. [文档](https://www.rt-thread.org/document/site/)中英文之间添加空格,可以使用 vscode-pangu 插件一键格式化文档 +6. 检查联系人信息,添加维护人自己的名字和 github 链接 + +## 命名检查 + +函数、变量名: + +(1)小写命名 + +(2)不包含芯片厂商名,bsp 函数命名规范具体如下: + +- 驱动 ops 命名规则:`_外设名_操作 `,以 uart 举例: + - static _uart_read/write() +- 驱动注册接口命名规则:`rt_hw_外设_init()`,以 uart 举例: + - int rt_hw_uart_init(void) + +## 代码检查 + +1. 应用代码不包含设备驱动头文件,如 main 中不出现 #include "drv_gpio.h" ,驱动头文件可以包含在 board.h 中。 +2. GCC 代码 rtt 启动部分是否修改(entry) +3. HEAP 大小配置是否正确 +4. 检查链接脚本 ram/rom 大小是否正确 +5. 中断需要 rt_interrupt_enter(); 与 rt_interrupt_leave(); +6. 驱动合并重复代码 +7. 驱动函数名小写 +8. 不允许提交空文件 + +代码精简: + +1. 是否存在无用的文件 +2. 是否存在注释的代码, 如: `if 0` +3. 没有多于一行的连续换行 + +## license 检查 + +- 所有文件都要有 license 文件头 +- 不能有 GPL 等与 Apache2.0 版权冲突的版权 +- 非 Apache2.0 的兼容 license,需要更新 bsp 目录下的 license 声明:[Copyright_Notice.md](https://gitee.com/rtthread/rt-thread/blob/gitee_master/bsp/Copyright_Notice.md),bsp 按照字母顺序排列。 + +## 工程文件检查 + +- 若支持MDK5,应上传: + +![image.png](figures/mdk-proj-check.png) + +- 若支持IAR,应上传: + +![image.png](figures/iar-proj-check.png) + +## 使用工具格式化代码 + +本部分在 [代码格式](https://gitee.com/rtthread/rt-thread/blob/gitee_master/documentation/coding_style_cn.md) 中有记录。 + +1、astyle 格式化代码,参数: + +``` +!E --style=allman --indent=spaces=4 --indent-preproc-block --pad-oper --pad-header --unpad-paren --suffix=none --align-pointer=name --convert-tabs --verbose +``` + +2、使用 [formatting](https://github.com/mysterywolf/formatting) 扫描文件来格式化代码。 + +## 基本功能验证 + +提交的 bsp 需要通过测试,并支持最基本的功能:uart 控制台,pin 设备。 + +最基本功能的效果: + +- 可以运行 finsh 控制台,可以输入命令; +- 可以点灯。 + +注意:除以上基本功能之外的功能,请等待 PR 合并之后再行提交。 + +## 添加 bsp 到 CI + +打开源码根目录下 [.github/workflows/action.yml](https://gitee.com/rtthread/rt-thread/blob/gitee_master/.github/workflows/action.yml) 文件,添加 bsp 到 ci。 + +## 提交 PR 之后的检查项 + +- 提交 PR 之后,检查 CLA 是否签署(一个账户只需要在第一次提交时候签署)。注意不要使用非 GitHub 账号提交 commmit,或者使用不同的账号提交 commit 后提 Pull Request,这会导致 CLA 签署失败。 + +![image](figures/cla.png) + +- 再检查 ci 是否正常运行(ci 检查需要一段时间),有无报错信息,全部通过后显示如下: + +![image](figures/checkok.png) + +- 接下来等待 review 结果,若有反馈需要修改,请进行修改,直到合并。 \ No newline at end of file diff --git a/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/checkok.png b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/checkok.png new file mode 100644 index 0000000000000000000000000000000000000000..9be4ef0a5e6f0dcad48aa201e51768fcf292d1c4 GIT binary patch literal 18549 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 JtaD0e0s!?Y)4Kow literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/cla.png b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/cla.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3f7021e21aa728a9ca95a92bf7187ac3e5582a GIT binary patch literal 16765 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 PfIhrek}8!j{Pw>9u}iJ) literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/iar-proj-check.png b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/iar-proj-check.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1b6f03fdd1195d364f1d47c4a77778c9104f05 GIT binary patch literal 3398 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 literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/mdk-proj-check.png b/rt-thread-version/rt-thread-standard/application-note/bsp/bsp-selfcheck/figures/mdk-proj-check.png new file mode 100644 index 0000000000000000000000000000000000000000..049e94298da62ff42bb331b5122197fbb2932c0d GIT binary patch literal 3814 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 literal 0 HcmV?d00001 -- Gitee