首先将你的px4硬件同电脑链接(经过usb便可), 切换到px4源码目录。 cd Firmware/Tools
php
运行pythone脚本,同Nuttx的shell通讯 ./mavlink_shell.py /dev/ttyACM0
python
运行结果以下图所示: linux
这就是一个相似于linux的shell,由于他是Nuttx的shell,因此叫Nuttx shell,简称nsh。它的做用和其它操做系统的命令行没什么区别,都是用来对系统进行操做用的,敲击相应的命令,完成对应得任务,是一个很好的用户界面(知道操做系统的强大了吧!这是个在stm32上跑的系统,他还自带shell!),因此看px4代码千万不要有单片机main(),init(),while(1)的思惟,要站在操做系统层面看待px4。 下面我就具体来说讲这个nsh的使用: 用过shell的朋友,确定会想到我先打个help试试: shell
一看就知道了,这是nsh的命令,用过linux的应该很快就知道这些命令的意义了,像什么ls,cd,pwd,echo,rm啦都是在linux上常常使用的命令。事实上在Nuttx系统中这些命令的功能和在其余类Unix系统中是差很少的(由于确实有些命令功能不是那么强大,有些许不一样)。若是有些命令你以为功能不是很清楚,能够经过查看Nuttx实时操做系统的官网中Nuttx shell手册,查看详细功能(全英文,http://nuttx.org/doku.php?id=documentation:nuttshell,拉到网页最下面能够看到索引。)学习
那么Builtin App又是什么鬼呢? ui
其实就是Nuttx的一些内建程序,这些程序中大部分是px4团队为飞控写的控制程序(因此px4飞控不是一个单独的程序,而是由这几十个程序构成,每一个程序功能明确!)下面咱们就随便挑一个程序讲讲,好比ver,这是个判断硬件版本的程序。在nsh界面中输入ver,能够看到下面的输出,说咱们缺乏运行所带的参数,让我么输入相应参数。 操作系统
咱们就在输入:ver hw ,它就会输出板子的硬件版本。 .net
你能够试试其它程序,过程都是同样的,有的要带参数,有的不要,能够试试看,不会出什么问题的。 还有一个比较重要的东西,我以为我应该交代一下,就是Nuttx的文件系统,咱们能够经过命令来查看Nuttx系统中有哪些文件。 nsh界面输入:ls 命令行
能够看到输出了4个文件夹,由于篇幅缘由,我就不过多讲解了,主要讲讲这四个文件夹是作什么用的 dev文件夹下面是被系统抽象出来的驱动,你经过cd命令进去看,能够看到里面的文件都是对应硬件的名字,这也就是第二篇所讲的一切皆文件,经过读取这些文件就能够获取传感器和其它I/O设备的数据了。 etc文件夹是用户的是一些配置文件,和一些执行脚本(nsh执行的脚本),里面还有一些很重要的东西,后面我会讲到。 fs文件夹下面一个重要的文件夹就是microsd,这个就是px4硬件上的那张内存卡,他就被系统挂载在/fs/microsd下。 obj文件夹下面是px4团队为Nuttx开发的一个相似于操做系统进程通讯的东西,就是那个uorb(这个我也会在后面单独介绍一下,目前还不是很了解),你目前能够把里面的文件理解是用来供不一样进程间通讯的文件就好(相似于linux的管道文件)。code