02 Code Architecture And Startup Process

文章更新版本

时间

备注

V1.0

发布于2019-10-30 17:30:53

初始版本

V1.1

更新于2020-01-13 11:10:16

修改app_main结构图

一、工程目录结构

1. 总目录结构

ESPlane2.0基于esp_idf release/v3.3 和Crazyfliemaster:commit 13aa1372bc3ba5b14922fc2f9d8999270882021a ([https://github.com/qljz1993/crazyflie-firmware.git).按照IDF编写风格,以组件的形式组织整个代码工程,其中main中包含app_main函数,用于启动整个工程.components文件夹包含工程中修改的一些esp_idf组件(未修改的组件默认从IDF_PATH查找),各个传感器驱动,硬件抽象层(hal),飞控程序模块(modules)等:](https://github.com/qljz1993/crazyflie-firmware.git%29.按照IDF编写风格,以组件的形式组织整个代码工程,其中main中包含app_main函数,用于启动整个工程.components文件夹包含工程中修改的一些esp_idf组件%28未修改的组件默认从IDF_PATH查找%29,各个传感器驱动,硬件抽象层(hal),飞控程序模块(modules)等:)

2. 驱动层

3. 硬件抽象层

硬件抽象层作为传感器驱动层与飞控程序层中间的桥梁,是该工程能够实现移植的关键,硬件抽象层包含以下文件:

4. 飞控程序层

飞控程序层是该工程的核心代码层,用于姿态计算,控制量计算,协议通信等,该层包含以下文件:

5. 扩展层

参见 03-Crazyflie代码模块化实现方法,Crazyflie工程挂载自定义驱动方法 -Deck drivers(esplane未完成该部分移植20191028)

二、代码启动过程

1. 系统启动过程

2. 关键TASK-自稳模式

3. 关键数据结构

最后更新于