• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

树莓派控制无人机实现定点降落(三)——PX4固件源码编译中的坑

人工智能 CyrilSterling 2444次浏览 0个评论

目录

  • 树莓派控制无人机实现定点降落(三)——PX4固件源码编译中的坑
    • 1、建立工作空间,克隆固件源码
    • 2、arm-none-eabi-gcc安装
    • 3、错误解决
    • 4、成功编译

树莓派控制无人机实现定点降落(三)——PX4固件源码编译中的坑

我这里是使用的我自己的电脑,安装的是ubuntu16.04系统,装有ROS Kinetic,包括gazebo之类的软件已经有了,这些安装方法网上也有很多,这里不多说。 我的飞控是pixhawk4

1、建立工作空间,克隆固件源码

 

mkdir -p ~/Firmware_ws/src
cd ~/Firmware_ws/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive

  注:若想安装指定版本的固件,使用如下方法:  

# 查看目前固件版本
git describe --always --tags

 

2、arm-none-eabi-gcc安装

在编译时候要用到交叉编译器arm-none-eabi-gcc,可以用下面命令查看其版本:  

arm-none-eabi-gcc --version

    一般用apt-get install安装的应该都是4.3版本,但这个版本大概率是编译不成的,包括后面的很多问题,都可能是这个编译器版本的问题,现在我们通过源码安装一个新版本的: 先上官网下个新版本的网址在此 我大概试了试,新的几个版本7-2018-q2、8-2019-q3、8-2019-q4都可,我这里用的是8-2019-q3-update这个版本,下载下来以后解压:  

# 解压
cd ~/Downloads
tar -jxf gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2

    解压出来的文件夹可以放在任意位置,我这里就直接放到~/Downloads下了,一般有的人放在/usr/lib下,有人放在/opt下,都可以,只是后面环境变量设置一下就好  

sudo vim ~/.bashrc

# 在最后添加
export PATH=[路径]/gcc-arm-none-eabi-8-2019-q3-update/bin:$PATH

  我括起来的路径换成文件所在路径就好,如在这里我就添加:  

export PATH=~/Downloads/gcc-arm-none-eabi-8-2019-q3-update/bin:$PATH

  添加好后还需要设置软链接让编译时能找到它:  

sudo ln -s [路径]/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-gcc /usr/bin/
sudo ln -s [路径]/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-g++ /usr/bin/

  到此,交叉编译器就安装好了

3、错误解决

在这里编译时候一般还会出错,大家可以试一试,出错内容如下:  

error: this statement may fall through [-Werror=implicit-fallthrough=] 
mixer_text_length = 0;
~~~~~~~~~~~~~~~~~~^~~

  可以到官方github的讨论区里看到有人也遇到了这样的错误,回答说原因是ccache的版本过旧(有是版本问题…) 可以看到Firmware/Tools/setup/ubuntu.sh中105行为下载ccache的命令,按照该命令我们到http://launchpadlibrarian.net里寻找,果然有更新的版本,我这里下载最新的版本3.7.7-1:  

wget -O /tmp/ccache_3.7.7-1_amd64.deb http://launchpadlibrarian.net/459437926/ccache_3.7.7-1_amd64.deb
sudo dpkg -i /tmp/ccache_3.7.7-1_amd64.deb

  这时可以执行ccache -V查看版本,看到已经成功更新

4、成功编译

到这里我已经没有报错了,执行以下命令成功编译:  

cd Firmware
sudo make px4_fmu-v5_default

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明树莓派控制无人机实现定点降落(三)——PX4固件源码编译中的坑
喜欢 (0)

您必须 登录 才能发表评论!

加载中……