打印
[APM32F4]

使用J-Link批处理烧录MCU

[复制链接]
1771|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Aligagago 于 2023-9-7 09:25 编辑

      最近在调试一款ARM内核的芯片,调试阶段需要不停的断电,配置,烧录。每次启动芯片都要重复配置,不仅繁琐还浪费时间,索性直接调用J-Link工具,自己做个批处理脚本,实现一键“启动”,快速开发。
      目前使用ARM 内核的MCU都可以通过JLINK的工具进行烧录,JLINK提供了多种配套的软件工具,其中图形界面(JFlash.exe)和命令行(JLink.exe)的烧录方式比较常用,但无论使用哪种烧录方式,每次烧录都需要要重新操作,那将会很麻烦,所以我们可以采用批命令的方法来进行烧录。那我们就先看下JFlash的批处理脚本如何实现。JLINK官网:https://www.segger.com/
目前最新版是V7.92c
本次使用的是V7.88e


如何查找JFlash指令,我们可以在软件界面查看网页版,
也可以在安装目录:xxx\SEGGER\JLink\Doc\Manuals\UM08003_JFlash.pdf查看PDF版。
打开帮助文档,我们可以找到第五章:命令行接口
找到5.2 Command line options 查看支持的命令:
其中常用的以下几个命令较为常用:
-openprj<FILENAME>jflash文件路径。
-open<FILENAME>[,<SADDR>]bin文件路径,bin文件烧录地址。
-erasechip:擦除全片Flash
-programverify:烧录校验。
-startapp:运行程序。
-exit:退出JFlash。

然后我们开始编写批命令:
@echo OFF
ECHO Open JFlash for LED2_3
cd C:\Program Files\SEGGER\JLink
JFlash.exe -openprjC:\Users\geehy\Desktop\LED2_3.jflash
–openC:\Users\geehy\Desktop\LED2_3.bin,0x08000000
-auto -startapp -exit
IF ERRORLEVEL 1 goto ERROR
goto END
:ERROR
ECHO J-Flash ARM: Error!
pause
:END

注意:
1.     cd:添加JFlash.exe 路径,如果该exe文件已经添加到系统环境变量,就可以直接使用,不然就需要添加绝对路径。
2.     -openprj和-open 后面紧跟文件,中间不能有空格。
3.     bin文件和烧录地址之间用(,)间隔。

写完批命令后我们试着用APM32F407的开发板进行验证,
创建一个APM432F407的JFlash工程,
将SDK中Example工程编译生成bin文件,
双击上述写的批命令(.bat)。
烧录成功后,窗口关闭,否则出现Error错误提示。

同时我们也可以通过J-Link Commannder(命令行)进行烧录
打开J-Link Commannder,发送? 查阅命令
主要命令包括:
mem32:读32字节内存。
W4:写32字节内存
h:停止CPU运行查看PC
g:运行
r:复位
q:退出
LoadBin <filename>,<numbytes>:下载bin文件
SaveBin <filename>,<addr>,<numbytes>:保存bin文件
我们写一个:LED2_3.jlink 文件
loadbin C:\Desktop\LED2_3.bin0x08000000
savebin C:\Desktop\Read.bin0x08000000 0x800
mem32 0x08000000 0x10
g

然后添加批命令:
"C:\xxx\JLink.exe" -autoconnect 1 -device APM32F407VE -if swd
-speed 1000 -commandfile C:\Desktop\LED2_3.jlink
  
-AutoConnect  <Value>
  
Value==1: Forces the  J-Link Commander to  connect to the target, automatically.
-Device  <DeviceName>
Selects the target  device.
-If  <TargetInterface>
Configures the target  interface.
-Speed  <InterfaceSpeed>
Configures the target  interface speed.
-CommandFile  <CommandFilePath>
Selects a  J-Link Command file which contains the commands for batch mode /  auto execution.
上面介绍的方法只是简单的演示,JLink的功能还是很强大的,大家可以去查看官方资料,根据自己的需求,制定专属批命令,在开发过程中可以更加高效。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

14

帖子

0

粉丝