STM32多种开发环境及生成hex及bin文件介绍

news2024/12/23 14:01:31

一.STM32开发环境

  1. KEIL系列

(1)KEIL公司目前有四款独立的嵌入式软件开发工具,即MDK、KEIL C51、KEIL C166、KEIL C251,它们都是KEIL公司品牌下的产品,都基于uVision集成开发环境,其中MDK是RealView系列中的一员。

我们在做STM32程序开发编译的时候,基本上都是用keil5这个软件。

Keil5和Keil5 MDK(Microcontroller Development Kit)是同一个软件的不同版本。

Keil5提供了一个完整的开发环境,包括编辑器、编译器、调试器等。

Keil5 MDK包含了Keil5的所有功能,同时还支持ARM Cortex-M系列微控制器的编程、调试和仿真,以及相应的软件库和工具。

(2)keil软件有付费版本和免费版本,但免费版本有限制。

Keil MDK有四种版本:

MDK-Lite(免费版)

MDK-Essential(基础版)

MDK-Plus(增强版)

MDK-Professional(专业版)

MDK-Lite(免费版):

代码大小限制32KB。

支持极少的MCU,比如:STM32F0、 L0、 G0等Cortex-M0内核的处理器。

大部分中间组件都不能使用,比如:IPv4 网络、USB、文件系统等组件都不能使用。

(3)keil支持的芯片种类非常多,不局限于stm32系列。

2.STM32CubeIDE

STM32CubeIDE是ST于2019年新推出的一款多功能的集成开发工具,它集成了TrueSTUDIO和STM32CubeMX插件,并基于GDB进行调试,它允许集成数百个现有插件,这些插件完成Eclipse的功能。但是STM32CubeIDE只是ST公司芯片的开发环境,MDK所支持的芯片就要广的多了。

这个软件是免费的。

3.EWARM

EWARM,全称为IAR Embedded Workbench for ARM(IAR EWARM),是由IAR Systems公司开发的一款集成开发环境(IDE),专为ARM架构的微控制器设计。它提供了一个综合性的开发环境,用于编译、调试和优化基于ARM架构的嵌入式应用程序,适用于STM32等ARM Cortex-M系列微控制器的开发。

这个软件是付费的。

4.总结

   如果不考虑商业应用keil的比较好,如果考虑商业付费用STM32CubeIDE更好一些,毕竟是免费的。

二.keil软件生成文件介绍

  1. keil软件默认生成axf文件和hex文件

2.bin文件生成设置

配置 - Options for Target → Output

点击魔术棒"Options for Target" → 单击" Output " → 按下面截图所示配置

不指定路径 - 默认文件夹“Objects”

点击魔术棒"Options for Target" → 单击“User” → 按下面截图所示配置,配置完成后→ 点击"Build"编译 → 生成Bin / Hex文件

复制并输入以下内容:

fromelf --bin -o "$L@L.bin" "#L

参考文章:Keil生成并指定Bin和Hex文件的存放路径 - 附详细操作图文_keil生成bin文件-CSDN博客

三.STM32CubeIDE

  1. STM32CubeIDE默认是生成elf文件,类似keil生成的axf文件,都会比较大
  2. 编译生成 bin / hex 文件方法

如果想要bin或hex格式的固件可以在IDE左侧项目资源管理器(Project Explorer)中选择:项目右键 Prorerties 在弹出窗口的 C/C++ Build > Settings > Tool Settings > MCU Postbuild outputs 中选中生成bin和hex文件即可:

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

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

相关文章

从零对Transformer的理解(台大李宏毅)

Self-attention layer自注意力 对比与传统cnn和rnn,都是需要t-1时刻的状态然后得到t时刻的状态。我不知道这样理解对不对,反正从代码上看我是这么认为的。而transformer的子注意力机制是在同一时刻产生。意思就是输入一个时间序列,在计算完权…

内存马的错误参数获取,导致原有接口失效解决方案

内存马的错误参数获取,导致接口失效。 前言 java Listener 类型内存马,在使用request.getParameter(String name); 获取请求参数去判断是否是恶意请求的时候,会影响某些框架无法接收到参数。 例子 在Jersey 框架 使用 MultivaluedMap 去接…

MSPM0G3507——创建新的.c.h文件

在项目处点击右键,再点击New File 再命名.c.h即可

mysql中的datetime类型在Java中到底对应哪个时间类型?

因为MySQL中用的是datetime类型(年月日 时分秒) java.sql.Date 在Java中用 java.sql.Date 接收 但是得到的却只有年月日 前端接收到的是时间戳 java.time.LocalDateTime 在Java中使用 java.time.LocalDateTime 接收 得到的是带时区的时间 前端接收到的…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口差异切换上线IPC管道ATSC任务Impacket套件UI插件

红队内网攻防渗透 1. 内网横向移动1.1 横向移动入口知识点1.1.1、当前被控机处于域内还是域外1.1.1.1 在域内1.1.1.2 不在域内1.1.1.2.1 第一种方法提权到system权限1.1.1.2.2 第二种方法切换用户上线1.1.1.2.3 kerbrute枚举用户1.1.2、当前凭据为明文密码还是HASH1.2 横向移动…

Vue3中使用el-table遇到的问题

我在使用element-plus中el-table组件的时候&#xff0c;对于某一<el-table-column>标签内的内容设置show-overflow-tooltip属性&#xff0c;但这里溢出展示的tooltip的默认样式是无法像el-tooltip标签那样&#xff0c;直接可以修改的。默认的样式是这样&#xff1a; 因此…

江协科技51单片机学习- p11 静态数码管显示

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; 51单片机入门教程-2…

包含网关的概念及案例演示

包容网关 知识点讲解 包容网关可以看作排他网关和并行网关的结合体。与排他网一样&#xff0c;可以在外出顺序流上定义条件&#xff0c;但与排他网关不同的是&#xff0c; 进行决策判读时&#xff0c;包容网关所有条件为true的后继分支都会被依次执行。如果所有分支条件都为fa…

24年火爆全网的企业信贷产品-民生惠详解

今年&#xff0c;民生惠企业信贷产品非常火爆&#xff01;客户想申请这信用贷款前&#xff0c;先确认下自己是不是在白名单里。有些地区还能加进白名单&#xff0c;不在的话就别申请了&#xff0c;这是专门给受邀的小微企业的。 这款产品的细节是这样的&#xff1a; 额度&am…

实用软件下载:会声会影2023最新安装包及详细安装教程

可以说它不仅符合家庭或个人所需的影片剪辑功能&#xff0c;甚至能够挑战专业级的影片剪辑软件&#xff0c;适合一般大众使用&#xff0c;操作简单易懂&#xff0c;界面简洁明快。从总体上来看影片制作向导模式&#xff0c;只要三个步骤就可快速做出DV影片&#xff0c;入门初学…

一篇快速教你如何创建专业级数据可视化库

Seaborn 是一个基于 matplotlib 的 Python 库,主要用于数据探索、统计可视化和交互式分析.它提供了一种更高级、更美观的方式来绘制统计图表. 安装&#xff1a; pip install seaborn示例&#xff1a; import seaborn as sns import pandas as pd import matplotlib.pyp…

服务器SSH 免密码登录

1. 背景 为了服务器的安全着想&#xff0c;设置的服务器密钥非常长。但是这导致每次连接服务器都需要输入一长串的密码&#xff0c;把人折腾的很痛苦&#xff0c;所以我就在想&#xff0c;能不能在终端SSH的时候无需输入密码。 windows 可以使用 xshell 软件&#xff0c;会自…

nvidia历史版本驱动

打开官网 https://www.nvidia.cn windows GTX-1060为例 标准

Centos Stream9 和Centos Stream10的下载网址

Index of /https://mirror.stream.centos.org/

Redis进阶 - Redis 淘汰策略

我们知道Redis是分布式内存数据库&#xff0c;基于内存运行&#xff0c;可是有没有想过比较好的服务器内存也不过几百G&#xff0c;能存多少数据呢&#xff0c;当内存占用满了之后该怎么办呢&#xff1f;Redis的内存是否可以设置限制&#xff1f; 过期的key是怎么从内存中删除的…

SQLite数据库(数据库和链表双向转换)

文章目录 SQLite数据库一、SQLite简介1、SQLite和MySQL2、基于嵌入式的数据库 二、SQLite数据库安装三、SQLite的常用命令四、SQLite的编程操作1、SQLite数据库相关API&#xff08;1&#xff09;头文件&#xff08;2&#xff09;sqlite3_open()&#xff08;3&#xff09;sqlite…

VBA技术资料MF164:列出文件夹中的所有文件和创建日期

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

【Arduino】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)

今天小飞鱼继续来实验ESP32的开发&#xff0c;这里使用关敏电阻来配合ESP32做一个我们平常接触比较多的根据光线变化开关灯的实验。当白天时有太阳光&#xff0c;则把小灯关闭&#xff1b;当光线不好或者黑天时&#xff0c;自动打开小灯。 int value;void setup() {pinMode(34…

STM32驱动-ads1112

汇总一系列AD/DA的驱动程序 ads1112.c #include "ads1112.h" #include "common.h"void AD5726_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE );//PORTA、D时钟使能 G…

C++入门 vector部分模拟实现

目录 vector大致框架 vector常见接口模拟实现 begin迭代器 & end迭代器 capacity( ) & size( ) reserve operator[ ] push_back( ) & pop_back( ) sort vector大致框架 vector的内部的成员变量大概有三部分构成&#xff1a; namespace bit {template<c…