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

使用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.hqwc.cn/news/175100.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设大型综合运维平台,对接集成多厂商网管系统

当前,云计算、大数据、人工智能等IT技术迅猛发展,企业的信息化步入了一个崭新的时代,企业规模不断壮大,业务不断拓展,企业信息化依赖的网络结构和IT技术越来越复杂。因建设时期等原因,企业网络中分布着不同…

实现线程的多种方式锁的介绍ThreadLocal线程池 详细总结(下)

本文主要介绍线程池的基本使用 上述其他介绍在上一篇文章中:实现线程的多种方式&锁的介绍&ThreadLocal&线程池 详细总结(上)-CSDN博客 线程池 5.1、为什么使用线程池 线程池可以看做是管理了 N 个线程的池子,和连…

asp.net实验管理系统VS开发sqlserver数据库web结构c#编程web网页设计

一、源码特点 asp.net 实验管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发。 asp.net实验管理系统1 应用技术&am…

Control的Invoke和BeginInvoke

近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。 (一)Control的Invoke和BeginInvoke 我们要基于以下认识: (1&#x…

【Java】线程的调度、生命周期及状态转换

🌺个人主页:Dawn黎明开始 🎀系列专栏:Java ⭐每日一句:夜色难免黑凉,前行必有曙光 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ ​ 文章目录 一.&…

冲击900亿美元估值!邀约路演、秘密交表的Shein上市有望

双十一的狂欢刚刚结束,Shein即将赴美上市的消息又在电商圈里投下一枚重磅炸弹。 继被媒体曝光其寻求900亿美金估值后,最新的消息称其已邀请投资人参与路演,且已秘密完成交表。这个神秘的中国独角兽,离敲钟登陆美股的日子越来越近…

如何实现Redisson分布式锁

首先,不要将分布式锁想的太复杂,如果我们只是平时业务中去使用,其实不算难,但是很多人写的文章不能让人快速上手,接下来,一起看下Redisson分布式锁的快速实现 Redisson 是一个在 Redis 的基础上实现的 Java…

Mozilla 面向基于 Debian 的 Linux 发行版

导读Mozilla 公司今天发布新闻稿,表示面向 Debian、Ubuntu 和 Linux Mint 等基于 Debian 的发行版,推出了.deb 格式的 Firefox Nightly 浏览器安装包,便于用户在上述发行版中更轻松地安装。 本次更新的亮点之一在于采用 APT 存储库&#xff0…

think5和fastadmin验证规则的使用

在fastadmin中使用验证规则只需要两步即可 第一步 首先在控制器中开启验证规则 protected $modelValidatetrue;//开启验证规则protected $modelSceneValidatetrue;//开启场景验证第二步 在 app\admin\validate 和控制器对应的 validate 中添加 验证规则以及场景验证 <?…

Winform / WPF 自定义控件 —— IPV4 地址输入框

在开始阅读本文之前&#xff0c;如果您有学习创建自定义控件库并在其他项目中引用的需求&#xff0c;请参考&#xff1a;在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 Winform / WPF 框架…

Java主流分布式解决方案多场景设计与实战

Java的主流分布式解决方案的设计和实战涉及到多个场景&#xff0c;包括但不限于以下几点&#xff1a; 分布式缓存&#xff1a;在Java的分布式系统中&#xff0c;缓存是非常重要的一部分。常用的分布式缓存技术包括Redis、EhCache等。这些缓存技术可以用来提高系统的性能和响应…

Spark通过三种方式创建DataFrame

通过toDF方法创建DataFrame 通过toDF的方法创建 集合rdd中元素类型是样例类的时候&#xff0c;转成DataFrame之后列名默认是属性名集合rdd中元素类型是元组的时候&#xff0c;转成DataFrame之后列名默认就是_N集合rdd中元素类型是元组/样例类的时候&#xff0c;转成DataFrame…