当前位置: 首页 > news >正文

从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)

目录

文章目录

  • 目录
  • 摘要
  • 1.将PX4源码上传至腾讯工蜂
  • 2.从腾讯工蜂克隆源码到本地ubuntu
  • 3.如何查看自己源码的版本信息

摘要

本节主要记录从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)及如何查看PX4的固件版本信息,欢迎批评指正!


PX4源码版本V1.14.2
Ubuntu系统18.04


1.将PX4源码上传至腾讯工蜂

  1. 下载官网源码,这里主要以V1.14.2为例,执行下面命令,注意要记得翻墙,如何翻墙可以查看我的apm教程内容。
git clone -b v1.14.2 https://github.com/PX4/PX4-Autopilot.git --recursive

在这里插入图片描述在这里插入图片描述
等待接收完成:持续时间大概3-5分钟完成
在这里插入图片描述
执行编译命令,看是否下载完全!!!

make px4_fmu-v3_default

在这里插入图片描述


可以看出可以完成编译,说明上面固件没有问题。那么下面我们需要首先创建自己的腾讯工蜂仓库地址,按照下面操作


1.创建腾讯工蜂管理仓库
在这里插入图片描述
2.执行上传工作

#1.在PX4-Autopilot目录下首先执行查看远程仓库在哪
git remote -v
#2.移除远端仓库
git remote rm origin
#3.增加本地PX4-Autopilot固件的远程仓库地址
git remote add origin
#4.继续查看当前远程仓库在哪,正常的话此时PX4-Autopilot的远程仓库的地址已经变成了自己的仓库。
git remote -v
#5.切换分支
git checkout -b main
#6.推送本地源码到分支
#这个命令用于将本地分支推送到远程仓库,并且通过 --set-upstream(或简写为 -u)参数,
#可以同时建立本地分支与远程分支之间的关联。这意味着以后在本地分支上执行 git pull 或 #git push 时,Git 将会自动关联到远程分支,并执行相应的操作。这样可以避免每次推送或拉
#取时都需要手动指定远程分支的名称。将本地分支与(新创建或者现有的)远程分支关联起来
git push --set-upstream origin main
#7.上传代码到远程仓库git add .
git commit -m “2024-7-12:上传本地PX4-Autopilot_V1.14.2到自己的腾讯工蜂仓库”
git push origin main 作者:超维空间科技 https://www.bilibili.com/read/cv27472120/?jump_opus=1 出处:bilibili

到这里:在腾讯工蜂上可以看到提交的代码,到这里不要高兴的太早,还需要继续验证2的内容。

2.从腾讯工蜂克隆源码到本地ubuntu

执行下面命令从腾讯工蜂克隆代码到本地:

git clone git@git.code.tencent.com:XXX_Airlines/XXX_PX4_AutoPilot_V1.14.2.git

然后执行编译会直接报错误:
然后执行编译会直接报错误:
然后执行编译会直接报错误:
主要原因PX4有版本信息检测,因此我们需要执行增加版本信息的命令

git tag v1.14.2

上面这种方式每次都需要打标签,因此建议直接修改源码,固定版本名称,在上传上去,后面在克隆下来直接编译就不会报错误。
从下面路径找到:

/home/xx/Desktop/tst_px4/PX4-Autopilot/src/lib/version
uint32_t px4_firmware_version(void)
{return version_tag_to_number("v1.14.2");
}
uint32_t px4_firmware_vendor_version(void)
{return version_tag_to_vendor_version_number("v1.14.2");
}

修改上面两行代码即可。

3.如何查看自己源码的版本信息

这里顺便说下如何查看当前源码的版本信息:
1.通过命令查看

git describe --tag

在这里插入图片描述

2.通过git查看
在这里插入图片描述

http://www.lryc.cn/news/398865.html

相关文章:

  • Docker Compose 启动容器例子
  • 守护服务之门:Eureka中分布式认证与授权的实现策略
  • 核密度估计KDE和概率密度函数PDF(深入浅出)
  • 免开steam 脱离steam 进行游戏的小工具
  • 深度学习--系统配置流程
  • 把Docker的虚拟磁盘文件移动到别的盘符
  • Oracle 19c RAC 心跳异常处理
  • 微信小程序引入自定义子组件报错,在 C:/Users/***/WeChatProjects/miniprogram-1/components/路径下***
  • 【图解大数据技术】流式计算:Spark Streaming、Flink
  • 启动完 kubelet 日志显示 failed to get azure cloud in GetVolumeLimits, plugin.host: 1
  • C语言基础and数据结构
  • 【超万卡GPU集群关键技术深度分析 2024】_构建10万卡gpu集群的技术挑战
  • RuntimeError: CUDA error: invalid device ordinal
  • 如何在Qt中添加文本
  • 解决打印PDF文本不清楚的处理办法
  • 【Cesium开发实战】火灾疏散功能的实现,可设置火源点、疏散路径、疏散人数
  • imx6ull/linux应用编程学习(16)emqx ,mqtt创建连接mqtt.fx
  • Debezium系列之:验证mysql、mariadb等兼容mysql协议数据库账号权限
  • Vue.js学习笔记(五)抽奖组件封装——转盘抽奖
  • 使用pip或conda离线下载安装包,使用pip或conda安装离线安装包
  • 产品访问分析
  • 【算法】代码随想录之链表(更新中)
  • react 18中,使用useRef 获取其他组件的dom并操作节点,flushSync强制同步更新useState
  • Jupyter Notebook基础:用IPython实现动态编程
  • Python 爬虫:使用打码平台来识别各种验证码:
  • 理解算法复杂度:空间复杂度详解
  • 浅析Kafka Streams消息流式处理流程及原理
  • QGroundControl的总体架构,模块化设计和主要组件的功能。
  • oracle 表空间文件迁移
  • JVM学习(day1)