Ubuntu编译PX4固件

news2024/9/17 8:18:27

目录

    • 前言
  • 准备
  • 编译
  • 参考

前言

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

本次编译是以 px4 v1.13.2 为例。
我的配置如下:
虚拟机 Ubuntu 18.04 (运行内存 4G、硬盘内存 80G) 、交叉编译器 arm-none-eabi-gcc

准备

  • 下载源码:
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
sudo apt-get install libjpeg8-dev
cd ~/PX4_Firmware/Tools/setup
./ubuntu.sh --no-sim-tools # 大概要几分钟,跟个人网络情况而定
# 这是官方提供的脚本 有两个可选参数
# --no-sim-tools   不安装仿真环境
# --no-nuttx   不安装交叉编译环境

在这里插入图片描述

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

chmod +x ubuntu.sh
./ubuntu.sh --no-sim-tools

脚本执行结果如下图所示:
在这里插入图片描述

  • 重启Ubuntu,测试交叉编译器
arm-none-eabi-gcc --version

在这里插入图片描述

编译

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

下图是飞控板支持的固件版本:
在这里插入图片描述

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

cd ~/PX4_Firmware/
make list_config_targets

在这里插入图片描述

这里以 Pixhwak4 为例

make px4_fmu-v5_default

结果如下图所示,红框部分是编译好的固件所在的文件夹
在这里插入图片描述

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

make px4_fmu-v4_default upload

参考

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1918245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微气象仪的工作原理

型号推荐:云境天合TH-WQX5】风力发电传感器在风力发电系统中起着至关重要的作用,它们能够实时监测和记录各种关键参数,为风力发电机组的控制提供数据支持,从而确保风力发电系统的安全、高效运行。以下是对风力发电传感器的详细解析…

喜讯|华院计算法律大模型入围《2024大模型典型示范应用案例集》

2024年世界人工智能大会(WAIC)举办期间,中国信通院正式发布了《2024大模型典型示范应用案例集》(以下简称《案例集》)。该案例集由中国信通院华东分院、上海人工智能实验室主导,以产业化为导向,…

Vue从零到实战第一天

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

免费分享:中国冬小麦地图数据集(附下载方法)

小麦按播种和收获季节的不同,可分为春小麦和冬小麦两种。春小麦颗粒长而大,皮厚色泽深,蛋白质含量高,但筋力较差,出粉率低,吸水率高;冬小麦颗粒小,吸水率低,蛋白质含量较春小麦少&am…

element-plus 按需导入问题 404等问题

场景 新开一个项目,需要用element-plus这个ui库,使用按需引入。 这是我项目的一些版本号 "element-plus": "^2.7.6","vue": "^3.2.13","vue-router": "^4.0.3",过程(看解决方法…

电商、物流必备神器!容联七陌OCR精准识别、一键复制关键信息!

随着大模型、AI技术的快速发展及落地运用,传统的数据处理方式难以满足企业、行业需求,例如一字一句输入效率低、文字复制方式繁琐且容易出错、截图关键信息提取的准确性和高效性、缺乏信息智能识别能力等。 OCR识别技术能够快速准确地将图片中的文字信息…

【Linux】进程的基本概念(以及进程地址空间的初步了解)

目录 一.什么是进程 进程和程序的区别 Linux查看进程 进程的信息 fork函数 二.进程状态 操作系统上进程状态的概念 运行 阻塞 挂起 Linux中的进程状态 R状态 S状态和D状态 T状态 t状态 X状态 Z状态 三.进程的优先级 修改进程优先级 四.环境变量 常见的环境变量 PATH HOME PW…

行列视(RCV)报表是如何产生的?

首先看一下对于生产型企业来说,生产数据特点是什么样的: 生产数据可以理解为是生产制造企业,在生产过程中从车间现场设备上通过自动化传感器采集到的全面感知数据。这类数据一般包括设备状态、设备管道运行参数、各种仪表参数等。具有持续、…

【Linux操作系统-测试】第三节.Linux 系统、网络信息、用户权限命令总结

文章目录 前言一、Linux 系统相关信息命令 1.1 df 命令--查看磁盘剩余 1.2 ps 命令--查看进程 1.3 top 命令--显示进程运行状态 1.4 kill 命令说明 -- 杀死进程二、Linux 网络信息命令 2.1 ping 命令--检查网络是否连通 2.1 ifconfig--显示网络设…

便携式(手持)气象仪:野外气象监测的得力助手

在气象监测领域,随着科技的不断发展,一种新型的便携式(手持)气象仪正在逐渐崭露头角。便携式(手持)气象仪以其高度集成、低功耗、可快速安装以及便于野外使用的特性,成为了气象观测领域的一颗新…

微信小程序切换商户号

1.登录微信公众平台小程序 2.功能->微信支付 3.关联成功后会志一关联商户号列表显示 4.登录你需要切换的商户号 在下面选择你需要开通的产品服务 5.切换到账户中心的api安全里面 只需要改变当前下面的配置即可切换小程序的收款商户号 申请API证书按照官方的指引即可解…

Redis+Caffeine 实现两级缓存实战

RedisCaffeine 实现两级缓存 背景 ​ 事情的开始是这样的,前段时间接了个需求,给公司的商城官网提供一个查询预计送达时间的接口。接口很简单,根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口&#xff…

如何将一个2D数组切分成多个块

要将一个2D数组切分成多个块,可以考虑使用以下几种方法,具体取决于如何定义块的划分规则和需求。如果你希望将2D数组均匀地切分成固定大小的小块,可以使用简单的循环和切片操作。 1、问题背景 Python 中, 如果有一个 raw 数据文件&#xff0…

SAP与税控系统集成案例

一、项目背景 重庆润通控股有限公司成立于2007年,是一家集合汽柴油动力及终端、摩托车、储能电源、汽车零部件、金融服务等产业的多元化集团公司。 大量订单数据导致订单业务会很复杂,为提供订单完成质量,引入税控系统服务商进行订单开票…

docker笔记2

docker笔记2 一、阿里云镜像配置二、docker基本原理1.docker是如何启动一个容器的2.docker的底层原理 三、镜像命令总结 一、阿里云镜像配置 配置镜像的目的 由于Docker Hub等公共镜像仓库的服务器可能位于国外,直接从中拉取镜像时可能会遇到网络延迟或不稳定的问…

硬盘模式vmd怎么改ahci_电脑vmd改ahci模式详细步骤

最近有很多网友问,我新买的电脑安装原版win10或win11找不到驱动器呀,进入第三方pe又找不到硬盘,找到硬盘安装后又出现安装蓝屏的情况,新机器怎么回事呀?这位网友内心有点崩溃,不知道啥原因。其实这些都是由…

magma软件许可优化解决方案

Magma软件介绍 MAGMA在90年代初通过代理进入中国市场。为了更好快速的服务中国的客户、带来更便捷的、中文语言的技术支持和培训,2009年,MAGMA德国在中国正式设立分公司,即迈格码(苏州)软件科技有限公司(以…

Nodejs 第八十章(Kafka高级)

kafka前置知识在前几章章讲过了 不再复述 Kafka集群操作 1.创建多个kafka服务 拷贝一份kafka完整目录改名为kafka2 修改配置文件 kafka2/config/server.properties 这个文件 broker.id1 //唯一broker port9093 //切换端口 listenersPLAINTEXT://:9093 //切换监听源启动zooKe…

MySQL DDL

数据库 1 创建数据库 CREATE DATABASE 数据库名 CREATE DATABASE IF NOT EXISTS 数据库名;(判断是否存在) CREATE DATABASE 数据库名 CHARACTER SET 字符 2 查看数据库 SHOW DATABASES; 查看某个数据库的信息 SHOW CAEATE DATABASE 数据库名 3 修改数据库 …

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 找单词(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…