特别注意,切换固件版本用的是“Git Bash”这个软件,而编译固件用的是“Cygwin64”这个软件,二者外观差不多,但是请不要搞混。

1 配置飞控类型

打开“Cygwin64”这个软件,进入ardupilot目录后,输入:
./waf list_boards
查看所有支持的飞控类型。
image.png
将编译目标设置为CUAVv5Nano版飞控,对应V5 nano硬件,输入:
./waf configure —board CUAVv5Nano
这一步会在“ardupilot”文件夹下生成“build”文件夹,里面放着与你指定的飞控硬件相匹配的库文件和一些其他文件,如果你编译了一种飞控硬件的固件之后,打算编译另一个型号的飞控硬件的固件,这时最稳妥的办法是手动删除“ardupid:lot/build”文件夹,然后再指定编译目标为新的飞控硬件,从而可以避免两种飞控硬件都出现在build文件夹中,造成编译时出错,注意,这种出错概率很大。
但你看到下图这段话时,表明你编译成功,否则,你将在这个环节不断查找错误并修正它。
image.png

2 编译飞控固件

如果是编译多旋翼固件,运行下面的命令
./waf copter
如果是编译常规固定翼固件或者垂直起降固定翼固件(二者使用的是同一个固件),运行下面的命令
./waf plane
如果是编译直升机固件,运行下面的命令
./waf heli
如果你上次编译好好的,突然就编译报错了,尝试如下命令,删除之前的编译缓存,这样下次编译时会从头编译 。 这个命令等效于手动删除“ardupilot/build”文件夹
./waf distclean
列出waf的所有命令及其使用方法
./waf -h

3 烧写飞控固件

使用MissionPlanner烧写飞控固件,自行编译的固件位置: bulid/CUAVv5Nano/bin/arducopter.apj