pixhawk软件分析之代码框架与文件结构

原创 2016年08月30日 15:51:28

pixhawk软件分析之代码框架与文件结构

本文是在pixhawk的V1.4.1的代码基础上进行分析,更新的版本的代码目录的结构可能会有一些不同,毕竟pixhawk的代码版本更新是比较活跃的。
下图是px4的设计思想:
architure
从图中可以看出上层的功能模块程序和下层的驱动程序分离,通过uORB进行数据之间的通讯,而Nuttx只是进行任务的管理和系统的维护。这样能够给驱动或功能的修改和添加,或实现跨平台的移植都带来方便。

下图firmwareV1.4.1的主要目录结构:
dir_architecture
在firmware目录下cmake是编译工具;
build_px4fmu-v2_default是在编译后产生中间静态文件和最终生成的下载文件;
Tools文件夹下有一些工具,比如说下载工具。
mavlinek是mavlink工具包
Nuttx是包含的Nuttx操作系统源代码,还有nuttx-config这个nuttx的配置文件,以及还有ROS机器人操作系统的一些文件夹,这里就不只要介绍。这里主要介绍px4的源代码文件放置的src文件夹以及ROMFS文件夹下的启动文件。
src文件夹下一层文件目录如图所示:
systemcmds:主要放置了系统工具,能够通过启动文件启动或在nsh中去调用的工具。其中包括控制I2C,查看修改参数,查看软件版本,校准电调、查看系统性能、bootloader升级等工具。
platforms:下面只要是定义了px4平台的系统接口方便和nuttx操作系统分离,这样方便移植到其他平台。
drivers:这下面的好几级目录再下面在进行分级介绍。
boards:px4fmu-v2目录下面定义了这个型号的板子的接口配置以及相应配置接口(LED、PWM、USB、定时器等的配置)
drvers:外设的基类定义(I2C、SPI和一些ringbuffer等)。
stm32:中包括adc的基类、高精度定时器、伺服控制的驱动程序
其他的文件主要是下层传感器或者执行器的驱动程序。
modules:下面分了很多文件夹,这些文件夹各自是不同的模块,这就是最上层的功能模块包括commder、navigator、mc_att_control、mc_pos_control等。
lib:这里边包括了平台使用的库文件,比如数学工具库、地理坐标转换工具库、RC信号解码的库等。

下图是上层应用模块软件控制的结构图:
software_architecture
我们能够清晰的看到从用户到执行的控制逻辑。

下图是估计和控制的结构图:
estimation_architecture

下图是GCS(地面站)通过mavlink通讯协议来控制飞行器的结构图:
communication_architecture

下图是控制模式的流程图:
flight_mode

参考:
[1]http://dev.px4.io
[2]https://github.com/PX4
[3]http://blog.csdn.net/czyv587/article/details/51627787?locationNum=10

版权声明:本文为博主原创文章,未经博主允许不得转载。

代码图形分析工具Understand

下面是转载:http://www.codemx.cn/2016/04/30/Understand01/ 的文章,他是用mac版本,我们也可以使用Windows版本的,可以到: http://down...

流行软件架构代码技术分析

1.       系统架构或软件架构的定义 系统架构(Framework 或Architecture)或软件架构的定义很难明确。在面向对象范畴中,就是通过若干类、抽象类及其接口有机组成的软件系统,其...
  • wzhibin
  • wzhibin
  • 2011年11月07日 12:35
  • 6607

代码包结构分析工具JDepend的使用方法

JDepend可以对Java软件包结构质量进行分析,已经有很多文章介绍其基本作用和能够计算的指标了,这里我就不详细总结,感兴趣的朋友可以参看如:http://blog.csdn.net/hantian...
  • qysh123
  • qysh123
  • 2017年01月23日 16:03
  • 447

代码分析工具推荐Understand

之前看ogitor ,第一次看到那么多代码~~不知道从哪里下手,而且好多东西都不会Ogre什么的都不是很清楚,对ogitor的代码结构的了解就更不用提了。晕头转向的不知道从哪里下手,一点点的看起来好吃...

静态代码分析工具汇总

静态代码扫描,借用一段网上的原文解释一下(这里叫静态检查):“静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。代码检查代码检...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

PIXHAWK源码分析之二—Hello Sky(PIXHAWK读取姿态数据并且显示)

阿木社区玩也要玩的专业,转载请注明出处!http://www.amovauto.com/?p=905 QQ群:526221258    我们先放开那些复杂的数学算法,向卡尔曼滤波,四元函数什么的...

pixhawk模块添加和修改以及经验分享

我看了apm的代码半年,px4的代码也看了一段时间,把我在这个过程遇到的问题和大家分享一下,我觉得有些人也会遇到同样的问题,给这部分人一点提示。谢谢大家。   首先还是先从apm讲起,它是由一群无人...

Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)

一、开篇         姿态控制篇终于来了、来了、来了~~~         心情爽不爽?愉悦不愉悦?开心不开心?         喜欢的话就请我吃顿饭吧,哈哈。         其实这篇blog一...

图解程序员画流程图、数据结构图及各种复杂图形的Graphviz工具入门

画linux内核文件系统结构图、内存分配以及学习数据结构树、图时,发现使用Graphviz非常的方便快捷。鉴于网上关于它的安装、使用不是特别具体,本博文将一步步告诉大家如何快速地使用Graphviz画...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pixhawk软件分析之代码框架与文件结构
举报原因:
原因补充:

(最多只允许输入30个字)