Pixhawk---基于NSH的Firmware开发与调试
1 相关知识了解
1.1 Nuttx系统
嵌入式实时操作系统(RTOS)。
强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性。NuttX 主要遵循 Posix 和 ANSI 标准,对于在这些标准下不支持的功能。或者不适用于深度嵌入环境的功能(如 fork()),採用来自 Unix 和常见 RTOS (如 VxWorks)的额外的标准 API。
支持文件系统、设备驱动、网络、USB支持、Flash支持、图形支持等。
1.2 NSH
NuttShell和Unix终端命令相似。NSH通过串口或者USB转串口来与PX4FMU交互,因此能够使用相似超级终端的串口软件来与FMU交互。在Pixhawk开发中,建立好了开发环境后(安装了工具链等),PX4 Toolchain 已经附带了一个串口工具:TeraTerm。假设版本号低了。能够单独去下载这个软件并安装。
在PX4FMU中,NSH默认是通过USB转串口和串口5(波特率为57600)来交互。能够更改默认设置。
将Pixhawk通过USB转串口连接上电脑上后,再打开TeraTerm软件。通过输入『?
』或『help』指令能够查看当前NSH支持的指令已经编译好的应用。其它的一些指令跟Unix终端中使用方法几乎相同,只是一些指令的參数都没有了。
通过串口5的交互能打印PX4FMU启动时的一些信息。这个能够用来查看系统启动方面的信息。
当然启动完后,还能够输入一些指令来与PX4FMU来交互。
2 编译固件和刷固件
刷固件的方式非常多,能够通过地面站软件QGC或者MP都能够刷固件,能够刷稳定版的固件或者自己编译出来的自己定义固件。这里通过PX4 Console来编译固件和刷固件。打开控制台。进入到固件目录:
cd /d/px4/firmware
删除全部编译的文件,包含编译的操作系统,即删除Archives目录和Build目录里面的内容一般不使用:
make distclean
编译操作系统:
make archives
一般仅仅有当Nuttx配置改变了或者submodule(在GIT中链接外部库,比方MAVLINK或者Nuttx OS)发生了改变才会去编译操作系统,平时编译一次就好了,并且这个编译一次是须要非常长的时间的,一个小时左右吧。虽然并行编译会加高速度,可是配置不好。并行编译非常easy在系统执行的过程中出问题。
假设你使用苹果系统或者Linux系统,这个时间也会大大减少。
删除编译的固件相关文件,即删除Build目录里面的内容:
make clean
编译固件。以px4fmu-v2_default版本号为例:
make px4fmu-v2_defaul
编译并刷固件,编译完后紧接着刷固件:
make upload px4fmu-v2_default
在控制台上用到上面的指令就几乎相同了。
3 调试方式
3.1 測试小功能程序
由于在window
posted on
2017-06-26 18:40
slgkaifa
阅读(...)
评论(...)
编辑
收藏
Pixhawk---基于NSH的Firmware开发与调试的更多相关文章
- 基于.Net C# 通信开发-网络调试助手
基于.Net C# 通信开发-网络调试助手1.概述 网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计.开发.测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发 ...
- 基于.Net C# 通信开发-串口调试助手
基于.Net C# 通信开发-串口调试助手 1.概述 串口调试助手,广泛应用于工控领域的数据监控.数据采集.数据分析等工作,可以帮助串口应用设计.开发.测试人员检查所开发的串口应用软硬件的数据收发状况 ...
- 基于socket开发网络调试助手
1.什么是Socket? 在计算机领域socket被翻译为套接字,它是计算机之间进行通信的一种方式,通过socket这种约定,一台计算机可以向另外一台计算机发送数据和接收数据. 2.Socket的本质 ...
- 使用VS Code 从零开始开发并调试.NET Core 应用程序
最新文章:http://www.cnblogs.com/linezero/p/VSCodeNETCore.html 使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试. 上一 ...
- 最新基于adt-bundle-windows-x86的android开发环境筹建
最新基于adt-bundle-windows-x86的android开发环境搭建 某系统要配套做一个android客户端,来一次android开发环境快速搭建,系统Win7,具体步骤如下: 1.下载j ...
- 自定义控件开发的调试及DesignMode的状态处理
在开发Winform程序的时候,我们往往需要根据需要做一些自定义的控件模块,这样可以给系统模块重复利用,或者实现更好的效果等功能.但在使用的时候,我们又往往设计时刻发现一些莫名其妙的错误,那么我们该如 ...
- 开发并调试 Mail Add-in
开发并调试 Mail Add-in (mail app for Outlook) 准备工作 如果你的邮箱搭建在 Exchange Server 上,则可以创建邮件应用程序(Mail Add-in)来扩 ...
- 基于Eclipse的Android开发环境搭建
1. Java开发环境搭建 1.1 JDK下载安装 JDK(Java Development Kit )是针对Java开发人员发布的软件开发工具包.JDK 是整个Java的核心,包括了Java运行 ...
- 基于IDEA的JavaWeb开发环境搭建
基于IDEA的JavaWeb开发环境搭建 基于IDEA的JavaWeb开发环境搭建 jdk下载安装配置环境变量 下载 安装 配置环境变量 下载安装激活使用IntelliJ IDEA 下载 安装 激活 ...
随机推荐
- 3-3 第三天 Promise 如何使用
回调的方式来处理异步,目的是要保证一个执行顺序,先完成什么再去完成什么,它们的作用其实是相同的,显然回调更容易来书写,但是它难以维护,很容易遗漏错误处理代码而且无法使用return语句来返回这个值. ...
- pythonOCC版 瓶子代码
#!/usr/bin/env python # -*- coding:utf-8 -*- ##Copyright 2009-2015 Thomas Paviot (tpaviot@gmail.com) ...
- BZOJ 4403 2982 Lucas定理模板
思路: Lucas定理的模板题.. 4403 //By SiriusRen #include <cstdio> using namespace std; ; #define int lon ...
- java中的访问修饰符2
综上所述:protected强调的是子类,deafult强调的是本包,private强调的是本类,public强调的是开放性.
- SSRS 报表 如何加参数
SSRS 报表 如何加参数 连接上以后出现一个问题 就是给报表加上参数以后报表不断刷新,跟上次那个报表刷新是同样的问题.那么下面我们来解决一下. 1. 这是给报表添加默认参数进入页面后就不断的刷新刷新 ...
- YCbCr to RGB and RGB toYCbCr
RGB => YCbCr: Y = 0.299R + 0.587G + 0.114BCb = -0.1726R - 0.3388G + 0.5114B + 128Cr = 0.5114R - 0 ...
- idea下的jsp开发中cannot resolve taglib with uri的解决方法
写jsp难免会用到<c:foreach>标签,于是我在idea上的jsp顶头写下了 <%@ taglib prefix="c" uri= 'http://java ...
- 常用MySql命令列选
常用MySql命令列选 命令 参数 含义 alter 数据库,表 修改数据库或表 backup 表 备份表 \c 取消输入 create 数据库,表 创建数据库或表 delete 表和行的表达式 ...
- Thread pool引起的程序连接数据库响应慢
数据库版本:percona-mysql 5.6.16 在很长一段时间,都会出现程序连接数据库,出现响应慢的情况,正常在几到几十毫秒之间,但是偶尔会出现上百毫秒的情况: 开始由于开发重新设置并调整过程 ...
- 深入jar包:从jar包中读取资源文件
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...