一、硬件 & 软件环境概述
- 硬件平台:E3110 官方开发板(SD107_E3_REF_176_DEMO_A02_030);
- 软件环境:IAR Embedded Workbench for ARM 9.30.1;
- 软件平台:MCAL PTG3.0;
- 软件工具:23.1201;
- 调试器:JLINK。
图1 E3110 官方开发板
二、概述
产品为满足信息安全要求,通常用 Secure Debug 方式可对 JTAG 口进行保护,Secure Debug 验证方案参考《SemiDrive E3 Secure Debug 理论及验证》博文;通过烧写 eFuse 方式开启JTAG 口保护,由于 eFuse 的 OTP 特性(仅能烧写一次),如果在方案验证过程中,假设 eFuse 操作不当,可能导致硬件芯片不可逆转损伤,本文介绍的方式可避免上述问题;函数方式验证原理为:当系统上电完成后,通过软件的方式向 eFuse 影子寄存器中写入数据,模拟 Secure Debug 过程,写入数据断电丢失,故这种方式仅能模拟验证 Secure Debug 之 JTAG Challenge/Response、Fuse Disable 两个过程,不能验证 BootROM 阶段,本文仅介绍 JTAG Challenge/Response 过程,Fuse Disable 读者可自行验证;
本文方式仅是方案过程辅助验证,当将 eFuse 烧写内容、解锁使用的脚本验证通过后,将所需要的信息形成文件,并烧写进 eFuse,开启 JTAG 口保护。
三、方案验证
3.1 软件更改
将下述代码下载到开发板,上电 log 如下图所示,使用自带的e3_sf.JLInK Script 脚本文件,此时通过 project -> attach the running target 方式是不能成功 Debug。
3.2 TAG 解锁
将 E3_sf.JLinkScript 脚本按照下图所示的更改,并替换原来的脚本,通过下述方式 IAR 工程关联解锁脚本:option -> Debug -> Extra Option -> --jlink_script_file=$PROJ_DIR$\..\..\..\tools\JLINK\e3_sf.JLinkScript,重新上电,Debug 软件代码,程序运行正常并退出 Debug,连接 JLINK 下载器,点击 Project -> attach to running target 可以正常 Debug 软件。
四、参考文档
《E3110_MCU_TRM_Rev00.13》
《E3110_MCU_Datasheet_Rev00.17》
《E3 secure debug V1.0》
《SDToolBox_User_Guide》
欢迎在博文下方留言评论,我们会及时回复您的问题。
如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com 作者:娜就这么嘀