Pixhawk固件Firmware源码结构分析
Pixhawk源码Firmware是一个内容庞大的文件夹,里面有许多的子文夹,代表着不同的功能模块。文件夹结构如下图所示:
图1 Firmware源码结构
图中列出了需要经常修改或查看的文件,其实还有部分文件夹使用较少,未画出。 此外还有以下几点需要强调:
build
文件夹是第一次编译的时候自动生成的,里面有可下载到飞控板的xxx.Pixhawk
和xxx.bin
文件;之后编译只会编译修改过的部分,因而第一次编译会很慢,后面再编译就快了。如果将源码文件拷贝到其它路径下的时候,需要删除build
文件夹,重新编译,不然原有的build
文件夹会找不到路径,或编译的还是拷贝前的源码。src
文件夹中:drivers
主要收录传感器驱动文件;examples
是一些demo文件;include,lib
是一些函数库文件,或者是其它模块调用的子功能模块文件;modules
主要是控制层相关文件,也是我们开发的主要对象;其余的子文夹涉及较少,后文若有需要再做详细说明;rcS
是系统的启动文件,里面有许多功能模块的启动指令;系统具体启动过程可参考下图(图源自阿木实验室):
图2-1 系统启动流程1
图2-2 系统启动流程2
- 大多情况下程序修改在
src
文件夹下中进行, 然后在cmake
文件夹下的xxx.cmake
文件中添加需要参与编译的文件夹,在ROMFS
文件夹下的rcS
文件中添加需要开机自启动的进程。