Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP
RT-Thread bsp 提交自查
3.00
发布于 2021-08-26 14:19:52 浏览:1528
订阅该版
[tocm] 当一个 BSP 制作完成之后,需要提交者自查以下内容,这样 review 周期会大大缩短。以下所有要求不针对厂商提供的库文件驱动等等,但为防止库文件 ci 不通过,需要增加一个 `.ignore_format.yml` 文件到新的 bsp 路径(文件内容参照如下),加入库文件相对路径,将忽略检查该库文件的格式。例如: ``` # 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.png](https://oss-club.rt-thread.org/uploads/20210902/e5aa4f20def382d2213de0f2d0d0b67d.png) ## 代码规范部分 首先了解代码规范,可以查看 rt-thread 源码中的文档:https://gitee.com/rtthread/rt-thread/blob/gitee_master/documentation/coding_style_cn.md 举例代码格式要求: - 不允许中文注释 - 4 个空格缩进 - 大括号换行 了解上述链接中的代码规范之后,根据链接中的文档要求编写代码,代码格式可以使用 [astyle 格式化](# 格式化代码)。 ## readme 检查 是否清晰可读 1. 开发板的照片 2. 芯片资源的介绍中是否包含 FLASH,RAM(需要在 heap 配置时候检查大小,链接脚本是否配置正确) 3. 添加开发板资源的链接 4. 硬件连接是否清晰 5. 文档中英文之间添加空格,可以使用 vscode-pangu 插件一键格式化文档 6. 检查联系人信息,添加维护人自己的名字和 github 链接 ## 命名检查 函数、变量名: - 小写命名 - 不包含芯片厂商名,具体如下: 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. 没有多于一行的连续换行 ## 注释 注释格式如下,注释应该为英文注释,只允许放在 函数 / 语句 上方或右方 ``` /* xxx */ ``` ## license - 所有文件都要有 license 文件头 - 不能有 GPL 等与 apache 版权冲突的版权 - 非 apache 的兼容 license,需要更新 bsp 目录下的 license 声明:[Copyright_Notice.md](https://gitee.com/rtthread/rt-thread/blob/gitee_master/bsp/Copyright_Notice.md)。bsp 按照字母顺序排列。 ## 工程文件检查 - 若支持MDK5,应上传: ![image.png](https://oss-club.rt-thread.org/uploads/20210826/4b9b2fdf7c9010e821032fa79d162559.png) - 若支持IAR,应上传: ![image.png](https://oss-club.rt-thread.org/uploads/20210826/8a050d7e2c7f629bfbd1157d89272e25.png) ## 格式化代码 当所有的代码都写完之后,检查代码格式就比较麻烦了,此时可以使用 astyle 工具格式化代码。 astyle 格式化参数: ``` !E --style=allman --indent=spaces=4 --indent-preproc-block --pad-oper --pad-header --unpad-paren --suffix=none --align-pointer=name --convert-tabs --verbose ``` 如何使用 astyle 格式化代码:[《astyle 格式化代码方法》](https://blog.csdn.net/yang1111111112/article/details/104793319) ## 有没有经过测试验证 提交的 bsp 需要通过测试,并支持最基本的功能:uart 控制台,pin 设备。 最基本功能的效果: - 可以运行 finsh 控制台,可以输入命令; - 可以点灯。 ## 添加 bsp 到 CI - 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](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/development-guide/github/figures/cla.png) 再检查 ci 是否正常运行(ci 检查需要一段时间),有无报错信息,全部通过后显示如下: ![image](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/development-guide/github/figures/checkok.png) - 接下来等待 review 结果,有反馈需要修改的话,进行修改直到合并。
4
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
yangjie
hello
文章
2
回答
545
被采纳
133
关注TA
发私信
相关文章
1
STM32 407 串口接收数据 系统卡死
2
RTT nrf24l01 设备驱动程序
3
stm32f10x串口只能发送数据,无法接收
4
第一次尝试移植rt-thread 到stm32F103系列问题
5
有人把stm32L07xx的bsp移到rtt上来了吗?求一个
6
rt-thread线程调度异常在stm32f103芯片上
7
RTT是否支持STM32F429
8
请问谁有 STM32F40x HAL + RT-THREAD 模板
9
rt-thread在stm32f411下的移植问题
10
针对STM32F7系列平台的MPU,Cache特性,需要注意哪些问题?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部