PX4-10-系统启动流程

很多同学在开始接触PX4的时候,遇到的第一个问题是这个程序是如何启动的,main函数在哪里。这一篇我们简单的聊一下PX4的启动流程。

初学c语言对RTOS不是很熟悉的同学对main函数都有着不一般的执着,阅读代码时总是回去找程序的main函数,然后从入口处开始阅读。

实际上我们接触的所有软件程序,使用到的main函数都不是程序实际开始运行的入口,只是用户程序的入口而已。从这个角度而言,PX4的每个任务的main函数都是该任务的入口。

这一篇我们分析一下PX4是如何从单片机的启动汇编入口引导到应用任务启动的。

与上一篇文章相同,图表是体现关系结构最好的方式,直接绘制了PX4的启动流程图。

分为两个部分,第一部分为Nuttx的启动,到加载nsh启动脚本;第二部分为PX4启动脚本的执行,用于启动PX4的所有应用程序

第一部分Nuttx的启动流程如图所示:

到这里为止即完成了Nuttx系统的启动,程序执行到加载启动脚本,后面即是PX4应用的启动。

第二部分PX4启动脚本的执行流程图如图所示:

图表采用plantuml绘制,如果需要图表源码的同学可以关注我的公众号,在下方留言 PX4启动流程 获取

我的微信公众号,文章同步更新,欢迎关注。

微信公众号