pixhawk 学习总结2

Pixhawk编译环境搭建好,接下来就是要看APM源码了。介绍给大家一款非常好用的程序编辑器软件source insight,在windows下看源码是最好不过了。

飞控系统是一套庞大的系统,要理解一整套的流程的话,是要经过一番折腾才行。我的角度是用linux的分层架构去分析的,接下来就是我看代码所理解和整理的飞控架构。

飞控架构分为3层:飞行控制栈(主要是姿态的控制)和HAL(硬件抽象层)属于顶层应用,实时操作系统(nuttx)和底层驱动属于底层,还有就是引导系统启动的bootloader。

我所负责的是底层和bootloader,现在就来说说流程吧,从bootloader说起。

一.Bootloader源码:CPU启动过程

1.上电启动:EXTERN (vector_table)

1)初始化堆栈指针 .initial_sp_value = &_stack,

2)硬件错误为阻塞 .hard_fault = hard_fault_handler,

3)中断控制器 .irq = { IRQ_HANDLERS }

4)系统的复位入口函数 .reset = reset_handler,

2.入口函数:ENTRY(reset_handler)

1)定义数据段 .data和.bss

2)pre_main()(开启协处理器)

3)main()

3.main函数:main(void)

1)board_init()(开发板的初始化)

2)bootloader()(nuttx系统的设置)

3)jump_to_app()(测试引导nuttx系统)

二.APM的源码:nuttx系统的启动

1.bootloader引导进入.vectors向量表:stm32_vectors.S

1)定义堆栈的大小

2)定义STM32的中断向量表

3)入口函数是ENTRY(__start)

2.入口函数是ENTRY(__start)

1)stm32的配置和初始化

2)nuttx系统的入口函数os_start()

3.系统入口函数os_start()

1)nuttx系统的初始化

2)nuttx系统的启动进程os_bringup()

4.系统的启动进程os_bringup()

1)创建内核进程

2)创建用户进程

a.创建init进程(main_t)CONFIG_USER_ENTRYPOINT

IO板 : CONFIG_USER_ENTRYPOINT =user_start

Fmu板:CONFIG_USER_ENTRYPOINT = nsh_main

5.IO板系统进程入口函数:user_start(没有使用根文件系统)

6.fmu板系统进程入口函数:nsh_main(根文件系统binfs)

pixhawk飞控架构相关推荐

  1. pixhawk 整体架构的认识

     此篇blog的目的是对px4工程有一个整体认识,对各个信号的流向有个了解,以及控制算法采用的控制框架. PX4自动驾驶仪软件可分为三大部分:实时操作系统.中间件和飞行控制栈. 1.NuttX实时 ...

  2. pixhawk飞控解锁方法

    1.  pixhawk飞控解锁方法是:油门(throttl)拉到最低,偏航角(yaw)拉到最右边.

  3. PIXHAWK飞控的外部控制

    PIXHAWK飞控可以运行PX4原生固件和APM固件,我这里用的是PX4原生固件,因为这款固件是专门为PIXHAWK量身打造的,两者合起来性能更强.不过据说APM固件因为其比较完善,更加稳定,但是PX ...

  4. Pixhawk飞控代码(2019.11.28)

    此代码为Pixhawk飞控的代码,分享给飞控爱好者,如果代码版本过老请在Github上自行下载 链接:https://pan.baidu.com/s/1XNHjDc1yBhWiluK7lyMH0w 提 ...

  5. 图文并茂详细教程之——用pixhawk飞控组装一台S500四轴无人机(下)(苍穹四轴)

    摘自:https://mp.weixin.qq.com/s?__biz=Mzg2NDI0MzU5NA==&mid=2247484117&idx=1&sn=ac0c6b1a99b ...

  6. 图文并茂详细教程之——用pixhawk飞控组装一台S500四轴无人机(中)(苍穹四轴)

    摘自:https://mp.weixin.qq.com/s?__biz=Mzg2NDI0MzU5NA==&mid=2247484086&idx=1&sn=028fda952f1 ...

  7. 图文并茂详细教程之-- 用pixhawk飞控组装一台F450四轴无人机(下)

    摘自:https://mp.weixin.qq.com/s/1vXfYPgaQEkXLfpSnjJqAw 图文并茂详细教程之-- 用pixhawk飞控组装一台F450四轴无人机(下) CJKK 苍穹四 ...

  8. PixHawk飞控和Mission Planner地面站安装调试

    PixHawk飞控和Mission Planner地面站安装调试 PixHawk是著名飞控厂商3DR推出的新一代独立.开源.高效的飞行控制器,前身为APM飞控,不仅提供了丰富的外设模块和可靠的飞行体验 ...

  9. PixHawk飞控 配置参数

    PixHawk飞控 PixHawk是著名飞控厂商3DR推出的新一代独立.开源.高效的飞行控制器,前身为APM飞控,不仅提供了丰富的外设模块和可靠的飞行体验,有能力的爱好者还可在其基础上进行二次开发.第 ...

最新文章

  1. 第三天·HTML常用标签
  2. hibernate xml配置文件
  3. 图像降噪算法——时域降噪算法
  4. 5.Loops and List Comprehensions
  5. C++中operator的两种用法
  6. java分页插件PageHelper的内置list数据操作失败
  7. [linux 命令笔记] kill
  8. 机器学习 - 损失计算-softmax_cross_entropy_with_logits
  9. 企业数字化劳动力-Srise RPA产品
  10. php中reset()函数,php reset()函数 语法
  11. nodejs+express留言板功能实现
  12. matlab 最舒适的背景配色
  13. 光猫接交换机,交换机下接无线路由器,电脑网线连接交换机进不去无线路由器后台是为什么?
  14. Android安卓自带的 WebView 浏览器内核更新
  15. mysql root有初始密码_mysql的root初始密码
  16. Spring-AOP模块的Advised分析
  17. mapboxgl - 用webgl展示海量数据,是否可行?
  18. 开发的一些 h5 游戏
  19. ARM-CPU工作原理,基于ARM的SOC讲解
  20. 实训报告:DHCP服务器的启用和配置

热门文章

  1. 关于SBAS-InSAR中数据裁剪的问题
  2. 实验二、8位流水灯电路设计
  3. 前后端分离 ajax请求后台重定向
  4. Java用i74G的显卡_【省钱日记】第5期,二手RX560 4G显卡+老i7,实测体验分享
  5. 联通保定服务器稳定吗,保定联通5G网络正式开通!贴心“秘籍”教您5G网络的正确打开方式...
  6. J2EE Java黑客大曝光:开发安全的Java应用程序
  7. ppt计算机考试总结,计算机二级PPT考点与做题技巧汇总
  8. 基于Mininet,搭建简单的sFlow测试环境
  9. 【强化学习】解决gym安装Atari2600环境gym[atari,accept-rom-license] RuntimeError 无法下载Roms的问题
  10. abas ERP中现金日记账模块的应用