昨天升级了最新的 Keil MDK 4.53,怕它老是提示 J-Link 要升级,就去 SEGGER 的网站下了个最新版的 J-Link 软件包(4.46F 版的),装好后运行 J-Link Commander 提示要升级固件。以前一直是刷的,没有问题,这次竟然升级后连不上仿真器了。提示 "Communication timed out: Requested 1 bytes, received 0 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 这个功能貌似从来没有用过,反正我没有用到过。
  节约空间资源,删掉了下载。具体改法就是找到那个字符串,改成别的就行了。

Feedback

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-05-20 22:09 by cxjava
非常感谢~今天正纳闷这事呢~!

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-05-24 14:25 by meizi
试了,连上了,谢谢啊

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-05-25 22:00 by CrHackOS
以后提示升级要悠着点了。。。。。。

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-05-29 17:08 by shenj
你好! 非常感谢,还有问一下芯片里有程序的时候,擦除芯片的时候,j-flash 提示 RAM check failed ,该怎么解决啊?

# re: 关于J-Link升级最新固件后无法连上的一点分析[未登录]  回复  更多评论   

2012-05-30 08:32 by CrHackOS
不大清楚啊,很少用这个下程序,可能是芯片的缘故,也可能是JFlash哪里的参数没设好

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-06-12 16:26 by Sherlock Holmes
牛X,佩服,再接再励!

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-07-09 14:48 by wesley
你好 那个GDBFull字符串在哪?

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-07-09 17:09 by wesley
用winhex找到GDBFull字符串 我更改后可以更改成功 但是保存时提示保存不了 不知道作者有没有碰到这样的问题,我下载是最新的驱动V4.50

# re: 关于J-Link升级最新固件后无法连上的一点分析[未登录]  回复  更多评论   

2012-07-09 20:05 by CrHackOS
DLL里的,保存不来是因为有程序占着,无法写入

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-07-10 08:36 by wesley
谢谢 楼主真牛人 搞好了 只是每次仿真会提示一个Jlink版本已更改的警告 但是不影响仿真 这个警告可以消除么 ?

# re: 关于J-Link升级最新固件后无法连上的一点分析[未登录]  回复  更多评论   

2012-07-12 08:46 by CrHackOS
可以的,估计是 SEGGER 加入了 DLL 完整性检查吧

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-07-23 14:13 by Warren
请教下博主那个GDBFull字符串是用winhex在KEIL软件中JLinkARM.dll中查找到的吗?

# re: 关于J-Link升级最新固件后无法连上的一点分析[未登录]  回复  更多评论   

2012-07-23 21:00 by CrHackOS
是的

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-08-27 06:09 by ym2333
既然绑定序号,那么改一个序号注册机不行吗>?

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-08-27 20:33 by CrHackOS
具体是怎样,那要分析固件的程序。我已经不打算升级了,一直用4.40D,大概是最后一个干净的版本。除非以后有需要了再说。

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-09-06 17:32 by czyniy
非常感谢,连上了

# re: 关于J-Link升级最新固件后无法连上的一点分析  回复  更多评论   

2012-10-17 09:12 by skyf
我用IAR6.4 改了也不行,会提示exception 3 啥的

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理