Ubuntu编译PX4固件

目录

前言

要想自己编译PX4固件需要交叉编译器,交叉编译器可以将 x86架构 平台上写好程序编译出来,而编译出来的可执行文件是能用到 arm架构 的平台上。

本次编译是以 px4 v1.13.2 为例。

我的配置如下:

虚拟机 Ubuntu 18.04 (运行内存 4G、硬盘内存 80G) 、交叉编译器 arm-none-eabi-gcc

准备

  • 下载源码:
bash 复制代码
sudo apt-get install git  # 安装git
git clone https://github.com/PX4/PX4-Autopilot.git
mv PX4-Autopilot PX4_Firmware  # 更改目录名
cd PX4_Firmware
git checkout -b dev v1.13.2  # 切换版本
git submodule update --init --recursive   # 更新下载子模块

如果下载慢,可以从网盘里下,或者从QQ群(961297255)里下载

链接:https://pan.baidu.com/s/1eNB9dWlKoVmRMAYsSPI0vw

提取码:s8uh

  • 安装依赖和交叉编译器 arm-none-eabi-gcc
bash 复制代码
sudo apt-get install libjpeg8-dev
cd ~/PX4_Firmware/Tools/setup
./ubuntu.sh --no-sim-tools # 大概要几分钟,跟个人网络情况而定
# 这是官方提供的脚本 有两个可选参数
# --no-sim-tools   不安装仿真环境
# --no-nuttx   不安装交叉编译环境

上图错误的原因是 shell 脚本没有可执行权限(如果用我提供的文件可能会出现这个错误),运行下面命令,赋予可执行权限,然后再执行:

bash 复制代码
chmod +x ubuntu.sh
./ubuntu.sh --no-sim-tools

脚本执行结果如下图所示:

  • 重启Ubuntu,测试交叉编译器
bash 复制代码
arm-none-eabi-gcc --version

编译

注:后缀 _default 是可选的。例如,使用 px4_fmu-v5 和 px4_fmu-v5_default 是一样的。

下图是飞控板支持的固件版本:

使用下面命令可以查看支持编译的固件:

bash 复制代码
cd ~/PX4_Firmware/
make list_config_targets

这里以 Pixhwak4 为例

bash 复制代码
make px4_fmu-v5_default

结果如下图所示,红框部分是编译好的固件所在的文件夹

烧录的话可以使用QGC,或者用下面命令

bash 复制代码
make px4_fmu-v4_default upload

参考

Ubuntu LTS/Debian Linux 的开发环境 | PX4 Guide (main)
编译 PX4 软件 | PX4 Guide (main)

如有其他问题,或者发现文章有错误,请在评论区留言

Keep learning!

相关推荐
wheeldown34 分钟前
【数学建模】用代码搞定无人机烟幕:怎么挡导弹最久?
数学建模·无人机
zwtahql44 分钟前
ubuntu远程ssh连接
linux·ubuntu·ssh
南烟斋..1 小时前
嵌入式系统(51单片机)核心外设详解:UART通信与DS18B20温度采集
linux·运维·网络
不染尘.1 小时前
Linux的rpm与yum
linux·mysql·jdk·centos·tomcat·ssh
重生之绝世牛码1 小时前
Linux软件安装 —— SSH免密登录
大数据·linux·运维·ssh·软件安装·免密登录
陈奕昆1 小时前
保姆级教程!零基础解锁大疆无人机开发:MSDK/PSDK/ 上云 API 实战指南[特殊字符]
无人机·sdk·大疆·企业级大疆二次开发
StarChainTech1 小时前
无人机租赁平台:开启智能租赁新时代
大数据·人工智能·微信小程序·小程序·无人机·软件需求
WinstonJQ1 小时前
AirSim无人机仿真入门(一):实现无人机的起飞与降落
python·机器人·游戏引擎·ue4·无人机
抬头望远方1 小时前
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
开发语言·支持向量机·matlab·无人机
无人装备硬件开发爱好者1 小时前
无人机 5.8G 模拟图传电路设计方案及性能分析
无人机·图传硬件电路设计·硬件电路设计·5.8g图传