本帖最后由 小恩GG 于 2019-1-17 17:11 编辑
【经验分享】JLINK Commander 自动解锁问题解决
在使用NXP kinetis芯片的时候,很多人喜欢使用JLINK commander工具去检查kinetis芯片的连接情况。最近有网友发现,将kinetis芯片secure之后,并且使能mass erase 功能,然后再使用JLINK commander去检查SWD口是否还能访问kinetis芯片,用以确认是否真正上锁功能的时候,发现kinetis还是能连上,而且芯片里面的代码莫名消失了。 经过对上锁芯片的检查,发现使用JLINK commander的连接结果如下:
上面测试结果是基于FRDM-K22F120M 开发板。 从JLINK commander的结果看下来,JLINK可以检测到芯片已经被锁掉了,而且做了自动解锁的功能。所以有客户就比较烦恼,实际上,只是想查看下是否真的上锁了而已,并不想把芯片里面的代码给擦掉,那么如果做才能让JLINK commander不要自动解锁呢?
1.把MASS ERASE功能禁止掉,直接给自己留一个后门,并且留有秘钥就行了。
2.从JLINK commander软件端查看,是否有办法实现提示是否要解锁的功能。
第1种方法可以实现,不过每次自己要解锁的时候,还需要输入后门秘钥。如果客户并不想如此复杂,是否方法2可以实现呢,所以对于此问题,特地向Segger那边的工程师请教了下,的确是可以实现。
下面讲解,如果解决JLINK commander自动做Mass erase的问题。
具体请查看这个链接:
In case of a secured Kinetis devicehas been detected by the J-Link DLL, the DLL will show up a dialog which allowsthe customer to unlock the selected device. This dialog can be suppressed bychecking the "Do not show this message again" check box. Theselection will be saved in the registry path below:
HKEY_CURRENT_USER-> Software -> SEGGER -> J-Link ->"DontShowAgainUnlockKinetis".
The message box can be re-enabled bychanging the registry key value of "DontShowAgainUnlockKinetis" from1 to 0.
主要原因还是之前可能关闭了相关的窗口,并且还勾选了不要再提示的选项。
如果真的勾选了,需要到注册表里面去删掉:DontShowAgainUnlockKinetis
具体步骤如下:
删掉DontShowAgainUnlockKinetis之后,再次使用JLINK commander去链接的时候,就会出现是否需要解锁的提示窗口了。如果当时不解锁,后续解锁也可以使用unlock kinetis命令实现解锁,对于不解锁的上锁芯片,是不能找到内核的,通过解锁也就是全片擦除之后,就可以重新找到内核。
希望小小经验对大家有所帮助。
|