对stm32程序(HEX)的读取和烧录(使用JLink和JFlash)
本文主要讲解:使用J-LinK仿真器,借助于J-Flash软件,如何读取现有的stm32内部的程序(HEX文件),并烧录到另一台新的stm32中。
(前提是原stm32未进行加密处理)
先介绍下载器J-LinK 和 软件J-Flash:
上一篇介绍了 J-LinK-OB改造版 仿真/调试器 使用说明:
J-LinK-OB改造版 仿真/调试器 使用说明_m0_46511220的博客-CSDN博客https://blog.csdn.net/m0_46511220/article/details/121132945?spm=1001.2014.3001.5501上文中提到了在 驱动安装 之后,桌面出现以下两个软件,分别是 J-Link 控制检测程序和 J-Flash 下载程序。 J-Flash 软件可以通过 J-Link 下载(烧写,烧录,编程)数据文件 HEX。
Bin,HEX,AXF,ELF文件:
BIN文件
bin文件是单纯的二进制程序文件,按照assembly code顺序翻译成binary machine code,内部没有地址信息。
Bin是直接的内存映象表示,二进制文件大小即为文件所包含的数据的实际大小。不能使用记事本直接打开,要使用bin文件阅读器才能打开。
如果使用bin文件烧录程序时,需要指定下载地址。
一些下载器只能使用BIN文件进行下载,在进行OTA远程升级时必须使用bin文件。
HEX文件
一般是指Intel标准的hex文件,可以使用记事本直接打开,是十六进制数据,包含了基地址、偏移量、校验和、文件开始和结束标志等信息,与bin文件最大的不同就是包含了下载地址。由于hex文件是十六进制数据,而bin文件是二进制数据,如十六进制0xFF,用二进制表示为1111 1111,所以HEX文件要比bin文件大得多。与axf文件相比,不含调试信息,不能用于调试。
可以参考:
GENERAL: Intel HEX File Format (arm.com)https://developer.arm.com/documentation/ka003292/1-0
AXF文件
Axf文件由ARM编译器产生,除了包含bin的内容之外,还附加其他调试信息,这些调试信息加在可执行的二进制数据之前。如进行在Keil环境使用Debug功能时,就是先将axf文件下载到芯片内,才能进行调试。如使用J-Link的J-Scope功能时,必须使用axf文件。
调试信息有以下功用:
1、 可将源代码包括注释夹在反汇编代码中,这样我们可随时切换到源代码中进行调试。
2、 我们还可以对程序中的函数调用情况进行跟踪(通过Watch & Call Stack Window查看)。
3、对变量进行跟踪(利用Watch & Call Stack Window)。
ELF文件(Executableand linking format)
是由GCC编译器生成的,是x86 Linux系统下的一种常用目标文件(objectfile)格式。elf文件可以直接转换为hex和bin
例如Linux系统下使用gcc指令gcc -o test test.c生成的 ELF 文件,可以通过./test直接执行。
读取和烧录stm32程序(HEX)的操作步骤:
Jlink连接配置:
第一步:Options->Project settings或者使用快捷键“Alt-F7”打开工程设置界面。选择默认的USB-Device 0
第二步:目标接口方式和速度设置:打开Target Interface选项,选择SWD方式,下边的SWD speed before init和SWD speed after init可以选择为Auto selection。
读取Flash中的程序:
第一步:Option-->Project Settings-->CPU下选择 Device 在下拉菜单中找到自己的芯片型号后点击确定。
第二步:Targect-->Connect链接JLINK ,LOG栏中会有连接状态显示
连接成功后,Targect-->Read back-->Entrie chip读取整个Flash区域, 接下来就等待读取完成了。
第三步:File-->Save file as 选择要储存的文件类型如:HEX格式,存储就OK了。
写入读取的HEX文件:
第一步:File-->Open data flie打开相应的HEX文件。
第二步:Targect-->Connect链接JLINK ;Targect-->Program 等待烧录完成就OK了。
(转载于:JFlash ARM对stm32程序的读取和烧录_白小白-CSDN博客_jflash下载程序步骤)
对stm32程序(HEX)的读取和烧录(使用JLink和JFlash)相关推荐
- STM32程序烧录---TTL
STM32程序烧录-TTL 使用TTL给STM32烧录程序接线方式: TXD-接 PA10/USART1_RX RXD-接 PA9/USART1_TX 3V3 GND 接供电 STM32程序烧录一般使 ...
- STM32程序烧录方式总结
STM32启动模式 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯 ...
- STM32程序正常烧录后不能运行的可能原因(关于新旧CUBE的型号问题)
STM32程序正常烧录后不能运行的可能原因: 1. 没有勾选Mirco Lib: 2. 没有在烧写选项里勾选reset and run,然后自己也没有手动复位,把自己吓到了: 3.对于使用HAL库生成 ...
- ubuntu中使用jlink烧录stm32程序
安装jlink驱动参考https://blog.csdn.net/lc_cc/article/details/66982821 1.以下为通过jlink连接到stm32的操作(红色为命令输入行,部分使 ...
- STM32程序的常用的两种烧录方式
STM32有两种常用的烧录方式,一是利用JLink和STLink调试下载,二是利用串口线直接下载 一.ISP(In-System Programming) 在系统编程,使用引导程序(Bootloade ...
- 如何使用ubuntu编译stm32程序
之前一直在做Linux应用层相关的工作,使用ubuntu编译代码.最近的项目中需要用到stm32,stm32的编译环境为keil5.在一台电脑上装两个编译器总数觉得麻烦,故而想能不能直接使用ubunt ...
- SEGGER J-Flash 烧写stm32程序
SEGGER J-Flash烧写stm32程序 1. 创建工程 2. 下载文件 3. 读回文件 stm32单片机编程常用开发工具有MDK.IAR.STM32Cube系列等.但是等到开发完成之后,转交生 ...
- 简单stm32程序编写以及调试
简单stm32程序编写以及调试 一.环境配置 1.MDK的安装 MDK(Microcontroller Development Kit)是针对ARM处理器,特别是Cortex-M内核处理器的最佳开发工 ...
- ARM汇编语言编程-Keil环境搭建及STM32程序的编写
目录 一.keil环境搭建 1.keil安装 2.注册LIC 3.支持包安装 二.STM32程序 1.新建工程 2.配置环境 三.总结 一.keil环境搭建 推荐百度网盘下载mdk531 mdk31安 ...
最新文章
- lists,tuples and sets of Python
- android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹
- oracle的sequence是什么,关于Oracle的序列(Sequence)使用内容是什么呢?
- python能做表格吗-零基础小白怎么用Python做表格?
- iOS经典面试题之分析GCD的dispatch_group任务执行问题
- 解决篇:wampserver访问your projects项目,路径不加localhost前缀 - 解决篇
- 深度学习在Airbnb搜索推荐中的应用实践
- 技术分享连载(八十六)
- android 常用代码
- STM8S 低功耗(1)
- Atitit 文档的格式演变attilax总结
- 基于神念TGAM的脑波小车(4)
- 数据分析师培训班哪家好?
- 复合辛普森公式matlab,复合梯形公式、复合辛普森公式 matlab
- 感恩—父亲节、母亲节由来及日期
- android 盒子 红白机 模拟器,安卓FC模拟器
- 医用计算机是什么意思,pc是什么意思(全网最全解读pc寓意)
- C++:66---特殊工具与技术之(不可移植的特性:位域、volatile、extern “C“链接提示)
- Java @Data注解
- 环保行业舆情管理制度