Cygwin工具编译Ardupilot方法
注意:该编译方法生成的固件基于Chibios系统,如果想要Nuttx系统固件,需采用make编译,步骤见make编译说明部分。
软件安装准备
安装Cygwin
安装应用程序,在安装界面中选择网络安装和下载包服务器地址,直到进入下图界面

在搜索框中搜索待安装的包,并点击skip按钮选择安装版本,选择成功后bin选择被打钩,表示选择安装有效。依次搜索下表中的包,并选择安装有效。全被选择完成之后,点击下一步进行安装(下载包和安装包过程需要一段比较长的时间,需耐心等待)。

Package Name Category / Name / Description autoconf Devel | autoconf: Wrapper scripts for autoconf commands automake Devel | automake: Wrapper scripts for automake and aclocal ccache Devel | ccache: A C compiler cache for improving recompilation gcc-g++ Devel | gcc-g++ GNU Compiler Collection (C++) git Devel | git: Distributed version control system libtool Devel | libtool: Generic library support script make Devel | make: The GNU version of the ‘make’ utility gawk Interpreters | gawk: GNU awk, a pattern scanning and processing language libexpat-devel Libs | libexpat-devel: Expat XML parser library (development files) libxml2-devel Libs | libxml2-devel: Gnome XML library (development) libxslt-devel Libs | libxslt-devel: XML template library (development files) python2-devel Python | python2-devel: Python2 language interpreter (python3 does not work yet) python2-future Python | python2-future: Clean single-source support for Python 3 and 2 python2-libxml2 Python | python2-libxml2: Gnome XML Library (Python bindings python2-pip Python | python2-pip: Python package installation tool procps-ng System | procps-ng: System and process monitoring utilities (required for pkill) gdb Devel | gdb: The GNU Debugger ddd Devel | ddd: DDD, the data display debugger zip Archive | zip: Info-ZIP compression utility 打开Cygwin64 Terminal(从桌面快捷方式或者开始菜单中打开),输入以下指令安装依赖的python组件包。
pip2 install empy
pip2 install pyserial
pip2 install pymavlink
安装GCC编译器(http://firmware.ardupilot.org/Tools/STM32-tools/gcc-arm-none-eabi-6-2017-q2-update-win32-sha2.exe),安装过程中选择Add path to environment variable。

编译目标程序
打开Cygwin64 Terminal,进入Ardupilot工程目录下
查看能编译目标板指令
./waf list_boards

配置目标板,以下列出常用的配置目标板指令:
./waf configure --board bebop --static # Bebop or Bebop2
./waf configure --board edge # emlid edge
./waf configure --board fmuv3 # Pixhawk2/Cube using ChibiOS
./waf configure --board fmuv4 # Pixracer using ChibiOS
./waf configure --board navio2 # emlid navio2
./waf configure --board Pixhawk1 # Pixhawk1
./waf configure --board CubeBlack # Pixhawk2
./waf configure --board Pixracer # Pixracer
./waf configure --board skyviper-v2450 # SkyRocket's SkyViper GPS drone using ChibiOS
./waf configure --board sitl # software-in-the-loop simulator
./waf configure --board sitl --debug # software-in-the-loop simulator with debug symbols此处编译pixhawk1为例。输入指令
./waf configure --board Pixhawk1。注意区分大小写。
编译目标指令。输入以下指令编译四旋翼固件,固件格式为apj和bin,其中apj可通过MissionPlaner地面站烧写至目标板。
./waf --targets bin/arducopter
关于waf编译详细说明请见文档:https://github.com/ArduPilot/ardupilot/blob/master/BUILD.md
Cygwin工具编译Ardupilot方法的更多相关文章
- android-ndk-r7b编译环境Cygwin工具搭建及配置(转)
开发android ndk 的时候需要一个编译工具编译c程序,ndk需要linux下编译,所以win环境下提供Cygwin模拟linux编译C android-ndk 较低版本的这个工具的配置网上很多 ...
- 4412开发板搭建Uboot、Kernel和Android4.0的编译环境方法
本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过 ...
- 转 谈谈android反编译和防止反编译的方法
谈谈android反编译和防止反编译的方法 android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...
- 谈谈android反编译和防止反编译的方法(转)
谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...
- 反编译class文件并重新编译的方法
在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler ...
- cygwin完全安装步骤方法(过程图解)
cygwin完全安装步骤方法(过程图解) 我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/ 或者直接使用下载连接来下载安装程序,下载连 ...
- 简单的反编译class文件并重新编译的方法
在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler ...
- cygwin下编译zlib源代码
本文介绍在cygwin下编译zlib源代码的方法步骤,这个过程尽管简单,但还是有一些须要注意的地方. zlib源代码下载地址: http://www.zlib.net/ 下载后.解压就会生成zlib- ...
- 痞子衡嵌入式:MCUXpresso IDE下添加C++源文件进SDK工程编译的方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下添加C++源文件进SDK工程编译的方法. 最近有客户反映在MCUXpresso IDE下的SDK工程里添加 ...
随机推荐
- 微信小程序从开发至发布的流程
今天在公司将这几天开发的小程序,进行版本上线,在这里记录下. 首先,将微信开发工具里的代码上传到微信小程序平台里,如下所示 之后,在微信小程序平台进行审核提交,填写相应的信息即可,注意,审核提交分为紧 ...
- maven包引入问题ClassNotFoundException: org.elasticsearch.client.Cancellable
业务需要,做搜索功能,在springboot聚合项目下,新建了es模块module 但是在引入elasticsearch依赖的时候,出现了问题 引入相应依赖后 <dependency> & ...
- audioContext.decodeAudioData 返回null 错误
此问题并不是100%出现.没想到国外大神已经有处理此问题的经验 原贴地址: https://stackoverflow.com/questions/10365335/decodeaudiodata-r ...
- Python知识点 - 获取当前系统主机名、用户名、用户目录。
代码示例: import socket, getpass, os # 获取当前系统主机名 host_name = socket.gethostname() # 获取当前系统用户名 user_name ...
- 检测js对象是不是数组类型?
面试时候被人问如何检测一个未知变量是不是数组类型,丢脸啊,老祖宗的脸都丢没了,这都不会,回家啃书本去吧!!! var a = [];方法一:Array.isArray([]) //true type ...
- Java基础面试系列(一)
Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...
- OpenMP Programming
一.OpenMP概述 1.OpenMP应用编程接口API是在共享存储体系结构上的一个编程模型 2.包含 编译制导(compiler directive).运行库例程(runtime library). ...
- Head First设计模式——中介者模式和备忘录模式
中介者 中介者模式:使用中介者来集中相关对象之间复杂的沟通方式和控制方式. Bob有一个自动屋,当他的闹钟响了只有,闹钟会告诉咖啡壶开始煮咖啡.后来客户不断的提出许多新需求:周末不要提供咖啡.下班后需 ...
- libfastcommon总结(〇)
libfastcommon提供众多基础功能,该系列笔记将进行学习介绍. load_local_host_ip_addrs 进行加载主机上所有网卡的IPv4的地址. iniLoadFromFile 从文 ...
- dos下 批处理 用 pause 可以在最后暂停 查看结果信息 build.bat
dos下 批处理 用 pause 可以在最后暂停 查看结果信息