zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [ Algorithm ] N次方算法 N Square 动态规划解决
    [ Algorithm ] LCS 算法 动态规划解决
    sql server全文索引使用中的小坑
    关于join时显示no join predicate的那点事
    使用scvmm 2012的动态优化管理群集资源
    附加数据库后无法创建发布,error 2812 解决
    浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
    windows 2012 r2下安装sharepoint 2013错误解决
    sql server 2012 数据引擎任务调度算法解析(下)
    sql server 2012 数据引擎任务调度算法解析(上)
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7081941.html
Copyright © 2011-2022 走看看