声明:本篇博客文章是我从网站上找到的,可是其中有一些不能用的地方,所以修改后重新发布。相比原作者我的功劳还是很小的。在此感谢原创作者了!但是因为当时事情比较急,浏览的网页也太多了,所以没有记得这篇文章的具体来源了。还望见谅!
Jlink 4.5版本之后驱动会识别老的克隆版的JlinkV8,Jlink软件在启动时会提示为克隆版本后退出。目前主流的破解方式主要有两种:方法一,继续使用老版本的DLL链接库;方法二,更新固件。方法一的好处在于可以不用更新JlinkV8的固件,但也限制了对JlinkV8的使用,而且每次更换IDE的时候都需要进行重复操作。方法二是比较根本的办法,通过重新烧写固件并写入新的序列号,可以一劳永逸地避过Jlink软件的克隆版检测,可以无缝地兼容新的IDE。在本文中讲说明方法二的操作流程。
准备工作
1. JlinkV8一个,也就是俗称的“黑砖头”。
2. 安装Atmel固件下载软件“sam-ba2.13”。见链接:http://download.csdn.net/detail/chamiyouyan/8164555
JlinkV8的核心MCU是基于ARM7内核的AT91SAM7S64,用这款软件下载JlinkV8的固件。
3. JLInk出厂固件“v8_ID-XXXXXXXX.bin”。这是最初版本的固件,在后面将说明它的特殊性。
下载固件:http://download.csdn.net/detail/chamiyouyan/8164559
4. 最新版的Jlink驱动软件,想用多新用多新。
5. 跳线一根。
步骤1擦除原有固件
1. 使用USB接口供电(上电前不需要操作跳线)。
2. 上拉ERASE,短接ERASE跳线,见图1所示的A处。
图1 JlinkV8
3. 等待20秒。这个时间内,MCU内部会运行擦除Flash的程序。
4. 拔出USB线,断电。
5. 恢复ERASE,移除图1中A处的跳线。
步骤2恢复BootLoader
1. 接入USB供电。注意,由于固件已经被擦除,此时电脑上会提示不可识别的USB设备,不必理会。
2. 拉高TST,短接TST跳线,见图1中的B处。
3. 等待10秒以上。长一点时间比较保险,去倒杯水吧。
4. 拔出USB线,断电。
5. 恢复TST,移除图1中B处跳线。
步骤3下载固件
将jlink插入电脑,电脑会安装驱动程序,一般是以安装失败告终,此时,您需要用下载的官网驱动程序安装这个设备的驱动程序。一下的链接是我下载的驱动程序,亲测好用。
下载页:http://download.csdn.net/detail/chamiyouyan/8164547
如果此时在设备管理器中发现电脑没有安装此时jlink的驱动程序的话,安装文件夹中的驱动程序。然后进行即可。
1. 启动SAM-BA软件,提示选择连接(此时下载模式的驱动已经识别出来后才能显示有效的连接),选择芯片(板子)型号“AT91SAM7S64-EK”。
2. 连接成功后,在“Download/UploadFile”区域中的“SendFileName”栏中选择固件文件“v8_ID-XXXXXXXX.bin”,戳一下“SendFile”,开始下载。
3. 提示是否需要解锁Flash,戳“Yes”,不解锁无法下载。
4. 等下载完毕后会提示是否启动写保护,戳“No”,写保护后不能自动升级,但是可以防止程序被冲掉。
5. 退出SAM-BA软件。
步骤4更新Jlink序列号
1. 断开JlinkV8后重新连接,在电脑上识别驱动。
2. 启动JlinkCommander软件,会提示要升级固件,暂时先不升级。此时可以看到识别出来JlinkV8的序列号S/N是-1,为出厂设置。
3. 在命令行中输入“exec setsn=XXXXXXXX”。其中XXXXXXXX是8个十进制数,可以随意设定,比如说是当天的日期。需要注意的是,写入序列号后将不能通过本命令更改序列号,除非重新写入固件恢复出厂设置。退出JlinkCommander软件。
设定成功如下图2所示:
图2 设定Jlink序列号
4. 断开JlinkV8后重新连接,重新启动JlinkCommander软件,提示升级,果断升级。JLinkV8固件安全升级为最新版。固件更新成功,如图3所示。
图3 固件更新成功
本文的每个步骤都经过实际验证,可放心操作。