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

2023-05-16

最 近我兄弟(亲弟弟)把我的某宝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替换文件】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • Keil调试即全速运行/断点不停的其中一个原因

    平台 芯片 STM32F767IGT6 环境 Keil 5 14 00 问题 keil 下载程序可以执行 调试时刚进调试就上电运行 打断点不停 但是程序正常在跑 可以单步调试 原因 Jlink硬件版本和驱动的问题 解决 之前电脑使用stm3
  • STM32CubeIDE设置Flash烧录地址和大小(告别Keil魔术棒)

    STM32CubeIDE中设置Flash烧写地址和范围 在由Keil平台转到STM32CubeIDE平台过程中 我们熟悉的点开魔术棒进行相关烧录配置的方式已经不适用了 在STM32CubeIDE平台中我们需要通过修改文件的方式来实现 稍显麻
  • J-LINK 操作使用指南

    一 安装J LINK驱动 我们提供的驱动版本有v6 14d的版本 默认配置安装即可 安装完成后 将J LINK插入电脑在设备管理器中将会显示J LINK端口 二 固件下载及配置 J LINK安装完成后 进入J FLASH界面如下 配置J F
  • keil的错误: Error: Encountered an improper argument 的2019.6.22最新解决方法

    keil的错误 Error Encountered an improper argument 的解决方法 什么都不要改动 最正确的办法是重新破解
  • Keil转到Eclipse遇到的几个问题

    ARM下Keil转到Eclipse后的几个问题 Keil转战到Eclipse下 首先 Eclipse的交叉工具链的环境要进行设置 其次 在Keil中的Scatter file在Eclipse下要重新编写 最后 Eclipse的调试环境要进行
  • Keil 5使用ST-LINK调试STM32程序

    1 下载并安装STM32 ST LINK Utility 含有驱动 2 启动STM32 ST LINK Utility 点击菜单 ST LINK Firmware 更新固件 3 打开Keil工程 设置Debug 4 开始调试
  • keil5软件安装&开发环境搭建教程(mdk,c51通用)

    这是我在csdn上写的第一篇文章 心情激动兴奋 因为之前都是看别人写的博客 从来没想过自己去写一篇 在学长的鼓励下 尝试完成人生第一篇博客 仍有不足 希望大佬多多指正 写这篇的目的是因为keil5的安装是许多人入门嵌入式的第一步 而且以后遇
  • MDK5__配色方案的修改

    一 必要的知识 与MDK主题相关的文件有两个 在X Keil v5 UV4路径下 global propglobal prop def其中global prop def是系统默认的主题配置 如果修改过字体等 系统会生成一个global pr
  • Keil最舒服的配色方案

    每次重装keil 都会重新配置下颜色 因为默认的颜色 看久了实在不太舒服 每次调到一个舒服的颜色 都要花不少时间 为了后面节省时间 现记录一下 如下就是我觉得还不错的配色方案 如果你觉得也还可以 可以接着往下看 一 进入配置 二 光标所在行
  • 如何利用J-Link烧写进行程序烧写

    1 准备工作 1 1硬件准备 准备一个烧写器 如下图所示 1 2软件准备 需要JLink软件安装包和驱动 如下图所示 JLink 652e rar为软件安装包 ST LINK V2 zip为驱动文件 首先安装J Link软件 解压第一个压缩
  • Keil不能正确生成.bin文件的解决办法

    1 打开keil IDE 然后打开help gt uVison Help 搜索fromelf关键字如下图1 然后再进入到右下角的索引找到fromelf命令行的语法和选项 找到 bin的说明如下 如红色标注所说 正是症结所在 即如果链接文件中
  • 关于KEIL MDK调试ARM程序不能仿真的问题

    在单片机程序调试过程中 由于程序量小 利用仿真器进行仿真调试方便直观 所以一般经常使用 但是keil经常会出现罢工 无法用仿真器调试的现象 如下图 解决方法也很简单 按照下图设置即可
  • STM32技巧: Keil错误提示“ File Not Found”

    1 文件已添加到工程目录但提示 file not found 原因 仅添加到目录但未包含编译文件的路径 解决 Option gt C C gt Include Paths 添加提示缺失的文件所在路径 错误提示消失
  • 【单片机】keil和Proteus使用教程

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 kei
  • [keil5] 中有关“TOOLS.INI-Section ‘[C51]‘ : missing ‘PATH‘ enty “错误

    在安装vdmagdi后 打开keil5 uVision5出现 gt gt gt TOOLS INI Section C51 missing PATH enty lt lt lt 错误 原因如下 双击运行vdmagdi exe文件 选择了AG
  • C 易失性位域结构的复制构造函数

    Good day 我正在尝试在 C 11 项目中使用 C SD 驱动程序 文件系统库 Keil MDK 它是由 Keil MDK 5 23 中的 Pack 管理器添加的 我正在使用 ARMCC 5 06u4 进行编译 我收到警告class
  • 使用 Jlink 在一个平台上为另一个平台创建 Java 运行时映像

    我在 Linux 机器上使用 jlink 创建了运行时映像 我明白了linux文件夹下的include文件夹 这是否意味着我只能在 Linux 平台上使用此运行时映像 如果是 是否有任何方法可以在一个平台上为另一个平台创建运行时映像 例如
  • 使用 jdeps + jlink + jpackage 构建 Windows 自包含应用程序后出现 EXCEPTION_ACCESS_VIOLATION

    我正在尝试构建一个捆绑包 独立的应用程序 windows using jdeps jlink jpackage 在Mac上 使用相同的过程 我设法创建了 以下JPackageScriptFX https github com dlemmer
  • jlink 打包当前平台的二进制文件

    我正在尝试构建使用 Java 11 构建并打包的应用程序的跨平台档案jlink 对于跨平台打包 我的构建基于这个答案 https stackoverflow com questions 47593409 create java runtim

随机推荐

  • 《物流配送中VRP问题的多目标优化方法研究》个人小结

    物流配送中VRP问题的多目标优化方法研究 个人小结 物流配送中VRP问题的多目标研究方法 xff0c 自从去年开始了这项大学生创新创业 xff0c 就一直围绕在我的身边 xff0c 时时刻刻会想着她 xff0c 尽可能地去多学一点相关的VR
  • 《科研方法导论》

    科研方法导论 这本书在开学的时候听说有这门课要上就在网上下单了 xff0c 目前已将近一整个学期过去了 xff0c 距离老师的最后一次课也有好几个月了 xff0c 才新建一份Word文档准备将老师上课所讲述的知识和这本书的整体内容进行读后感
  • 语义计算的递归下降(预测)翻译程序

    语义计算的递归下降 xff08 预测 xff09 翻译程序 一 实验内容 实现属性文法的递归下降翻译程序 xff27 xff3b xff2e xff3d xff1a N gt S S f 61 1 print S v S gt BS1 S1
  • MyDockFinder Steam版的新增功能和下载

    文末附下载链接 1 增加两个新的开机启动方式 xff0c 分别是注册表和计划任务 xff0c 防止开机不能启动问题 xff0c 下面解释一下三种开机启动方式的区别和功能 注册表 xff1a 速度最慢 但是启动稳定几乎没有开机不能启动的情况
  • Mysql报错:Your password has expired. To log in

    https stackoverflow com questions 33387879 mysql password expired cant connect MySQL password expiry Resetting the passw
  • go语言string、int、int64互相转换

    string到int int err 61 strconv Atoi string string到int64 int64 err 61 strconv ParseInt string 10 64 int到string string 61 s
  • 直播解决方案/sdk的选择

    直播App xff1a 趣拍微视频云服务 七牛云 金山云 乐视云 网易云信 VTC云通信 gensee zego im Tusdk 大牛直播 美丽播 云豹直播 易直播 一直播 微议 2B指的是为企业提供直播服务 例如微吼 目睹直播 易直播
  • vue示例及优秀案例

    完整的示例 xff1a https auth0 com blog build an app with vuejs 非常棒的概览 xff1a https scotch io tutorials build a single page time
  • [微信开发]invalid credential, access_token is invalid or not latest hint

    正解 这种情况跟这个库没有直接关系 请检查一下是否有别的地方同时请求了access token xff0c 导致微信服务器发放了新的access token给别人 尤其是dev环境 正解 查了好久 xff0c 先发现下载到本地的文件size
  • vmware7.1汉化中文版下载地址+序列号!

    http hi baidu com aking roc blog item 54e81f5977780e8c810a1825 html vmware7 1汉化中文版序列号 43 注册机下载 vmware7 1汉化中文版序列号 43 注册机下
  • android编译错误FCM

    android编译报错 ed vendor manifest xml 34 Error The following instances are in the device manifest but not specified in fram
  • C++“读取位置 0x****** 时发生访问冲突”的可能原因

    这种错误的意思一般是指访问了不属于自己的内存空间 xff0c 出现这种错误有几种原因 xff1a 1 给一个数组分配了比较小的内存空间 xff0c 然后又给该数组赋了一个比较大的值 xff0c 举例说明 xff1a Cpp代码 char b
  • Ubuntu中SVN客户端安装+使用

    1 安装 svn客户端 xff1a apt get install subversion xff0c 然后根据提示一步一步 xff0c 就完成了 svn的安装 当然 xff0c 也可以源码安装 svn xff0c 下载 subversion
  • 转--如何解决connection reset by peer(参考使用)

    转 如何解决connection reset by peer xff08 参考使用 xff09 2010 04 28 19 33 录制c s结构下的winsocket通信 xff0c 在vuser ini中创建连接 xff08 lrs cr
  • <ubuntu 无线网络已禁用 wireless is disabled>解决办法

    2012 5 23 问题描述 xff1a 无线开关怎么开关都启动不了 xff0c 显示无线网络已禁用 有线ok 激活系统 gt 附加驱动 gt Broadcom STA 无线驱动 xff08 和Nvidia图形加速驱动一起 xff09 即可
  • golang map并发读写

    对应报错 xff1a fatal error concurrent map writes fatal error concurrent map read and map write https wrfly kfd me posts read
  • /run/udev/data 磁盘满

    临时办法 xff1a https groups google com forum m topic nomad tool 6L6QbL6QzY4 I 39 ve run 39 udevadm info cleanup db 39 which
  • 证件照蓝底变白底的方法

    P一寸照片时研究的这个方法 比抠图简单 xff0c 对头发的处理还比较好 的一种方法 xff0c 所以拿出来和大家分享一下
  • 洛谷P3366 【模板】最小生成树.Prim算法

    题目 xff1a https www luogu com cn problem P3366 普利姆算法 xff1a 每次选 与已选的点相连的 最小边 循环n 1次 C语言 xff1a include lt stdio h gt includ
  • Jlink V8 在 Keil MDK5.25 中无法正常烧写、调试程序的故障处理

    最 近我兄弟 xff08 亲弟弟 xff09 把我的某宝Jlink V9 拿去用了 没办法自己也得用啊 xff0c 所以把几年前买的Jlink V8翻出来用 xff08 也是某宝出品 xff09 xff0c 结果 没法正常调试 虽然Jlin