STM32CubeMX+Eclipse+gcc+Jlink 实现STM32开发环境搭建

news2025/1/18 7:02:27

本节记录通过STM32CubeMX+Eclipse+gcc+Jlink 进行STM32环境搭建的过程;

文章目录

  • 一、环境确认
  • 二、Eclipse建立工程
  • 三、指定编译路径
  • 四、选择gcc路径
  • 五、选择make路径
  • 六、 选择Device

参考:
https://blog.csdn.net/qq_35787848/article/details/124395509
https://blog.csdn.net/cyf1294311560/article/details/127115730

一、环境确认

1、我这边已经装好了STM32CubeMX、Eclipse、ARM gcc环境、JLINK等;如果你没有安装,请进行安装;
2、我这边已经安装配置好了STM32CubeMX,并通过CubeMX创建了一个Makefile的项目;如果你没有完成,请参考:

  • 从零开始搭建STM32CubeMX开发环境
  • STM32CubeMX使用示例—生成LED闪烁工程

二、Eclipse建立工程

打开eclipse,右上角,文件->新建->项目->c/c+±>已有代码的Makefile项目

在这里插入图片描述
在这里插入图片描述

选择之前CubeMX生成的Makefile项目,并选择Arm Cross GCC,如下图所示:

在这里插入图片描述
点击完成后,工程创建完成,如下图所示:

在这里插入图片描述

三、指定编译路径

此时我们打开工程里的main.c,会发现有很多红色的波浪线,这些红色波浪线表示找不到变量的定义,原因是当前的工程并不知道include的路径和一些symbol的定义,如下图所示:

在这里插入图片描述
此时需要我们打开Makefile,可以看到里面的-D参数和-I参数,如下图所示:

在这里插入图片描述

“-D”和“-I”后面的参数才是具体的Define和Include,Makefile中之所以这么写是为了方便把这些设置直接作为gcc编译的选项。比如“-DSTM32G030xx”实际上是需要定义“STM32G030xx”这个变量。

为了消除上面的波浪线,也就是说为了让编译器能找到这些变量的定义,我们需要设置定义这些变量的文件路径,也就是需要在工程的Properties中添加这些include和symbol;

打开工具栏的,项目->属性:

在这里插入图片描述

C/C++常规->路径和符号:

在这里插入图片描述
将Makefile中的头文件路径添加到“包含”下,添加方法如下:
在这里插入图片描述

Makefile和添加后如下图所示:

在这里插入图片描述

然后同样的方法,将变量路径添加到“符号”下:

在这里插入图片描述
然后点击应用并关闭即可。

四、选择gcc路径

项目->属性->MCU->Arm Toolchains Paths,然后将gcc的路径填进去:

在这里插入图片描述

五、选择make路径

项目->属性->MCU->Build Tools Path,然后将gcc的路径填进去:

在这里插入图片描述

六、 选择Device

要通过编译还有非常重要的一步,就是选择Device。

因为Makefile是我们自己生成的,所以前面即使不往工程里添加的include和symbol,我们根据这个Makefile进行make,一样能够完成编译。当工程目录下没有Makefile时,Eclipse CDT会帮我们生成一个Makefile,那时候才会用到我们在上面设置的东西。

我发现如果不选择Device,就无法编译,问题好像是找不到make。但只要选了相应的Device就可以正常编译了,所以下面我们需要选择:

在这里插入图片描述
这里应该选择对应G0的单片机,但是由于我做到这步无法往下进行了,公司的防火墙无法下载这些CMSIS,所以到这儿就停了。

后续待更新。。。。。。。。

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

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

相关文章

OPPO手机便签怎么上传录音文件?

相信很多网友对OPPO这个手机品牌并不陌生,因为它凭借时尚轻薄的外观设计、流畅简约的系统、清晰的拍照摄影以及高中低不同的价位选择,赢得了不少年轻消费者的青睐。不过在使用OPPO手机的过程中,也有不少用户表示自己遇到了各种各样的问题&…

mycat设置sql隔离级别的问题

问题 General log中出现大量SQL “SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ”。 该语句会引起两个问题, 1: "REPEATABLE READ"不是我们预期的事物隔离级别。 2: 大量无效的SQL影响性能。 注: MySql的可重复读会带来怎样…

高科技感发光地球(全息地球)的制作

目录 一、新建合成,导入素材 二、添加Form粒子 三、复制一层Form粒子 四、添加plexus 粒子 五、复制一层 plexus 粒子 六、添加调整层增加颜色 七、增加shine 效果 八、添加发光效果 九、最终效果图 高科技感发光地球(全息地球)的效…

自动化测试工具比传统测试工具的优势体现在哪里?

随着软件行业的快速发展和扩张,自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用,那你知道自动化测试工具比传统测试工具的优势体现在哪里吗? 首先,自动化测试工具能够大大缩短测试周期。相比于传统手动测试&#xff…

在 3ds Max 中对二战球形炮塔进行建模

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 实际上被称为“斯佩里球炮塔”,它被用于二战的B-17和B-24轰炸机。 本教程介绍如何在 3ds Max 中对球形转塔进行建模。建模时,您将使用背景图片作为辅助。首先创建一个低多边形球体。…

【Linux系统编程(文件编程)】之复现cp指令、修改文件应用

文章目录 一、文件操作原理二、文件操作步骤三、实现 cp 复制指令四、修改配置文件五、写一个整数到文件六、写结构体数组到文件01 结构体02 结构体数组 一、文件操作原理 文件描述符: 对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个…

Docker:overlay2浅析以及解决overlay2 文件过大的问题

最近在学习docker的实现时看到这么一个概念:Union File System,先让我们来介绍介绍它。 Union File System 定义:联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作…

VSCode 最全实用插件(VIP典藏版)

目录 一、必备插件 🌾Chinese(中文🌈🌈🌈🌈🌈) 🤡Settings Sync(配置同步到云端) 🌈wakatime(编程时间及行为跟踪统计&…

多目标跟踪数据关联算法

跟踪门 跟踪门的作用是将观测回波分配给已建立的目标轨迹或者新目标轨迹的一种粗略检验方法, 是机动目标跟踪中首当其冲的问题 。跟踪门是跟踪空间中的一块子空间 ,中心位于被跟踪目标的预测状态 ,其大小由接收正确回波的概率确定。设置的跟…

阿里云AliYun物联网平台使用-客户端API获取设备传感数据

一、前言 上一篇文章中,已经实现了虚拟数据上云,本文我们将进行上位机客户端的开发,即通过调用阿里云IOT物联网云平台的SDK,开发能获取传感器的遥感数据。 二、云平台操作 调用API需要用户的AccessKey Secret,这意味着…

使用IDEA的Run DashBoard

在微服务开发过程中,我们需要开启很多的服务,为了方便管理,我们可以使用IDEA的Run DashBoard来启动相关服务。 默认情况下,IDEA检测到你的项目中由SpringBoot项目时,会提示你开启Run DashBoard。如果没有开启的话&…

MySql5.6版本开启慢SQL功能

文章目录 1引言1.1目的1.2注意点说明1.3 操作步骤1.3.1 临时生效操作步骤1.3.2 永久生效操作步骤1.3.3 按日期生成日志文件1.3.4 执行成功后验证功能是否开启 1.4 慢SQL日志记录内容介绍1.5 Shell脚本 1引言 1.1目的 开启 MySQL 的慢查询日志(Slow Query Log&…

【Spring core学习二】创建Spring 项目 Spring的存

目录 🌟一、创建最原始的Spring-core项目。 🌟二、怎么往Spring中存取对象? 🌷1、在Spring中存对象 🌷2、通过getBean获取对象的三种方式 🌷3、通过factory方式获取对象 🌟三、对存对象的…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序&a…

TCP协议3次握手4次挥手

建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立,在socket编程中,这一过程由客户端执行connect来触发,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 TCP三次握手的过程如下:第一次握…

【编译之美】【5. 代码优化:数据流分析】

有些优化只能在全局优化中做,在本地优化中做不了,比如: 代码移动(Code motion)能够将代码从一个基本块挪到另一个基本块,比如从循环内部挪到循环外部,来减少不必要的计算。(循环剥离…

【HarmonyOS】Stage模型二维码/条码生成与解析

HarmonyOS的官方API中提供了QRCode组件(QRCode-基础组件-组件参考(基于ArkTS的声明式开发范式)-ArkTS API参考-HarmonyOS应用开发),这个组件有个缺点只能用于显示二维码,无法显示条码与解析码内容&#xff…

【hadoop】部署hadoop的伪分布模式

hadoop的伪分布模式 伪分布模式的特点部署伪分布模式hadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlyarn-site.xml对NameNode进行格式化启动Hadoop 对部署是否完成进行测试免密码模式免密码模式的原理(重要)免密码模式的配置 伪分布模式的特点…

Linux离线环境Jenkins部署SpringBoot

Jenkins服务器 把Jar包上传到Linux服务器的/jenkins/目录下 Dashboard----》新建任务----》构建一个自由风格的软件项目----》test 修改jenkins工作空间 新建构建前执行命令stop.sh,停止SpringBoot并备份 (这里是目标服务器,即部署项目的…

2.3 移动次数计算和静态链表

1. 元素移动次数计算问题 本问题针对顺序表, 因为链表不需要移动元素, 只需要重新连接指针即可. 题型一: 计算在某个位置上插入一个新元素会导致多少元素的移动. 题型二: 计算在每个位置上插入一个元素所导致的平均移动次数. 先计算每个位置上插入的概率, 一般是1/n, 平均移…