第二章第一节——介绍和软件架构
飞控开发基本架构。
ArduPilot的基本架构被分成5个主要部分:
vehicle directories。
AP_HAL。
libraries。
tools directories。
external support code。
- vehicle directories(模型类型)。
当前共有4种模型:ArduPlane, ArduCopter, APMrover2 和 AntennaTracker。
AP_HAL(硬件抽象层)。
该AP_HAL层(硬件抽象层)是我们如何让ArduPilot移植到许多不同的平台。有一个在库一个顶级AP_HAL/ AP_HAL定义的代码的其余部分有特定板的功能接口,然后有一个AP_HAL_XXX子目录每块板的类型,例如用于AP_HAL_AVR基于AVR板,AP_HAL_PX4的PX4板和AP_HAL_Linux基于Linux的板。
tools directories(工具目录)。
这些工具目录是杂项支持目录。
external support code(外部支持代码)。
在一些平台上,我们需要外部支持的代码,以提供额外的功能的支持。目前,外部支持代码:
PX4NuttX – NuttX RTOS的内核。
PX4Firmware – PX4中间层固件和驱动程序。
uavcan – can通信协议。
mavlink – mavlink协议。