最 近我兄弟(亲弟弟)把我的某宝Jlink V9 拿去用了。没办法自己也得用啊,所以把几年前买的Jlink V8翻出来用(也是某宝出品),结果~~没法正常调试

虽然Jlink V8以前用着正常,可以前用的是低版本的MDK。现在用的是MDK5.25,Jlink V8 在手上算是老物件了。所以我想当然的,认为需要刷新V8固件。然并卵!!!反复搞没有解决调试问题,原本在MDK5.25下是可以正常烧写程序的,最后搞的不能正常烧写程序。还多出一毛病,基本功能完全丧失,这不成黑砖了吗?


题外:Jlink V8 砖头恢复

【Jlink V8 砖头复活工具下载】

注意:复活工具在win7 下,是不能正常连接Jlink V8 引导程序的,我试过N次了。我是在Win7 下安装了一个xp虚拟机,在虚拟xp下安装工具,才能成功重刷Jlink V8固件。

使用虚拟机之前,要在BIOS里把CPU的虚拟功能打开。

先安装WindowsXPMode_zh-cn.exe 虚拟xp系统(实际上就是一个虚拟文件,500多M)

下载地址:https://download.microsoft.com/download/D/7/A/D7AD3FF8-2618-4C10-9398-2810DDE730F7/WindowsXPMode_zh-cn.exe

再安装Windows6.1-KB958559-x86-RefreshPkg.msu 虚拟工具(Windows Virtual PC ,实际上就是一个系统补丁)

下载地址:https://download.microsoft.com/download/0/5/5/0554AE99-785F-45CB-B1F2-0E3ED1E6117D/Windows6.1-KB958559-x86-RefreshPkg.msu


以前能正常使用,本质上V8本身也是能正常用的。就算你再怎么找,也找不到在2014/11/28日之后出现的V8固件版本(哪怕你在网上下载的、标称2014年之后的固件),因为你把V8重刷固件之后,MDK5中第一次访问Jlink V8的时候,MDK给你更新的最后版本就是 2014/11/28 的版本。刷来刷去还是回到了问题的原点。

先解决Jlink V8 在MDK5.25 里不能烧写程序的问题。

1.排除Jlink V8 硬件驱动问题。

我的使用环境是:win7 32  MDK5.25 。驱动用 6.20h 或 6.12a 的都试过,都能正常下载。网上查询的结果是:建议用6.12j的版本。这一点是乎没有什么那么苛刻的要求。事实上我就是用的6.20h版的驱动!(同一个设备,不同驱动版本可以在系统的设备管理器中进行调节,别用什么驱动精灵之类的工具调节,那东西只保证设备运状态是正常的,可不保证版本对号)

2.排除JTAG 或 SW 烧写线 连接问题。

这是容易忽略的基本问题,要保证程序烧写连接线,连接正确,且不能有接触不良的情况!来回折腾,谁能保证没问题?

3.排除 Segger 文件夹内文件版本匹配的问题。

MDK5安装目录的Segger 文件夹内有三个文件非常重要,Jlink.exe , JLinkARM.dll, JL2CM3.dll 。这三个文件MDK安装时自带。而我们使用Jlink 前,Jlink.exe , JLinkARM.dll 需要从驱动安装文件夹中复制到MDK5的Segger文件夹,替换原有文件注意:6.12版驱动文件中的 Jlink.exe , JLinkARM.dll  , 不能与MDK5.25自带的JL2CM3.dll一同使用烧写程序时会出现如下错误

因为MDK5.25JL2CM3.dll的版本为2.99.29.0 ,与 6.12驱动中上述两个文件的程序功能(库接口)不匹配。可以简单的理解为 JL2CM3.dll 的版本过高。虽然不能烧写程序,但是可以正常取得ARM芯片的基本信息。

6.20版本驱动中的 Jlink.exe , JLinkARM.dll 与 MDK5.25 自带的 JL2CM3.dll 配合,Jlink V8 可以正常烧写程序。如下图是烧写结果。

(如果仅仅为了能烧写程序,看到这里就可以了。)


再处理不能正常调试的问题。

按照上面的提示进行处理,可以烧写程序了,但不能正常调试程序!打开调试状态,十几秒钟之后就会报错,退出调试状态,或挂在调试状态。

MDK会不厌其烦地告诉你:“你用的是某宝产品,来来来,把你看到的信息依我妹”,接下来进入调试状态,寄存器显示正常数据:

十几秒内如果有遇到断点,是可以正常跳到断点暂停的,十几秒后,如果断点继续往下执行,会报错:

并且所有寄存器显示为零,如下图:

接着要么退出调试状态,要么MDK挂在调试状态(实际上ARM程序是接着往下跑,至于有没有跑迷路,就不晓得了

造成这种情况的原因是: Jlinkk V8 只能使用 2.99.23.0 或 低于这个版本的 JL2CM3.dll 文件。(这是网友hslaiaya提出的观点 。原文出处:http://bbs.21ic.com/icview-1858620-1-1.html)

但也不能低的太离谱,这是我试验了一天得出的结论!

为了找到什么低版本的 JL2CM3.dll 能使Jlink V8正常烧写,又能正常调试,我以6.12a版本的驱动测试了 2.0 到 2.66.0.0,八个版本的 JL2CM3.dll, 只有2.02这个版本能通过Jlink V8正确读取ARM的基本数据,但,也不能烧写和调试程序。(其中2.0版的JL2CM3.dll 是 MDK4.12版自带的文件)其它版本,要么无法找到芯片,要么认错芯片,要么干脆把MDK5.25主程序搞挂掉!(这是欠多少钱呐,都没操作成功,至于要它挂掉吗?)

没办法,又安装了一个 MDK5.15 版,从里面把2.99.15.0版的 JL2CM3.dll 拿出来,连同 Jlink 6.12a驱动中的Jlink.exe , JLinkARM.dll 文件放入MDK5.25 的 Segger 文件夹下。最终测试成功,可以正常烧写程序,可以正常调试程序,也不要你依他妹。

(实践证明Jlink 6.20h驱动中的link.exe , JLinkARM.dll文件也可以配这个版本的JL2CM3.dll 使Jlink V8在MDK5下正常使用!不是网查资料中说的那么言之凿凿,“不能使用高于Jlink 6.12j版本的文件”)

实际上 Jink V8 ,Jlink V9 在MDK5.25 中使用时,只需要切换 Segger中的三个文件就行了。

将下面的文件解压出来,放在MDK5的 Segger 文件夹内(..Keil_v5\ARM\Segger) 替换原有文件 (替换前注意备份原文件),就可以切换使用Jlink V8 或 Jlink V9了。

【JLINK V8 MDK5.25_Segger替换文件】

【JLINK V9 MDK5.25_Segger替换文件】

Jlink V8 在 Keil MDK5.25 中无法正常烧写、调试程序的故障处理相关推荐

  1. A20在Linux中Livesuit不能烧写问题

    使用A20开发板在Linux下烧写时需要使用Livesuit.Livesuit的安装方法安装包中PDF已经给出,也可以参考:http://hands.com/~lkcl/ReadMe.pdf.安装好驱 ...

  2. android tftp实现_fastboot中使用tftp烧写kernel

    [android最新源码(4.4.2_r1版本以上)下载参考:http://source.android.com/source/downloading.html红色字体表示多项选择中,我所做的选择 安 ...

  3. MDK 5.25 J-link V9 烧写程序失败

    软件环境:MDK 5.25 硬件:J-link V9,固件J-Link V9 compiled Mar 2 2018 17:07:57.J-link驱动版本V6.14a. 最开始能够烧写程序.但是有一 ...

  4. Ubuntu下 stm32 jlink驱动的安装(1)通过JLink烧写、调试STM32

    转载地址 https://blog.csdn.net/lc_cc/article/details/66982821 最近在学习RT-thread,想在在LINUX下编译烧写stm32,JLink驱动安 ...

  5. MDK5.25以上版本解决j-link “the connected j-link is defective“ 问题

    一.问题 MDK更新到5.32之后,无论是使用J-LinkOB烧写程序还是在线仿真都会提示如下: 然后轻则每次都需要把这个警告去掉,仿真可能遇到问题,重则程序直接闪退(我遇到每次都是闪退).实测从5. ...

  6. Keil MDK5中(1)汉字注释显示转向,字体显示朝左旋转90°(2)汉字注释显示为问号(3)按回车后光标缩进距离太大的解决办法

    这是目录0.0 前言 第一个问题:汉字注释显示转向,字体显示朝左旋转90°解决办法: 第二个问题:注释中的汉字变成了问号,显示不出来,如下图所示: 第三个问题:按回车后光标缩进距离太大,如下图所示: ...

  7. 成功解决Keil MDK5中no browse information available in ‘xxx’的问题

    使用MDK5的Go To Definition of ''功能的时候,报错no browse information available in 'xxx' 如图所示: 解决方案: 点击Option f ...

  8. JLink V8刷固件方式 转载整合

    第1种方式: [科普贴]J-LinkV8固件刷新 转载于  https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid ...

  9. STM32F051用jlink V8进行调试设置MDK环境buc

    最近自己做了一块STM32F051R8的板子,cortex M0,本来想着就串口用flash loader demo 下载程序吧.后来发现调试程序还是有点麻烦,就买了个山寨的jlink V8.我是用k ...

  10. JLink v8的自我救赎 defective or does not support the following memory access Read 0x02000004

    JLink v8的自我救赎 你有没有用着用着JLink,突然某天醒来,发现JLink插上电脑灯不亮了? 你有没有升级高版本(5.27a或更高)MDK后,一直提示你要升级JLink固件? 当你点下YES ...

最新文章

  1. 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令
  2. 智能车竞赛技术报告 | 智能车视觉 - 西南科技大学 - 西科二队
  3. SAP Business One on HANA登陆阿里云
  4. Python字典dict的增删查改及常用操作
  5. easy and hard things
  6. 自己实现strstr函数与strchr函数
  7. 函数调用的参数太少c语言,调用input_message的参数太少在主函数中 是神马意思 大神们帮帮我...
  8. 年轻有为的老黄2020
  9. directx最终用户运行时_运维定位服务故障时,前5分钟都在忙啥?
  10. 第1章 C/C++与开发环境介绍(《C和C++游戏趣味编程》配套教学视频)
  11. 2014年计算机职称考试试题库,2014年职称计算机考试全真模拟试卷(1)
  12. 页面上通过地址栏传值时出现乱码的两种解决方法
  13. Microsoft SQL Server Query Processor Internals and Architecture
  14. java有序的Map-LinkedHashMap
  15. sqlserver:什么是数据库实例?
  16. 2009年计算机一级考试真题及答案
  17. L2到L4的泊车辅助系统---APA自动泊车、RPA远程遥控泊车、自学习泊车、AVP自动代客泊车
  18. 基于单片机的超市储物柜设计_一种超市用储物柜的制作方法
  19. pycocotools使用教程,基础版
  20. 【新手基础教程】MaixPy AI 硬件加速基础知识

热门文章

  1. 混沌理论(Chaos Theory)
  2. docker编配和服务发现
  3. 2012-2013年薪水涨幅最高的十五个IT职位
  4. Win11麦克风有回音怎么消除 Win11麦克风回声怎么调
  5. 分享5个非常实用的电脑操作技巧,简单还很实用。
  6. 【机器人学习】SCARA机器人正逆运动学分析与直线轨迹规划
  7. HTML动画滑动图片特效
  8. 使用财务系统所用到的会计基础知识(一)
  9. 博弈论总结(题目合集)
  10. Scrapy spiders介绍