ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令

2023-05-16

ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令

我们都知道平时用的编译命令是make px4-v2 但是为什么是这个呢,这个命令是怎样执行的呢,挑干货唠!
我们首先是打开“\ardupilot\ArduCopter”路径,找的makefile
在这里插入图片描述
这个makefile中只有一条指令,然后我们对应地找到apm.mk文件,这个文件的内容就比较多,
在这里插入图片描述
3行判断系统类型,,56789这几行代码是要确定MK_DIR,这个在下面查找mk文件时都会用到,根据我们电脑的操作系统类型确定,如果是Windows应该是执行第一个指令,所以 MK_DIR = “…/mk”。也就是“…\ardupilot\mk”文件夹,该文件夹中有许多mk文件,有好多都是我们后面要用到的。
继续,15,20,23,24,25包含了一些其他的make都是我们可能用到的
先看第一个打开environ.mk,这个用来配置环境变量
在这里插入图片描述
这里有好多环境变量如:GIT_VERSION、EXTRAFLAGS、SRCROOT、SKETCHBOOK等等,在这里对这些变量赋值。

在这里插入图片描述
这里有个比较重要的就是对HAL_BOARD也进行赋值了,如果你的编译命令里有PX4的字符,就把HAL_BOARD赋值为PX4。
然后再回到APM.mk。继续向下看

在这里插入图片描述
这里表示不同类型的板子运行不同的mk文件。
这就说明了,对于不同的板子,make指令是怎么运行不同的mk文件。
然后我们针对其中的一种来说明,比如说PX4.mk文件看一看里面都有设么内容。
我们打开board_px4.mk文件
在这里插入图片描述
这里包含两个mk文件,打开一个重要的看看px4_targets.mk。我们找到px4的含义了,再找-v2是啥意思,
在这里插入图片描述
这里就区分了PX4-V1、PX4-V2、PX4-V3、PX4-V4,,,,,他们都有不同的配置文件,针对PX4-V2
打开config_px4fmu-v2_APM.mk。
在这里插入图片描述
这个.mk文件指定了固件编译需要哪些驱动及任务模块,又包括了px4_common.mk文件。
再打开px4_common.mk文件。
在这里插入图片描述
编译固件所需要的驱动和任务模块都在这里,多说一句,如果你自己写了一模块或者驱动,就在px4_common.mk文件这里添加一下驱动,源文件写在mk/modules/px4Firmware/src/drivers里面。
再回到px4_target.mk中,
在这里插入图片描述
这里就px4_v2指令的解释。
在这里插入图片描述
这里还解释了px4-v2-upload的指令,还有其他的指令。
然后我在回到apm.mk中的其他mk,比如说help,mk configure.mk 这些不是很重要,看看即可。

刚才说添加驱动在px4_common.mk文件,源文件写在mk/modules/px4Firmware/src/drivers里面。如果是在libaraies库里添加了内容,则需要在ardupilot/mk/make.inc中添加上libaries的目录。

这就是大致make编译的过程,希望多多指教,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令 的相关文章

  • 相机的内参和外参介绍

    注 xff1a 以下相机内参与外参介绍除来自网络整理外全部来自于 视觉SLAM十四讲从理论到实践 第2版 中的第5讲 xff1a 相机与图像 xff0c 为了方便查看 xff0c 我将每节合并到了一幅图像中 相机与摄像机区别 xff1a 相
  • padans关于数据处理的杂谈

    情况 xff1a 业务数据基本字段会有如下 xff1a Index span class token punctuation span span class token punctuation span span class token s
  • Go程序开发快速入门

    当进行Go程序开发时 xff0c 需要注意以下几点 xff1a 1 代码可读性 xff1a 尽可能使用有意义的变量名和注释 xff0c 确保代码易于理解和维护 2 错误处理 xff1a Go语言有很好的错误处理机制 xff0c 应该合理地处
  • 关于python爬虫解析的问题

    在进行Python爬虫解析时 xff0c 需要注意以下事项 xff1a 1 良好的网站使用协议 xff1a 需要遵守网站的robots txt文件 xff0c 以确保你的爬虫程序不会将网站拦截下来 2 编码问题 xff1a 需要正确设置HT
  • 爬虫利器:jsDOM

    需求 xff1a 之前使用node做爬虫的时候 xff0c 使用puppeteer来模拟浏览器 xff0c 然后抓取信息 xff0c 但是这样的效率和消耗太大了 xff0c 所以需要一种更为效率的方法 xff1a 直接使用axios来请求对
  • UUID与Python线程同步方式

    UUID是如何保证唯一性 高可靠 xff0c 32位16进制数 xff0c 32 4 61 128位二进制数 xff0c UUID4重复概率1 2 128 xff0c 加上时间戳应该好点 xff0c UUID1好点 UUID Version
  • 利用Python操作Mysql数据库

    我们在进行Python编程的时候 xff0c 时常要将一些数据保存起来 xff0c 其中最方便的莫过于保存在文本文件了 但是如果保存的文件太大 xff0c 用文本文件就不太现实了 xff0c 毕竟打开都是个问题 xff0c 这个时候我们需要
  • Python爬虫基础之一

    Python爬虫基础包括HTTP协议 HTML CSS和JavaScript语言基础 requests库的使用 Beautiful Soup库的使用 xpath和正则表达式的使用等 此外 xff0c 还应该了解反爬虫机制和爬虫的一些常见问题
  • Python爬虫基础之二

    Python爬虫基础包括HTTP协议 HTML CSS和JavaScript语言基础 requests库的使用 Beautiful Soup库的使用 xpath和正则表达式的使用等 此外 xff0c 还应该了解反爬虫机制和爬虫的一些常见问题
  • Python爬虫基础之三

    Python爬虫基础包括HTTP协议 HTML CSS和JavaScript语言基础 requests库的使用 Beautiful Soup库的使用 xpath和正则表达式的使用等 此外 xff0c 还应该了解反爬虫机制和爬虫的一些常见问题
  • 最容易上手的爬虫项目

    今天和大家分享一个爬取项目 xff0c 那就是爬取自己博客的项目 1 确定爬取的目标 开始之前我们需要确定一个爬取的目标 xff0c 从我自己博客的首页进入 在这个例子里面我们要写一个爬虫将我的的文章列表拉出来 xff0c 保存在一个JSO
  • OpenCV中的相机标定

    之前在https blog csdn net fengbingchun article details 130039337 中介绍了相机的内参和外参 xff0c 这里通过OpenCV中的接口实现对内参和外参的求解 估计相机参数的过程称为相机
  • 应用scrapy爬虫框架

    Scrapy是一个基于Python的开源网络爬虫框架 xff0c 它可以帮助我们快速 高效地抓取网页数据 xff0c 并支持数据的自动化处理 存储和导出 Scrapy提供了丰富的扩展机制 xff0c 可以轻松地实现各种自定义需求 Scrap
  • 爬虫为什么需要ip

    爬虫需要使用爬虫ip主要是为了解决以下问题 xff1a 1 反爬虫机制 xff1a 许多网站会设置反爬虫机制来防止爬虫程序的访问 xff0c 例如限制IP地址的访问频率 检测访问来源等 使用爬虫ip可以绕过这些限制 xff0c 使得爬虫程序
  • scrapy 爬虫中间件的学习

    Scrapy中间件是一个处理Scrapy请求和响应的机制 中间件可以在请求或响应被Scrapy引擎处理之前或之后对其进行修改或操作 xff0c 用于实现诸如缓存 代理 用户代理等功能 Scrapy中间件的作用主要有以下几个方面 xff1a
  • Python爬虫需要哪些基础

    Python爬虫是指使用Python语言编写程序 xff0c 自动化地访问Web页面并抓取其中的信息 以下是Python爬虫的基础知识 xff1a 爬虫的工作原理 xff1a 爬虫程序通过网络请求获取Web页面的HTML源码 xff0c 然
  • 极简爬虫通用模板

    网络爬虫的一般步骤如下 xff1a 1 确定爬取目标 xff1a 确定需要爬取的数据类型和来源网站 2 制定爬取策略 xff1a 确定爬取哪些网页 如何爬取和频率等 3 构建爬虫程序 xff1a 使用编程语言 xff08 如Python x
  • Python爬虫常用框架

    大家都知道python是一门多岗位编程语言 xff0c 学习python之后可以从事的岗位有很多 xff0c python爬虫便在其中 xff0c 不过很多人对python不是很了解 xff0c 所以也不知道python爬虫是什么 xff0
  • Python多线程爬虫简单模板

    多线程爬虫的流程可以大致分为 xff1a xff08 1 xff09 获取种子URL xff1a 从初始URL中抓取起始页面 xff0c 解析其中的URL xff0c 并将这些URL添加到未访问的URL队列中 xff1b xff08 2 x
  • scrapy爬虫标准流程

    Scrapy爬虫的标准流程一般包括以下几个步骤 xff1a 1 明确需求和目标网站的结构 xff0c 确定需要爬取的数据以及爬取规则 2 创建一个Scrapy项目 xff0c 使用命令行工具创建一个新的Scrapy项目 3 定义数据模型和i

随机推荐

  • Python爬虫设置代理

    在Python中使用代理进行爬虫操作可以有效地隐藏用户的真实IP地址 xff0c 防止被封禁或者限制访问 下面是设置代理的示例代码 xff1a span class token keyword import span requests pr
  • Golang 网络爬虫框架gocolly

    Golang 是一门非常适合编写网络爬虫的语言 xff0c 它有着高效的并发处理能力和丰富的网络编程库 下面是一个简单的 Golang 网络爬虫示例 xff1a package main span class token keyword i
  • Python中txt中内容解析到json文件

    在instant ngp中通过调用scripts colmap2nerf py可以自动生成transforms json文件 xff0c 即相机参数 xff0c 但有时会从相机本身获取到这些参数 xff0c 为了将每个相机参数信息即txt内
  • 代理ip在爬虫中的应用

    代理IP在爬虫中的应用主要是为了解决以下两个问题 xff1a IP封禁问题 很多网站为了防止爬虫 xff0c 会对频繁访问的IP进行封禁 xff0c 这样就会导致爬虫无法继续访问 此时 xff0c 使用代理IP可以隐藏真实IP xff0c
  • 使用VNC远程服务器

    通常我们控制服务器都是通过ssh远程命令行 但是这次由于特殊需求需要进入服务器的图形界面进行操作 xff08 这台服务器安装的时候就是安装的gnome图形界面 xff0c 但是由于没有事先在服务器上安装向日葵等远程软件 xff0c 所以无法
  • 安卓adb命令大全

    安卓官方文档 xff1a https developer android google cn studio command line adb hl 61 zh cn ADB xff0c 即 Android Debug Bridge xff0
  • Python运维自动化psutil 模块详解(超级详细)

    psutil 模块 参考官方文档 xff1a https pypi org project psutil 一 psutil简介 psutil是一个开源且跨平台 xff08 http code google com p psutil xff0
  • 2021最强Python学习教程,从零基础入门到精通

    关于本套Python自学视频教程 xff1a B站链接 xff1a 戳我直达 千锤百炼 xff0c 只为大作 xff1b 精益求精 xff0c 处处斟酌 xff1b 这种教程 xff0c 看一眼就倾心 你准备好了吗 文章目录 你准备好了吗
  • 进程池(multiprocess.Pool)

    进程池 multiprocess Pool 一 进程池概念 1 什么是进程池 x1f449 进程池是资源进程 管理进程组成的技术的应用 2 为什么要有进程池 x1f62e 忙时会有成千上万的任务需要被执行 xff0c 闲时可能只有零星任务
  • 使用pip安装第三方模块报错,WARNING: You are using pip version 20.2.1; however, version 21.0.1 is available. You

    问题 xff1a 使用pip安装第三方模块报错 xff0c WARNING You are using pip version 20 2 1 however version 21 0 1 is available You should co
  • python小数据池,代码块的深入剖析

    python小数据池 xff0c 代码块的深入剖析 文章目录 python小数据池 xff0c 代码块的深入剖析一 id xff0c is xff0c 61 61 二 代码块三 代码块的缓存机制四 小数据池五 小结 一 id xff0c i
  • docker 之Dockerfile

    Docker 镜像构建之 Dockerfile 在 Docker 中构建镜像最常用的方式 xff0c 就是使用 Dockerfile Dockerfile 是一个用来构建镜像的文本文件 xff0c 文本内容包含了一条条构建镜像所需的指令和说
  • 项目开发的完整流程(详解版)

    项目开发的完整流程 前言 一般情况下 xff0c 企业开发软件时会按照基线和定制两块并行方式执行项目开发工作 无论什么公司 xff0c 都需要遵从一套成熟的产品研发过程体系 xff0c 才能做出质量较好的产品 因此 xff0c 如果出现项目
  • nerfstudio介绍及在windows上的配置、使用

    nerfstudio提供了一个简单的API xff0c 可以简化创建 训练和可视化NeRF的端到端过程 该库通过模块化每个组件来支持可解释的NeRF实现 nerfstudio源码地址 https github com nerfstudio
  • pip源

    02 pip源更换 前面已经介绍过pip软件包管理工具基本使用及换源 链接 一 国内常用镜像源 清华大学 xff1a https pypi tuna tsinghua edu cn simple 阿里云 xff1a http mirrors
  • mysql启动失败,报错:Job for mysqld.service failed

    无论安装多少次mysql xff0c 仍然会出现各种各样的错误 xff0c 无可奈何 xff0c 只能和mysql硬刚了 xff01 所以最好的解决方案是查看错误日志 xff0c 去解决懵逼的代码错误 错误如图所示 xff1a 百度了好久
  • linux 安装SQL Server 2019

    可以直接参考官方文档 xff1a https docs microsoft com zh cn sql linux quickstart install connect red hat view 61 sql server ver15 一
  • Go 数组与切片

    Go 数组与切片 一 数组 1 1 数组定义与基本语法 数组 是一个由 固定长度 的特定类型元素组成的序列 xff0c 一个数组可以由零个或多个元素组成 在Go语言中 xff0c 数组从声明时就确定 xff0c 使用时可以修改数组成员 xf
  • linux安装chrome以及驱动

    一 安装chrome 下载安装脚本 span class token function wget span https intoli com install google chrome sh 然后授予可执行权限 span class tok
  • ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令

    ardupilot编译过程 xff0c 通过makefile的形式编译 xff0c 分析make px4 v2指令 我们都知道平时用的编译命令是make px4 v2 但是为什么是这个呢 xff0c 这个命令是怎样执行的呢 xff0c 挑干