使用VScode编译betaflight固件--基于windows平台

news2024/10/5 18:27:11

使用VScode编译betaflight固件--基于windows平台

    • 1、使用git克隆betaflight的开源代码
    • 2、betaflight的代码框架分析:
    • 3、配置编译环境:
    • 4、VScode上编译

betaflight不仅可以在LInux上进行编译也可以在Windows上编译,本文主要介绍在windows平台上使用VScode编译betaflight固件的方法

1、使用git克隆betaflight的开源代码

首先确保你的电脑已经安装了git,然后在电脑本地文件夹内 使用git 命令行克隆仓库

git clone https://github.com/betaflight/betaflight

或者直接到仓库 https://github.com/betaflight/betaflight下载.zip压缩包
在这里插入图片描述

2、betaflight的代码框架分析:

代码克隆下来之后,用VSCode打开文件如下:
在这里插入图片描述
需要注意的是obj文件夹是经过编译之后才生成的,初次克隆下来是没有这个文件夹的。
src是整个代码的核心文件夹,打开src/main/target,我们就可以看到betaflight目前支持的主控芯片型号,可以看到STM32F1和STM32F3已经不支持了,主流是STM32F4和H7的。
在这里插入图片描述

betaflight一个程序要兼容多个主控,因此代码十分复杂,打开程序就会看到很多#ifdefine xxx之类的宏定义。
下面再看看根目录下的Makefile文件:
在这里插入图片描述
这个就是配置的编译文件了,在19行可以更改要编译的固件型号,默认编译的是STM32F405固件。
下面就来讲讲怎么编译这个代码,生成.hex文件。

3、配置编译环境:

我们要编译这个代码就得要有对应的编译器,在
这个版本代码编译用的是gcc-arm-none-eabi-10.3-2021.10
https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-win32.exe
安装好之后,还要配置系统环境变量
首先在系统信息这里选择高级系统设置:
在这里插入图片描述
选择环境变量:
在这里插入图片描述
在环境变量里找到 Path,然后编辑
在这里插入图片描述
点击新建,浏览选择gcc-arm-none-eabi-10.3-2021.10\bin路径
在这里插入图片描述
然后确定保存,重新用VScode打开即可。

4、VScode上编译

直接选择windows的Power Shell终端编译会出错,这里选择Git Bash终端进行编译
在这里插入图片描述
输入make即可编译:
在这里插入图片描述

稍等片刻就可以看到编译成功生成hex文件
在这里插入图片描述
这个文件就放在新建的obj文件夹下
在这里插入图片描述
接下来你就可以通过Betaflight Configurator把hex文件烧录进你的飞控了
在这里插入图片描述

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

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

相关文章

智能巡检软件哪个好?中小企业如何提升工作效率与质量?

在当今数字化、智能化的时代,智能巡检软件作为一种高效的工具,已经在各行各业得到了广泛的应用。它利用物联网、大数据、人工智能等技术,为巡检工作提供了全面的解决方案,帮助企业实现数据化、智能化管理,提高工作效率…

ts+vite报错:找不到模块“/src/.../...”或其相应的类型声明

问题描述 vuets项目开发时,通过绝对路径引入模块,发现ts报错:找不到模块“/src/script/game”或其相应的类型声明。ts(2307)。但是项目能正常运行。 原因 由于并没有配置代表src,结果通过绝对路径引入还是报错,于是换…

【渗透实战】木马免杀

先看效果(文中附源码) 思路 1.shellcode自身免杀 首先cs生成一个bin文件 再没有二开的情况下落地就会死 那么如何处理呢? 可以通过对shellcode进行加密和编码的方式,然后在内存中进行解密执行 这里介绍几种主流的编码和加密方式 编码方式: base64 sgn编码 加密方式: XO…

京东数据运营与分析:如何全面获取电商销售数据?

随着电商行业的快速发展,数据分析成为了电商运营中一个非常重要的环节,这一环往往能够帮助品牌方来提升销售业绩和管理效率。然而,如何获取到电商平台中详细、全面的销售数据是很多电商品牌方所关心的问题,事实上,第三…

跨境国际快递物流API:加速全球贸易的关键

引言 全球贸易的蓬勃发展在今日商业中扮演着至关重要的角色。而随着全球市场的扩大和商业界的日益复杂化,跨境国际快递物流API正成为推动全球贸易加速发展的关键因素。 为何说跨境国际快递物流API是加速全球贸易的关键? 连接全球商业网络 跨境国际快…

外汇天眼:你的交易技术分析,为什么不赚钱?

众所周知,交易圈分为两个派别,一个是基本面分析派,另外一个就是技术分析派。 无论哪个派别都有成功的案例。 今天我们主要来说一下技术分析,市场中,用技术分析来做交易的人有很多,但并不是人人都赚钱&#…

数据结构和算法八股与手撕

数据结构和算法八股文 第一章 数据结构 1.1 常见结构 见http://t.csdnimg.cn/gmc3U 1.2 二叉树重点 1.2.1 各种树的定义 满二叉树:只有度为0的结点和度为2的结点,并且度为0的结点在同一层上 完全二叉树:除了最底层节点可能没填满外&…

Looking for downloadable pre-built shared indexes关闭

这个功能很烦,把他关闭就行了 PyCharm的“Looking for downloadable pre-built shared indexes”是指PyCharm IDE中的一个功能,用于搜索和下载可共享的预构建索引。 这个功能的主要用途是帮助开发人员在开发过程中快速地获取和使用预构建的索引,以提高…

AtCoder ABC152

C - Low Elements 从前往后维护一个最长下降子序列 D - Handstand 2 设f[a][b]代表当前第一个数字为a第二个数字为b的数总个数 递推一下就可以。注意ab的情况。 # -*- coding: utf-8 -*- # time : 2023/6/2 13:30 # file : atcoder.py # software : PyCharmimport bi…

打造全身视角的医院可视化能源监测管理平台,实现医院能源可视化管理

医院是大型公共建筑的一种,随着医院规模的不断扩大,医院能源消耗剧增,能源消耗居高不下。医院对于能源监管的需求也越来越高。医院建立一套能耗监测管理平台,对于降低医院能耗有着非常重要的作用。 医院能耗存在的问题 1、医院能…

如何挑选RPA开发商?

其实,只要在这个行业调查的时间足够,不难发现里面有很多弯弯绕绕。 首先,RPA厂商虽然很多,但是优秀的RPA厂商就那么几家,它们都有各自擅长的领域,像金智维,就是在金融领域、政务领域&#xff1…

释放潜能,加速创新 | 低代码赋能企业数据资产管理(附案例)

在当今数字化快速发展的时代,企业要想保持竞争力,就必须紧跟潮流,不断进行自我革新。其中,数字化转型已成为企业发展的重要一环,在这个过程中,数据资产作为企业核心竞争力的关键组成部分,其管理…

pytorch tensor数据类型转换为python数据

一、item() input: x torch.tensor([1.0]) x.item()output: 1.0二、tolist() input: a torch.randn(2, 2) a.tolist() a[0,0].tolist()output: [[0.012766935862600803, 0.5415473580360413],[-0.08909505605697632, 0.7729271650314331]]0.012766935862600803

Java 通过POI快速导入带图片的excel并且图片不会丢失

## 通过POI快速导入带图片的excel并且图片不会丢失导入带图片的excel,这里也是研究了很久,在之前的博客中也有说明过,在项目使用过程中,发现很多时候导入响应很慢,而且每次导入图片都会丢失几张,所以又花了点时间研究修改了下,具体如下: 这边在导入时,通过自定义注解…

java初学者踩得雷

目录 一段子父类调用重写的代码 1. 重写的代码 2. 执行结果 3. 分析原因 4. 总结概括 一段子父类调用重写的代码 这是一段有坑的代码,我们创建一个子类A和父类B,A中重写function方法,并且在B的构造方法中调用function 1. 重写的代码 …

thinkphp5 原生sql查询及取返回值

刚接触php,以前大量数据库都是直接写sql的,方便,好管理, 用thinkphp后,发现没有sql,对mvc模式还没深入了解,但这边要在上面写一些接口,有涉及数据库查询,修改等&#xf…

【模式识别】计算机科学博士课程作业解析

作业二 2.1 最小风险贝叶斯决策分类计算 1、请给出以下问题的求解步骤,逐步给出计算过程: 已知条件为 P(w_1) 0.9 P(w_2)0.1 p(x|w_1)0.2 p(x|w_w)0.4 λ 11 0 \lambda_{11}0 λ11​0, λ 12 6 \lambda_{12}6 λ12​6 λ 21 1 \lambda_{21}1 …

【postgresql】查看数据中表的信息

切换到postgresql数据库,各种不适应吧。 有个需求需要查询数据表的各种信息。 下面我们一起学习吧。 PostgreSQL: Documentation PostgreSQL: Documentation pg_namespace 存储名字空间。名字空间是 SQL 模式下层的结构:每个名字空间有独立的关系&am…

NTTRU:兼容 NTT 算法的 NTRU-based KEM 方案

参考文献: [CT65] Cooley J W, Tukey J W. An algorithm for the machine calculation of complex Fourier series[J]. Mathematics of computation, 1965, 19(90): 297-301.[Mont85] Montgomery P L. Modular multiplication without trial division[J]. Mathemat…

⛳面试题-简述并分析ThreadLocalMap的key为什么是弱引用

⛳目录 简述 ThreadLocalMap 的 key 为弱引用的原因:分析:注意 : ThreadLocalMap 是 Java 中与 ThreadLocal 相关的一个重要类,用于在每个线程中存储和访问线程本地变量。在 ThreadLocalMap 中,key 为弱引用的主要原因…