4 Star 18 Fork 19

qdu-rm-2022 / qdu-rm-mcu

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CONTRIBUTING.md 3.01 KB
一键复制 编辑 原始数据 按行查看 历史
曲燊 提交于 2021-08-29 18:27 . 更新代码贡献指南

如何贡献代码

感谢你阅读此文档,现阶段代码主要由战队队员修改,但是欢迎大家提出意见和建议。此文档主要为指导队员如何提交自己的代码。

测试

现阶段并没有软件测试,所有功能必须在机器人或MCU上测试之后提交。

提交代码更改

请在仓库(Repo)中提交Pull Request(PR)来提交你的修改。PR必须要有清楚的描述。

Commit的日志必须要清楚地描述改动。小改动允许日志只有一行,但是大的改动最好有多行日志来详细描述。推荐使用VS Code内置的工具来操作Git

风格指南

阅读代码和README来了解整个代码的结构。为了更好的可读性:

添加新的CLI命令

添加到CLI的命令可以说是调试时候使用的,也可以是运行时使用的,也可以是教学时帮助理解的实验。具体可以参考添加判断字节顺序的实验FreeRTOS CLI官方教程

添加新的开发板

需要修改的文件夹有src/bsp

  1. cmake中添加board_xxx.cmake,内容参考其他以board_开头的.cmake文件
  2. src/bsp中与现有开发板并列添加一个文件夹。例如rm_b(代指RoboMaster开发板B型)。
  3. 参考bsp中头文件,在rm_b中添加对应的源代码文件。
    • 在头文件中不能实现的功能,需要加宏定义来根据不同的开发板来编译。例如led.h中针对不同板子定义了不同的LED功能。

添加新的组件

步骤:

  1. src/component新建一对文件xx.cxx.h

添加新的设备(传感器、执行器等)

需要修改的文件夹有device

步骤:

  1. src/device新建一对文件xx.cxx.h

注意事项:

  • Device里的设备只能在thread里使用,因为数据的读取需要用到任务同步机制。

添加新的模块

模块是指不同于底盘、发射器、云台的部分机器人机构,例如工程机器人的执行机构。这里假设已经完成所需要的传感器和执行器的添加。

  1. src/module添加一对文件xx.cxx.h,实现功能的抽象。
  2. src/thread添加对应的线程运行模块。

添加任务

需要修改的文件夹有src/thread

  1. thread新建文件xx.c
  2. thread/user_task.h中添加任务函数的声明Thread_Xxxx

注意事项

  • vTaskSuspendAllxTaskResumeAll中间不能有可能导致任务切换的函数,例如操作消息队列。
  • 如果任务不需要运行多个实例,则尽量将任务变量放置到任务函数外。
  • extern 只能用在头文件中,可以修饰变量(这意味着必须在源文件中声明变量,原则上不使用)

万分感谢

青岛大学 未来战队

C
1
https://gitee.com/qdu-rm-2022/qdu-rm-mcu.git
git@gitee.com:qdu-rm-2022/qdu-rm-mcu.git
qdu-rm-2022
qdu-rm-mcu
qdu-rm-mcu
2023

搜索帮助