常见问题 代码与架构 - Meta-Team/Meta-Embedded GitHub Wiki
目录
- 选用 ChibiOS 的原因
- 选用 C++ 而不是 C 的原因
- 使用多个线程的原因
- 模块化的目的
- 各机器人在一个工程中编写
- 编写启动自检的目的
- 编写启动音的目的
- 设置各种“方向参数”与“安装参数”的目的
选用 ChibiOS 的原因
- 包含 HAL 硬件抽象层,避免使用体验不佳的 Cube
- 一定程度上支持 C++(主要是线程,可以实现更好的封装。类 C API 依然被广泛使用)
选用 C++ 而不是 C 的原因
- 主要是模块化
- 只使用类的特性,避免标准库、STL 等,运行效率不比 C 差
使用多个线程的原因
充分利用运算资源,无需手动调度,且每个线程分工明确,逻辑更加清晰
模块化的目的
- 逻辑清晰:模块职责明确,便于维护
- 便于单元测试
各机器人在一个工程中编写
- 许多底层代码是共同的
- 复用代码:一些模块预留一些接口(如初始化参数等),以更好的实现代码服用。复用可以减少代码量、减少Bug、减少更新成本、提升抽象等级
编写启动自检的目的
避免因接触不良、错接造成的问题
编写启动音的目的
便于确认程序重启和就绪,在烧录程序时,或程序意外重启时
设置各种“方向参数”与“安装参数”的目的
- 明确、统一坐标系,避免玄学换方向
- 提升代码通用性,减少机械结构更改导致的代码修改成本