对stm32程序(HEX)的读取和烧录(使用JLink和JFlash)

本文详细介绍了如何使用J-LinK仿真器和J-Flash软件读取STM32的HEX程序,并将其烧录到另一台STM32设备中。步骤包括J-Link的配置、目标设备的连接、Flash读取与程序写入。文章还对比了BIN、HEX、AXF和ELF文件的区别,并提供了操作步骤和注意事项。
摘要由CSDN通过智能技术生成

本文主要讲解:使用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下载程序步骤


  • 17
    点赞
  • 192
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 要使用Keil5和J-Link烧录程序STM32上,需要按照以下步骤操作: 1. 打开Keil5软件,创建一个新的工程。 2. 在工程中添加需要烧录程序代码和相关的库文件。 3. 在Keil5的菜单栏中选择“Options for Target”,打开“Target”选项卡。 4. 在“Target”选项卡中,选择“Debug”选项卡,然后选择“Use J-Link/J-Trace”选项。 5. 点击“Settings”按钮,打开“J-Link/J-Trace Settings”对话框。 6. 在“J-Link/J-Trace Settings”对话框中,选择“Target Interface”选项卡,然后选择“SWD”或“JTAG”接口。 7. 在“J-Link/J-Trace Settings”对话框中,选择“Flash Download”选项卡,然后选择“Erase Full Chip”选项。 8. 点击“OK”按钮,保存设置。 9. 连接J-Link调试器和STM32开发板。 10. 在Keil5的菜单栏中选择“Flash”选项,然后选择“Download”选项。 11. 程序将被编译并下载到STM32芯片中。 12. 下载完成后,可以使用Keil5的调试功能来调试程序。 以上就是使用Keil5和J-Link烧录程序STM32上的步骤。 ### 回答2: Keil5是一款常用的C语言集成开发环境,而STM32是一种常见的嵌入式系统开发平台。在使用Keil5进行STM32开发时,烧录程序便是关键环节之一。下面将介绍如何使用J-Link烧录程序STM32上。 首先,需要安装好J-Link软件和驱动程序。之后打开Keil5,选择Project-Options for Target,在弹出的窗口中选择Debug-Settings。 在Debug Settings中,选择Use: J-Link/J-Trace,Interface: SWD,选择JTAG/SW两种模式中的SW方式。此时,可以插入JLink,并点击Settings按钮,在弹出的选项中选择J-Link Debugger-J-Link Debugger Settings。选择Target-Settings,在Use: JTAG/SWD选择SWD,并在Speed下拉菜单中选择比较合适的频率(例如4000 KHz)。 之后,需要创建一个新的工程,并设置好相关的Target和Options。在Options中选择Use:J-Link Debugger,Interface:SWD。接着,将编译好的程序通过连接器链接成单个.hex文件,并保存到磁盘。在Output-Flash Memory中,配置好芯片的信息。 最后,在Keil5中选择Debug-Start/Stop Debug Session,在打开的J-Link Driver窗口中点击程序Load-File,并选择刚才生成的.hex文件,然后点击Program Flash。之后等待程序烧录完成即可。 总的来说,使用J-Link烧录程序STM32上需要在Keil5中进行相应的设置,包括调试设置、输出配置等等。操作稍加细心,一般能够顺利进行。 ### 回答3: Keil5是一款嵌入式开发工具,用于开发和调试嵌入式系统应用程序STM32是一种广泛使用的基于ARM Cortex-M内核的微控制器。如果需要将开发的应用程序烧录STM32芯片中,需要使用烧录器。J-Link是一种广泛使用的JTAG/SWD烧录器,可与Keil5集成使用使用Keil5和J-Link烧录程序STM32芯片的步骤如下: 1.首先连接J-Link调试器和STM32开发板。连接完成后,打开Keil5软件。 2.在Keil5中,选择“Flash”选项卡,并确保正确配置了目标芯片型号和连接器。 3.单击右侧的“设置”按钮,选择“J-Link/J-Trace”调试接口,并设置好连接速度和其他参数。 4.选择“Download”选项卡,单击“添加”按钮,选择需要烧录的文件。这些文件通常是.hex或.bin文件。 5.单击“下载”按钮,将程序下载到STM32芯片中。在下载完成后,Keil5会显示烧录的结果,以及任何错误或警告。 6.启动STM32芯片,确保应用程序已正确运行。如果存在问题,可以使用Keil5进行调试。在调试期间,可以单步执行代码并监视变量值。 综上所述,使用Keil5和J-Link烧录程序STM32芯片非常简单,只需遵循上述步骤即可。这种方法可确保高效的嵌入式开发和调试,并提高应用程序的质量和可靠性。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值