PX4源码分析5_PX4启动流程

PX4源码分析5_PX4启动流程,第1张

上电之后程序入口为Firmware/NuttX/nuttx/arch/arm/src/stm32/stm32_start.c中的__start函数,负责stm32芯片的底层初始化,包括是时钟,GPIO等。

<br />

__start函数调用Firmware/NuttX/nuttx/sched/os_start.c中的os_start函数,负责os的底层初始化,包括队列和进程结构等。

<br />

os_start函数调用Firmware/NuttX/nuttx/sched/os_bringup.c中的os_bringup函数,负责os基本进程的启动和用户进程的启动。用户启动入口由CONFIG_USER_ENTRYPOINT宏定义进行指定。

<br />

FMU和IO的启动入口不同,分别为:

(1)FMU中CONFIG_USER_ENTRYPOINT宏定义为nsh_main:

[1] 调用nsh_main函数。

[2] nsh_main函数调用Firmware/NuttX/apps/nshlib/nsh_consolemain.c中nsh_consolemain函数。

[3] nsh_consolemain函数调用nsh_initscript函数。

[4] nsh_initscript函数所执行的脚本即为FMU的启动脚本rcS。

[5] rcS脚本中负责挂载Sd卡,启动uorb,加载参数配置文件,启动dataman数据管理,启动各传感器,commander,执行rc.io,执行rc.interface(混控器),执行rc.mc_app(飞控姿态与位置算法)等。

(2)IO中CONFIG_USER_ENTRYPOINT宏定义为user_main:

调用src/modules/px4iofirmware/px4io.c中的user_start函数,负责IO基础环境的初始化,包括PWM,串口,ADC等,最后进入死循环,用于遥控器输入和与FMU通信的内容。

px4官网。

如果是正版windows系统,连接pixhawk飞控板,在设备管理器的端口下会有PX4FMU(COMX)出现。

配置文件,主要使用nuttx_px4fmu-v2_default.cmake。该处主要是关于系统使用的文件的路径配置,在PX4系统所有的.CPP和.C文件都是通过在该处进行路径包含的。在需要自己创建私有任务或者sensor驱动程序时需要添加到该处。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11758910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存