问题:
如何设置 ID 代码以禁用 ID 代码保护,这种情况下如何连接调试器或编程器?
回答:
如何设置 ID 代码
在 FSP 配置器的BSP 属性设置中,将“ ID Code Mode ” 设为 “ Unlocked (Ignore ID) ”,如下图所示。这种情况下,“ ID code (32 Hex Characters) ” 将被忽略。
OSIS 寄存器中的 ID 代码值
为了便于理解 ID 代码值与 OSIS 寄存器之间的关系,下面我们将ID 代码按每 4 个字节为一组用不同的颜色做标记,如:“00112233445566778899AABBCCDDEEFF”。
设置输出到 ra_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h 中,如下所示,可以看到 ID 代码设为了全FFh。
/* ID CODE: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF */
#define BSP_CFG_ID_CODE_LONG_1 (0xFFFFFFFF)
#define BSP_CFG_ID_CODE_LONG_2 (0xFFFFFFFF)
#define BSP_CFG_ID_CODE_LONG_3 (0xFFFFFFFF)
#define BSP_CFG_ID_CODE_LONG_4 (0xffFFFFFF)
|
ID 代码在程序镜像文件(program image file)中生成,如下所示。具体会因OSIS寄存器的地址不同而有差异:
以RA2L1为例:
S31501010018FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
S31101010028FFFFFFFFFFFFFFFFFFFFFFFFD0
|
以 RA6M3为例:
S3150100A150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
|
以RA4E2为例:
S3150100A120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
|
e2 studio 中的调试器连接(ID 代码验证)
调试配置中无需设置 ID 代码。
e2 studio 中的调试器连接(执行ALeRASE)
如果是 E2 或 E2 Lite,可通过将 ID 代码设置为ALeRASE ID 代码(FFFFFFFFFFFFFFFFFF45534152654C41)来擦除整个内部闪存 ROM。 使用 J-Link 时则无法执行擦除指令。如果设置了要加载的程序镜像,则将在执行 ALeRASE 之后加载镜像。
通过RFP连接(ID代码验证)
设置连接时无需设置 ID 代码。
通过RFP连接(执行ALeRASE)
ALeRASE 不可用。