为最大化代码复用和管理效率,除工程机械臂、硬件等特殊项目外,赛季内大部分嵌入式软件开发工作集中在此仓库进行。
| 模块 | 编译测试状态 |
|---|---|
| 舵轮底盘 | |
| 全向轮靶车底盘 | |
| 舵轮云台 | |
| 无人机云台 | |
| 2025赛季老哨兵 | |
| 测试平台云台 | |
| 镖架 |
-
CubeMX 6.15.0
-
STM32Cube FW_F4_V1.28.3
开发**严格执行**非侵入式原则,在 CubeMX 生成代码的基础上,所有用户代码均放置在 app/ 目录下,对 CubeMX 生成的代码仅做最小化的改动:在
main() 函数里调用用户程序的入口点 AppMain()。
app/ 目录包含 common/ 和 targets/ 两个子目录:
common/: 存放通用代码模块,这些模块会被所有目标共享使用。例如:“二轴云台控制器”、“定时任务执行器”这种所有兵种开发时都会用的模块,应放在此目录下。targets/: 存放特定“目标”的代码,每一块 C 板控制的一个实体称作一个目标。例如:“3 号老舵轮的底盘”、“新串腿底盘”、“某架无人机云台”称作一个目标。每个目标都有自己独立的代码目录,目录名即为目标名。
-
main:主分支,始终保持可编译、可运行状态。已设置保护规则,禁止直接 push。 -
target/<目标名>: 每个目标对应一个分支。例如target/steer_infantry_cs。大多数情况下每个目标都由一个人负责,如果有例外情况,要多人合作开发一辆车,自行协调分支规则。
-
每次开始在自己的分支上工作之前,先执行一次
git pull、git merge main,确保自己的分支是基于最新的main分支进行开发的。 -
merge main之后:如果有冲突,解决冲突;如果自己的代码break掉了,想办法修好;如果自己的改动把别人的代码break掉了,协商沟通,修好之后再继续工作。
-
阶段性完成工作,自己的分支稳定下来之后,立刻发起 Pull Request 合并回
main分支。