/**************************************************************************************************************

po上我使用到的硬件和开发环境

px4硬件:某宝销量最高的pixhawk套件(主机,gps+指南针,数传,pwm转pmm,安全开关,蜂鸣器,电源转换接头)

遥控器:某国产神器

开发环境:虚拟机vm12+ubuntu14

ps:此文章只针对纯代码分析,关于那些个飞机类型啦,硬件什么的我就不多说了,这个得自己去亲身体验才行,切不可贸然飞行,这个还是很危险的!!!!!

还有就是什么Git,Linux,make什么的也不会多说,毕竟只是工具属性。

获得更好支持可以访问http//:px4.io 我知道的大部分来自这个网站。

**************************************************************************************************************/

前面说到px4是基于Nuttx实时操作系统上开发的,那么Nuttx系统是怎么样的呢?px4又是怎么在Nuttx上运行的呢?本篇文章就向大家讲解一下Nuttx实时操作系统的使用。

首先将你的px4硬件同电脑连接(通过usb即可),并按照我在px4原生源码学习(1)所提到的那样,将px4同虚拟机内的ubuntu系统连接上。

切换到px4源码目录

  cd Firmware/Tools

运行pythone脚本,同Nuttx的shell通信

 ./mavlink_shell.py /dev/ttyACM0

我在运行这个python脚本的时候出现了一些问题,可能是脚本中用到了python 的组件pipe,所以你去安装pipe组件,安装组件的时候还是会出问题,你把那个问题百度一下安装缺少的依赖包,再去安装pipe就可以了

如果一切正常你应该可以看到以下画面:

熟悉linux的朋友应该能够猜出这是什么,对!这就是一个类似于linux的shell,因为他是Nuttx的shell,所以叫Nuttx shell,简称nsh。它的作用和其它操作系统的命令行没什么区别,都是用来对系统进行操作用的,敲击相应的命令,完成对应得任务,是一个很好的用户界面(知道操作系统的强大了吧!这是个在stm32上跑的系统,他还自带shell!),所以看px4代码千万不要有单片机main(),init(),while(1)的思维,要站在操作系统层面看待px4。

下面我就具体来讲讲这个nsh的使用:

用过shell的朋友,肯定会想到我先打个help试试:

从截图(截图并不完整)中我们可以看到我们输入help后的结果

首先是这些:

一看就知道了,这是nsh的命令,用过linux的应该很快就知道这些命令的意义了,像什么ls,cd,pwd,echo,rm啦都是在linux上经常使用的命令。事实上在Nuttx系统中这些命令的功能和在其他类Unix系统中是差不多的(因为确实有些命令功能不是那么强大,有些许不同)。如果有些命令你觉得功能不是很清楚,可以通过查看Nuttx实时操作系统的官网中Nuttx shell手册,查看详细功能(全英文)

po上地址:http://nuttx.org/doku.php?id=documentation:nuttshell

拉到网页最下面可以看到索引。

那么Builtin App又是什么鬼呢?

其实就是Nuttx的一些内建程序,这些程序中大部分是px4团队为飞控写的控制程序(所以px4飞控不是一个单独的程序,而是由这几十个程序构成,每个程序功能明确!)

下面我们就随便挑一个程序讲讲,比如ver,这是个判断硬件版本的程序。

在nsh界面中输入ver,可以看到下面的输出,说我们缺少运行所带的参数,让我么输入相应参数

我们就在输入:ver hw ,它就会输出板子的硬件版本

你可以试试其它程序,过程都是一样的,有的要带参数,有的不要,可以试试看,不会出什么问题的。

还有一个比较重要的东西,我觉得我应该交代一下,就是Nuttx的文件系统,我们可以通过命令来查看Nuttx系统中有哪些文件。

nsh界面输入:ls

可以看到输出了4个文件夹,因为篇幅原因,我就不过多讲解了,主要讲讲这四个文件夹是做什么用的

dev文件夹下面是被系统抽象出来的驱动,你通过cd命令进去看,可以看到里面的文件都是对应硬件的名字,这也就是第二篇所讲的一切皆文件,通过读取这些文件就可以获取传感器和其它I/O设备的数据了。

etc文件夹是用户的是一些配置文件,和一些执行脚本(nsh执行的脚本),里面还有一些很重要的东西,后面我会讲到。

fs文件夹下面一个重要的文件夹就是microsd,这个就是px4硬件上的那张内存卡,他就被系统挂载在/fs/microsd下。

obj文件夹下面是px4团队为Nuttx开发的一个类似于操作系统进程通信的东西,就是那个uorb(这个我也会在后面单独介绍一下,目前还不是很了解),你目前可以把里面的文件理解是用来供不同进程间通信的文件就好(类似于linux的管道文件)。

下一篇我将讲解如何为Nuttx编写一个我们程序猿入门一个平台的都会编写的程序。

px4原生源码学习三--Nuttx实时操作系统的使用相关推荐

  1. px4原生源码学习四--Nuttx 实时操作系统编程

    前面说到px4是基于Nuttx实时操作系统上的,那么px4也是由一些程序所构成,这些程序实现了飞行器的自主控制,只不过这些程序并不是我们通常所见到的单片机或者windows编程那样的程序,但基本编程思 ...

  2. px4原生源码学习二--实时操作系统篇

    /*************************************************************************************************** ...

  3. px4原生源码学习一

    接触px4代码有几天了,想把自己所学所想记录下来. px4就不过多介绍了,算得上目前使用的最广泛的开源飞控了.为什么说"px4原生代码学习呢",这还得追溯到被大疆干死的3DR,3D ...

  4. px4原生源码学习-(1)

    接触px4代码有几天了,想把自己所学所想记录下来. px4就不过多介绍了,算得上目前使用的最广泛的开源飞控了.为什么说"px4原生代码学习呢",这还得追溯到被大疆干死的3DR,3D ...

  5. 漂流瓶语聊视频文字聊天模式app软件原生源码定制开发

    漂流瓶语聊视频文字聊天模式app软件原生源码定制开发 功能首页: 1. 顶部是一个滚动信息条 2. 下面是大海和漂流瓶界面 3. 再往下是心动匹配和扔一个 4. 点击心动匹配之后,进入匹配页面,配对成 ...

  6. 2021最新4合1即时通讯IM源码-服务端+PC+WEB+安卓+IOS完整原生源码

    介绍: 20214合1即时通讯IM源码 服务端+PC+WEB+安卓+IOS完整原生源码 附完整开发文档+视频搭建教程. 注意:此源码亲测可用,他处有小问题,我们已经修复.任何源码,难免有瑕疵,但不影响 ...

  7. 修改meta标签 查看源码没效果怎么办_Spring 源码学习(三)-自定义标签

    又来填坑啦,上一篇讲完默认标签的解析,这篇笔记记录一下自定义标签的解析吧. 我们知道,Spring 源码的核心模块是 Spring-core 和 Spring-beans,在此基础上衍生出其他模块,例 ...

  8. dubbo源码学习三—暴露服务exporter、invoker

    前面我们知道通过自定义标签,我们可以定位到相关标签的解析,同时梳理出三个重要的bean:ServiceBean.ReferenceBean.ConfigCenterBean. 通过Servicebea ...

  9. [spring源码学习]三、IOC源码——自定义配置文件读取

    一.环境准备 在文件读取的时候,第9步我们发现spring会根据标签的namespace来选择读取方式,联想spring里提供的各种标签,比如<aop:xxx>等应该会有不同的读取和解析方 ...

最新文章

  1. 【非专业评测】发蜡、发膏、发泥、发油、啫喱、发膜、发胶、干胶、发棒、摩丝
  2. corosync+pacemaker实现高可用(HA)集群(二)
  3. Avdshare Audio Converter 7中文版
  4. Django框架之DRF 基于mixins来封装的视图
  5. wxWidgets:wxSplitterWindow 示例
  6. 常见硬件设计的EDA工具
  7. 电路设计之干扰问题总结与分析
  8. 2019 ACM/ICPC 全国邀请赛(西安)J And And And (树DP+贡献计算)
  9. babel-preset-env使用介绍
  10. Windows server 2003 ××× 配置实例(Site to Site)
  11. [Hive]-架构篇
  12. 【语音合成】基于matlab比例重叠相加法信号分帧与还原【含Matlab源码 561期】
  13. ETL工具-Kettle Spoon教程
  14. ABBYY软件对PDF文本审阅操作之盖章
  15. carte集群的搭建笔记
  16. Oracle学习篇章一——基础
  17. PTF渗透测试框架使用
  18. IT领域唯一的国家级证书,积分落户、评职称、抵个税...
  19. 可以ping通外网,ping不通内网,同时可以Ping网关,但是外部ping不到IP
  20. 控件的移动事件和双击事件

热门文章

  1. 作为我的第一篇csdn博客吧
  2. squirrelsql安装
  3. iframe有那些缺点
  4. BPM实例方案分享:表单子表自动填入数据
  5. iOS开发——多线程篇——GCD
  6. 移动端下网页border:1px显示
  7. 所谓的二维背包Triangular Pastures POJ 1948
  8. UML轻松入门--类和对象
  9. [JSP暑假实训] 一.MyEclipse安装及JAVA基础知识
  10. 【数据结构与算法】之深入解析“分割回文串”的求解思路与算法示例