作者:王超
首发:电子电路开发学习
附各版本J-link驱动程序下载
最近从Win10系统,换到了Win7系统,所以就把之前安装的各种EDA软件重新安装一遍。安装完成之后,在使用Keil开发一款Cortex-M3内核的MCU时遇到了一个问题:使用Jlink-OB下载不了程序了。换了之前的Win 10系统,可以正常下载的,说明调试器没问题。最有可能的就是Jlink驱动的版本问题。
问题现象
- 硬件:ARM Cortex-M3 内核的 MCU + Jlink-OB 调试器
- 软件:Keil MDK v5.26
编译无错误,进行下载时,提示如下下载失败信息:
* JLink Info: Found SWD-DP with ID 0x2BA01477
* JLink Info: AP-IDR: 0x24770011, Type: AHB-AP
* JLink Info: AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
* JLink Info: Found Cortex-M3 r2p1, Little endian.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
* JLink Info: CoreSight components:
* JLink Info: ROMTbl 0 @ E00FF000
* JLink Info: ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB000 SCS
* JLink Info: ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWT
* JLink Info: ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPB
* JLink Info: ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITM
* JLink Info: ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 003BB923 TPIU-Lite
* JLink Info: ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 003BB924 ETM-M3
ROMTableAddr = 0xE00FF000
问题解决
同样的工程和调试器,换 Win 10 系统,下载调试完美运行。两者的差别就是J-Link的驱动程序版本问题。原来系统上的驱动程序版本是V6.32i,而现在的驱动程序是V6.14b,所有很有可能是因为驱动程序版本过低导致的。
到SEGGER官网,下载对应的 v6.32i 版本的调试器程序,驱动程序这种东西,还是去官网下载放心,避免不明网站捆绑的各种病毒等等。官网的版本还是非常齐全的,还包括其他系统的安装程序,如果使用宽带网络下载速度慢,可以尝试使用手机网络下载。
所有版本的Jlink驱动程序下载
http://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack
安装完成之后,把JFlash安装目录下的Jlink.exe
和JlinkARM.dll
两个文件替换掉Keil中的同名文件。
再次打开Keil,可以看到驱动程序已经更新为了V6.32i。
再次下载,成功!
总结
当然,使用J-Link下载失败,这只是一种解决方法,还有其他的降低时钟速率,使用复位管脚等等,如果遇到类似的问题,要多尝试几种方案。
我之前写的几篇关于J-Link使用的笔记:
- Jlink使用技巧系列教程索引
- Jlink使用技巧之合并烧写文件
- Jlink使用技巧之烧写SPI Flash存储芯片
- Jlink使用技巧之虚拟串口功能
- Jlink使用技巧之单独下载HEX文件到单片机
- Jlink使用技巧之J-Scope虚拟示波器功能
- Jlink使用技巧之读取STM32内部的程序
推荐阅读
- FPGA硬核和软核处理器的区别
- 评测-灵动半导体MM32W3蓝牙开发板开箱报告
- Verilog实现产生任意占空比的PWM波
- 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程
- Keil开发环境下添加AStyle插件对C代码进行格式化处理
欢迎关注公众号:电子电路开发学习,id:mcu149。
更多电子电路、单片机、嵌入式、物联网等技术文章欢迎关注电子电路开发学习专栏。