Ardupilot编译固件问题(顺便讲讲APM工具链安装)

直接进入主题,今天被这个问题整得头皮发麻,主要网上还找不到类似的错误。

在这里插入图片描述
这个问题在于你用的arm-none-eabi版本出错了,以我在用的Ardusub为例,目前截至我写博客为止支持的是arm-none-eabi的6.3.1,也就是下面所示的版本

在这里插入图片描述

输入

arm-none-eabi-gcc --version

即可查看当前版本,正确的输出应该是

在这里插入图片描述

而我一开始是先安装的PX 4,后面再安装的APM,在安装PX4时由于网速问题没能直接从.sh方式直接安装arm-none-eabi,后面为了图方便就自己安装了,下载的是最新版本的。你可以用上面那个命令查看一下自己的默认版本(如果安装了2个的话)。下面这个是错的

在这里插入图片描述
如果安装了两个版本的话,就直接在/opt下把错的那个版本删掉就行了。

如果只安装了错误版本的,自己根据官方步骤来吧(看下面)。或者网速不行的同学可以自己另外下载,链接在这里

所以说最好还是根据官方的安装不走来,这边还是简单说一下(主要还是怕自己之后忘记了)。以下内容仅针对Ubuntu系统

安装过错

可以自己去参考官网的步骤:

Setting up the Build Environment (Linux/Ubuntu)

Build Ardusub

基本

首先是下载源码并且更新子模块

git clone https://github.com/your-github-userid/ardupilot
cd ardupilot
git submodule update --init --recursive

执行下面这个语句安装必要的包(重要!)

Tools/environment_install/install-prereqs-ubuntu.sh -y

更新路径

. ~/.profile

然后运行

gedit ~/.bashrc

把下面这两段话放在文件末尾并且保存

export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH

然后执行一下

~/.bashrc

至此APM的工具链安装即完成。

Ardusub

这部分需要自己编译固件的同学可以看看,以Ardusub为例:

在编译ArduSub之前,首先将ArduSub-stable标记检出到新分支

git fetch --tags
git checkout ArduSub-stable -b new-branch
git submodule update --init --recursive

下述命令可以查看可搭配的命令,如可以查看支持的板子

./waf --help

对于Ardusub用户来说,一般用的也就是Pixhawk2.4.8的板子,那么对应的

./waf configure --board Pixhawk1

然后即可进行编译

./waf sub

固件创建于:

ardupilot/build/Pixhawk1/bin/ardusub.apj

上传如下:

./waf --upload sub

另外的错误解决

之前在解决了交叉编译器的版本错误之后,可以顺利进行编译了,但是在最后快成功的时候仍有报错
在这里插入图片描述
此时执行

rm -rf build/

清理build路径下的文件,重新进行编译即可

./waf configure --board Pixhawk1
./waf sub

成功后结果如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/moumde/article/details/108984473