概述
本文主要分析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]
该目录包含编译生成的输出文件;