EFM32芯片被锁解决方法

来源:互联网 发布:php开发文档怎么写 编辑:程序博客网 时间:2024/05/17 03:04

调试EFM32程序的时候,刚突然出现调试软件(JLINK或者energy AwareCommander)无法识别芯片有如下显示:

 

 

那么出现这种情况你如果排除掉硬件连接上没有问题的话,就应该考虑是不是芯片被锁了,另外对于板外的EFM芯片话还需要硬件的连接,接口如下:

例如:EFM32TG110F32芯片的部分接口如图:

具体方法参考如下:

1. 概述
EFM32可以通过SWD调试口上锁达到禁止外部访问片内Flash的目的,使得芯片内的执行代码得到保护,不被非法访问者窃取。同时,也可以通过清除调试上锁字(Debug Lock Word,DLW),解锁调试口访问Cortex-M3内核的功能且片内Flash的代码将被擦除。当调试访问被上锁,调试接口仍然保持可访问,但是连接到Cortex-M3内核的访问将被
阻止。该访问机制将由Authentication Access Port(AAP)控制,如图1.1所示。图1.1  认证访问接口设备解锁是通过写入AAP_CMDKEY寄存器,然后通过调试口将AAP_CMD寄存器标
志位DEVICEERASE位置1实现。该擦除操作擦除Flash(main block),所有锁住位被复位且通过AHB-AP的调试口被使能。该操作在40ms内完成。需要注意在设备擦除操作中SRAM内容也将被删除。
调试器可以读取AAP_STATUS寄存器的状态。当在AAP_CMD寄存器的DEVICEERASE被置1之后,ERASEBUSY被置1,调试器可以置1 AAP_CMD寄存器的SYSRESETREQ位。在复位之后,调试器恢复通过AHB-AP的正常调试会话。
注意:如果调试引脚被重新配置为I/O功能而不是调试功能时,设备擦除将不再被执行。引脚在复位状态下被配置为调试功能。
2. EFM32加密/解锁工具
            EFM32的加密/解锁可以通过带SWD接口且支持EFM32 Flash编程操作的仿真器或编程器执行。常见的使用工具有EFM32 TinyGecko/Gecko STK开发板和通用Jlink仿真器。下面将分别以STK板载Jlink仿真器和通用Jlink仿真器进行说明EFM32的加密和解锁步骤。
2.1  硬件工具
图2.1所示为带有板载Jlink仿真器的EFM32 Tiny Gecko STK开发板。图2.2所示为带板载仿真器的EFM32 Gecko STK开发板。图2.3所示为通用的Jlink仿真器。

2.2  软件工具
使用STK开发板上的板载仿真器进行加密/解锁的用户可以使用Simplicity Studio软件上自带的energyAware Commander软件进行芯片的加密/解锁,如图2.4所示。使用通用Jlink
3
EFM32加密/解锁流程仿真器的用户可以使用Seeger JLink-ARM驱动软件包中自带的Jlink Commander软件。为了支持EFM32以下操作,请安装JLink-ARM 4.36e版本或以上版本。
3. 使用STK加密/解锁
下面将以EFM32 Gecko STK开发板为例阐述STK加密、解锁的详细步骤。
3.1  硬件连接
     根据硬件连接方式的不同可以分为两种情况:STK板载仿真器仿真板载MCU;STK板载仿真器仿真STK外部MCU。
3.1.1 STK板载MCU芯片
EFM32 Gecko STK开发板板载仿真器与板载MCU连接已内部连接,因此用户只需将开发板与电脑通过miniUSB口的进行连接,并将供电选择开关(电池座旁边)拨向MCU方向即可。当连接正确且开发板供电正常时,在电脑的设备管理器端可以看到JLink仿真器被正确识别出来。
4
EFM32加密/解锁流程
在energyAware Commder软件的【Debug Mode】配置时,将选项配置为【MCU】模式,以便用户可以使用板载Jlink仿真器对STK开发板上的MCU进行所需的仿真调试操作。
3.1.2 外部MCU芯片
用户需要使用STK仿真开发板外部的EFM32芯片,需要进行硬件连接和软件配置。操
作步骤如下:
(1)使用导线将STK开发板上方或下方的VMCU引脚连接到20pin引脚的Debug In/Out插座的第1脚,使得STK开发板为外部系统提供3.3V电源;图3.1所示为STK开发板上20pin Debug In/Out插座与外部EFM32芯片的连接示意图。用户可使用杜邦线将其中的6个引脚相连,也可以通过20Pin的排线将STK开发板与外部MCU系统进行连接。
图3.1 JTAG/SWD接口连接示意图
(2)打开energyAware Commder软件时,在配置仿真器【Debug mode】时,在下拉列表中选择【Out】模式,如图3.2所示。STK开发板上Debug接口旁边的DEBUG OUT LED指示灯将点亮。配置板载Jlink仿真器为Debug Out模式注意:对于STK开发板板载仿真器的【Debug Mode】配置为软件配置,STK开发板掉电后会丢失,因此再次使用时需要重复执行相同的软件配置步骤。
5
EFM32加密/解锁流程
3.2  操作步骤
下面以EFM32 Gecko开发板的加密/解锁流程为例,进行详细阐述。
(1)按照前文描述的硬件连接步骤,将仿真器与MCU的调试接口进行正确连接。
(2)将STK开发板的USB接口连接到PC端,运行energyAware Commander软件,并点击【Connect】按钮,如图3.3所示。图3.3  连接板载仿真器
(3)当STK开发板与被仿真调试的MCU进行正确连接时,可以在【Board Information】和【MCU Information】栏看到仿真器和MCU的信息,如图3.4所示。图3.4  仿真器与MCU信息
(4)根据硬件连接所描述,按需求选择仿真器的【Debug Mode】,仿真STK开发板上
6
EFM32加密/解锁流程的MCU选择【MCU】选项;仿真STK开发板外部的MCU可选择【Out】选项,如图3.5所示。图3.5  配置仿真器Debug Mode
(4)点击窗口左边的【Flash】选项页,切换的Flash操作界面。在【Debug Lock Tools】栏中,可以点击【Lock debug access】按钮,将目标MCU的SWD接口上锁,禁止外部访问片内的Flash,如图3.6所示。需要注意的时当芯片的调试口被上锁后,芯片不能够再进行仿真和调试操作,必须执行解锁擦除操作。
(5)点击【Debug Lock Tools】栏中的【Unlock debug access】按钮即可将芯片的SWD接口解锁,同时,芯片片内的Flash代码将被擦除且RAM上数据也会丢失。图3.6 Debug Lock/unlok操作


7
EFM32加密/解锁流程
按照以上步骤操作即可将目标MCU的SWD调试接口进行上锁或解锁,从而达到保护芯片片内Flash不被非法用户窃取。
4. 使用Jlink加密/解锁
下面将以通用仿真器JLink加密和解锁EFM32 TG840F32芯片为例,阐述详细的操作步
骤。
4.1  硬件连接
用户使用导线或连接座将JLink仿真器的20pin调试仿真接口与EFM32的系统进行连接,如图4.1所示。图4.1 JLink仿真器JTAG/SWD接口与MCU连接技巧提示:如果EFM32 STK开发板上的板载仿真器出现故障,无法正常对MCU进行加密/解锁操作,也可以按照本小节描述的步骤执行加密/解锁操作。其中,必须将STK开发板的板载仿真器与STK板载MCU连接断开,又或将板载仿真器通过energyAware Commder软件,将其【Debug Mode】软件设置为【In】模式。
4.2  操作步骤
通用JLink仿真器与energyAware Commder软件配套使用时,只能对芯片SWD调试接口进行上锁加密,不能进行解锁操作。下面将分两部分分别描述:
4.2.1 加密
(1)按照前文硬件连接要求将JLink仿真器的调试接口与MCU系统调试接口进行连接。然后将仿真器连接到电脑的USB端口上,并将EFM32TG840系统上电。
(2)运行Simplicity Studio软件中的energyAware Commder软件,点击界面左上方的【Connect】按钮,将仿真器与开发板连接上。在【Board Information】栏将没有JLink仿真器的信息,在【MCU Information】栏可以看到芯片的型号和序列号等信息。

(3)点击界面中左边的【Flash】选项页,在【Debug Lock Tools】栏中【unlock Debug Access】按钮将是灰色无效状态,【Lock Debug Access】为有效状态。点击【Lock Debug Access】按钮即可将目标MCU的SWD接口进行上锁,如图4.3所示。
(4)若芯片Debug接口上锁成功,那么界面中将弹出如图4.4所示对话框。
8
EFM32加密/解锁流程
图4.2  连接仿真器与energyAware Commder软件
图4.3 Lock Debug Access操作
图4.4 Debug Lock成功芯片SWD接口上锁后,使得片内的Flash被保护,外部仿真器或编程器无法访问到片内Flash的内容。
9
EFM32加密/解锁流程
4.2.2 解锁
(1)按照前文硬件连接要求将JLink仿真器的调试接口与MCU系统调试接口进行连接。然后将仿真器连接到电脑USB端口上,并将EFM32TG840系统上电;
(2)运行JLink ARM软件中的JLink Commder软件,如图4.5所示。图4.5 JLink Commder软件
(3)在Dos命令行界面中输入“?”(问号),界面中将显示相关命令行操作帮助。其中,Unlock命令为对芯片执行解锁操作的命令,如图4.6所示。图4.6 JLink Commder命令
10
EFM32加密/解锁流程
(4)在命令行中输入:unlock,输入回车键,界面将提示支持解锁的器件类型,如图4.7所示。

(5)按unlock命令提示输入:unlock EFM32Gxxx,然后输入回车键,命令行界面中将返回unlock OK的指示,如图4.8所示。图4.8  解锁成功
至此,目标EFM32 MCU解锁成功,芯片的SWD调试接口已被解锁且片内Flash、RAM代码将被擦除。芯片恢复SWD接口调试仿真功能。

 

 

                                                                      good luck!

原创粉丝点击