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 下载 安装 激活 ...
随机推荐
- new一个接口
首先我们先看看接口的定义: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方 ...
- jQuery不熟点总结
jQuery 事件 1 .trigger() 方法触发被选元素的指定事件类型. 2 .delegate() 事件委派 1.不占内存2.可以给未来元素(后期动态添加的元素)添加事件. 2. 添加元 ...
- NPOI导出功能
利用NPOI组件将数据中想要的数据导出到excel表格中. demo如下 using System; using System.Collections.Generic; using System.Li ...
- javascript 将单词首字母大写,其余小写
// 1 别人写的,我拿来参考了一下 function titleCase(str) { var array = str.toLowerCase().split(" "); for ...
- 【MFC】虚拟键代码
一:首先介绍键盘消息 系统消息: ALT,F1,——F24等,是由系统内部处理的,程序本身就存在,比如F1是帮助键. WM_SYSKEYDOWN WM_SYSKEYUP WM_SYSCHAR 非系统消 ...
- 10) 十分钟学会android--app数据保存三种方式
虽然可以在onPause()时保存一些信息以免用户的使用进度被丢失,但大多数Android app仍然是需执行保存数据的动作.大多数较好的apps都需要保存用户的设置信息,而且有一些apps必须维护大 ...
- CodeIgniter + smarty 实现widget功能
在开发过程中,经常需要widget功能,一可以隔离页面逻辑,二可以重用代码.结合smarty的plugin功能,可以方便的实现该功能. 譬如,我们的页面中可以这样写: {{extends file=' ...
- element-ui Cascader 级联选择器示例
<html> <head>test</head> <style> @import url("http://unpkg.com/element- ...
- 04-手把手教你把Vim改装成一个IDE编程环境(图文)
Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重 ...
- sql_1
order by SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC; SELECT Company, OrderNumber ...