Skip to content

常见问题 代码与架构

liuzikai edited this page Jul 13, 2021 · 2 revisions

目录

选用 ChibiOS 的原因

  • 包含 HAL 硬件抽象层,避免使用体验不佳的 Cube
  • 一定程度上支持 C++(主要是线程,可以实现更好的封装。类 C API 依然被广泛使用)

选用 C++ 而不是 C 的原因

  • 主要是模块化
  • 只使用类的特性,避免标准库、STL 等,运行效率不比 C 差

使用多个线程的原因

充分利用运算资源,无需手动调度,且每个线程分工明确,逻辑更加清晰

模块化的目的

  • 逻辑清晰:模块职责明确,便于维护
  • 便于单元测试

各机器人在一个工程中编写

  • 许多底层代码是共同的
  • 复用代码:一些模块预留一些接口(如初始化参数等),以更好的实现代码服用。复用可以减少代码量、减少Bug、减少更新成本、提升抽象等级

编写启动自检的目的

避免因接触不良、错接造成的问题

编写启动音的目的

便于确认程序重启和就绪,在烧录程序时,或程序意外重启时

设置各种“方向参数”与“安装参数”的目的

  • 明确、统一坐标系,避免玄学换方向
  • 提升代码通用性,减少机械结构更改导致的代码修改成本
Clone this wiki locally