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