crazyflie:工程目录分析

概述

本文主要说明crazyflie项目的软件框架

目录结构

下图所示是飞控项目的目录结构,项目中的包含文档说明、代码测试、项目所需的开源项目、飞控源码、编译工具和输出文件等。
crazyflie:工程目录分析

[doc]

包含项目相关的说明文档,主要说明项目编译方式、CRTP包说明、扩展板开发说明等。

[blobs]

包含灯塔固件。

[generated-test]

包含产生测试文件的脚本,但是从仓库拉取下来是空的。

[test]

包含各个模块的测试用例文件。

[vender]

包含项目所依赖的其它项目文件,

  • cmock:用于项目的mock测试;
  • unity:用于项目的单元测试;
  • CMSIS:用于实现Cortex-M 系列处理器与供应商无关的硬件抽象层;
  • FreeRTOS:用于实现系统的任务调度和消息管理;
  • 无线定位驱动开源库libdw1000,用于驱动dw1000芯片,实现室内定位功能。

[src]

包含飞控相关的源文件,具体说明如下:

  • drivers:目录包含实现硬件底层驱动的文件,实现主控芯片外设驱动和外部芯片驱动的开发;
  • hal:目录包含对硬件抽象的功能文件,将系统的某些硬件抽象成功能模块;
  • modules:目录包含所有的功能模块,包括CRTP通信模块、姿态估计模块、位置控制模块、姿态稳定控制模块和传感器融合模块等;
  • lib:目录包含供应商相关标准开发库、文件系统库等;
  • utils:目录包含可以公用的实用程序,如CRC校验、滤波等;
  • platform:目录包含平台配置的相关文件;
  • deck:目录包含扩展板接口文件;
  • config:目录包含系统配置相关文件;
  • init:目录包含主函数文件;

[tool]

包含编译源文件相关的脚本;

[bin]

包含编译生成的输出文件;