2025 / 03 / 28
RA 系列:ID 代码保护(通过 127位=1 及 126位=1 启用保护的情况)
问题:
在ID 代码保护被启用,且ALeRASE指令生效的情况下,如何连接调试器或编程器?
回答:
如何设置 ID 代码
如下所示,在 FSP 配置器的BSP 属性设置中,将“ ID Code Mode ” 设为 “ Locked with All Erase support ”,并将 “ ID code (32 Hex Characters) ” 设为16字节ID代码。
OSIS 寄存器中的 ID 代码值
为了便于理解 ID 代码值与 OSIS 寄存器之间的关系,下面我们将ID 代码按每 4 个字节为一组用不同的颜色做标记,如:“00112233445566778899AABBCCDDEEFF”。
设置会输出到 ra_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h 中。
/* ID CODE: 00112233445566778899AABBCCDDEEFF */
#define BSP_CFG_ID_CODE_LONG_1 (0x33221100)
#define BSP_CFG_ID_CODE_LONG_2 (0x77665544)
#define BSP_CFG_ID_CODE_LONG_3 (0xBBAA9988) #define BSP_CFG_ID_CODE_LONG_4 (0xFFEEDDCC)
|
ID 代码在程序镜像文件(program image file)中生成,如下所示。具体会因OSIS寄存器的地址不同而有差异:
以RA2L1为例:
S3150101001800112233FFFFFFFF44556677FFFFFFFFFC S311010100288899AABBFFFFFFFFCCDDEEFFAC
|
以 RA6M3为例:
S3150100A15000112233445566778899AABBCCDDEEFF00
|
以RA4E2为例:
S3150100A12000112233445566778899AABBCCDDEEFF30
|
e2 studio 中的调试器连接(ID 代码验证)
如下图所示,与 e2 studio 连接时,在如下图所示,与 e2 studio 连接时,在Debugger -> Connection Settings -> Connection -> ID Code (Bytes) 中设置ID代码。这里显示的是 J-Link 的情况,也同样适用于 E2 和 E2 Lite。

单击"... "按钮后,会出现如下对话框。也可以在此对话框中设置 ID 代码。

若启动调试连接后 ID 代码验证成功,则调试连接照常进行。如果 ID 代码验证失败,将出现以下对话框。
J-Link 调试器:

E2/E2 Lite 调试器:

e2 studio 中的调试器连接(执行ALeRASE)
如果是 E2 或 E2 Lite,可通过将ID 代码 设置为ALeRASE ID 代码(FFFFFFFFFFFFFFFFFF45534152654C41) 来擦除整个内部闪存 ROM。 使用 J-Link 时则无法操作擦除指令。如果设置了要加载的程序镜像,则将在执行 ALeRASE 之后加载镜像。


通过RPF连接(ID 代码验证)
连接RFP时出现验证对话框后,输入ID代码 (FFEEDDCCBBAA99887766554433221100),如下所示。

创建RFP工程后,按照下图设置ID代码。

通过RPF连接(执行ALeRASE)
连接RFP时出现验证对话框后,输入ALeRASE ID 代码(414C6552415345FFFFFFFFFFFFFFFFFF) ,即可擦除整个内部闪存ROM,如下所示。
也可以在验证代码的对话框中进行设置,如下所示:
