Keil-MDK编译完成后自动烧写下载
大多数人使用Keil调试程序都是先点编译工程(Build),然后等编译成功后再点下载(Download)或者调试(Debug)。Keil本身可以选择编译完成后自动开启调试,但是如果不想开启调试而是直接下载固件并运行就不行了,Keil并未直接提供该选项,还是要去点一下下载(Download)。这样对于我们这些“效率控“来说简直难以忍受!
但是Keil提供了运行自定义程序的设置界面,上篇文章介绍了Keil-MDK编译前后运行用户自定义程序,在这个基础上配合常用的J-link下载器可以实现编译完成后自动下载固件到MCU。
像上面这样在”Run User Programs After Build/Rebuild“里添加一个DownloadHex.bat的脚本。然后在编译完成之后就会自动调用这个脚本,自动开始下载。
脚本内容如下:
1 | echo Start Download Hex |
2 | "C:\Program Files (x86)\SEGGER\JLinkARM_V420p\JFlashARM.exe" -openprj "D:\STM32 Web Server\Code\STM32F103VE.jflash" - open "D:\STM32 Web Server\Code\Obj\WebServer.hex" ,0x0 -auto - exit |
echo Start Download Hex:显示一个开始下载的提示。
“C:\Program Files (x86)\SEGGER\JLinkARM_V420p\JFlashARM.exe” -openprj”D:\STM32 Web Server\Code\STM32F103VE.jflash” -open”D:\STM32 Web Server\Code\Obj\WebServer.hex”,0x0 -auto -exit
“C:\Program Files (x86)\SEGGER\JLinkARM_V420p\JFlashARM.exe”:调用J-link的下载程序FlashARM.exe,由于路径中有空格所以在完整路径前后加双引号(下同)。
-openprj”D:\STM32 Web Server\Code\STM32F103VE.jflash” :加载工程文件,这个文件可以到J-link的安装目录下打开FlashARM.exe,然后新建一个工程,再设置好J-link工作模式、运行频率、CPU型号等参数,并验证可以正常下载目标固件文件后保存得到。
open”D:\STM32 Web Server\Code\Obj\WebServer.hex”,0x0:加载固件文件并设置固件在目标Flash中的起始地址,这个文件需设置Keil输出Hex,然后编译完成后可以在Keil的输出文件夹里找到。固件起始地址如无特殊需要一般都是设为0。
-auto:自动开始下载,这个指令的具体内容在J-link工程的设置界面里勾选需要执行哪些操作,如下图。
-exit:关闭J-link下载界面。
附:J-flash完整命令行指令
文章末尾固定信息

评论