关于J-LINK升级最新固件后无法连上的一点分析

来源:本站
导读:目前正在解读《关于J-LINK升级最新固件后无法连上的一点分析》的相关信息,《关于J-LINK升级最新固件后无法连上的一点分析》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于J-LINK升级最新固件后无法连上的一点分析》的详细说明。
简介:J-LINK固件升级后连不上仿真器了。提示 "Communication timed out: Requested 1 bytes, received 0 bytes !"。

昨天升级了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升级,就去 SEGGER 的网站下了个最新版的 J-Link 软件包(4.46F 版的),装好后运行 J-Link Commander 提示要升级固件。以前一直是刷的,没有问题,这次竟然升级后连不上仿真器了。提示 "Communication timed out: Requested1 bytes, received0 bytes !"。SEGGER 终于开始玩花招了。到 Keil 里打开了以前的一个工程,发现竟然还能调试,一看那 DLL 的版本是 4.40C 的,看来是在 DLL 里做了些手脚。

今天用 IDA 跟了一下 J-Link Commander,并对比了一下两个动态库的差别,发现新版的在打开 J-Link 函数的过程里多了两个调用。前一个判断了一下仿真器的功能字符串里是否有 GDBFull,有就会多一步 USB 通讯,超时的就是这一步操作;后一个通过序列号枪毙了一些老的(被偷的?)J-Link。看了一下 GDBFull 这个字符串,只在这里用了一次,将其全部改为大写,发现可以连上了。另外,序列号为 11111117 和 805306163 的会强制校验 GDBFull 功能。

大致上猜了一下,可能是 SEGGER 更新了一下 GDBFull 功能与序列号的绑定算法,下面的固件里也应该改过了,那一步 USB 通讯就是下面返回上来的认证结果,所以接收的只有一个字节。GDBFull 这个功能貌似从来没有用过,反正我没有用到过。

节约空间资源,删掉了下载。具体改法就是找到那个字符串,改成别的就行了。

提醒:《关于J-LINK升级最新固件后无法连上的一点分析》最后刷新时间 2024-03-14 01:01:50,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于J-LINK升级最新固件后无法连上的一点分析》该内容的真实性请自行鉴别。