跳到主要内容
版本:Next

3.4.1.4:STM32C5 OEMKEY安全设置

1.官方文档信息摘要

  1. 对没有设置过OEMKEY的芯片,将其RDP等级提升到RPD Leve2 with boundary scan 或 RDP Leve 2无法回退到RDP Level 0。

  2. OEMKEY不能设置为全00或全FF。

  3. OEMKEY一旦写入,无法被清除,只能进行修改。

2.烧录处理机制说明

当在PowerWriter设备上,选择STM32C5,将可以看到如下的设备界面:

image-20260415143458161

2.1OEMKEY 写入(离线,在线)

  • 写入条件

    • OEMKEY的写入与写选项字绑定,因此【选项字模式】设置为【无操作=>无操作】时,OEMKEY不会写入。

    • 写入选项字节前,烧录器根据待写入的 RDP LEVEL决定是否写入OEMKEY,待写入的RDP LEVEL不是RDP Level 0 (0xED)时, 写入OEMKEY。

    • 上述条件全部满足,才会执行写入OEMKEY的流程。

  • OEMKEY 数据获取

    当待写入的RDP LEVEL满足上述条件时,烧录器从扩展中获取OEMKEY数据,写入OEMKEYR寄存器。

此外,如果满足上述OEMKEY写入条件,但是扩展中的【OEM key 功能设置】不是【写入(加保护、配置)】,烧录器将会使用0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A作为默认OEMKEY 写入OEMKEYR寄存器(如果你需要提升RDP等级,但是不想设置密码,请留意这一点!)。

2.2BSKEY 写入(离线,在线)

  • 写入条件

    • BSKEY的写入与写选项字绑定,因此【选项字模式】设置为【无操作=>无操作】时,BSKEY不会写入。但BSKEY的写入不受RDP LEVEL约束。

    • 当扩展中【BS key功能设置】是【写入(加保护、配置)】时,烧录器获取BS key 数据写入BSKEYR寄存器。

注: 依据ST官方说明,BSkey具有默认值0xAAAAAAAA。因此当扩展中【BS key功能设置】不是【写入(加保护、配置)】时,烧录器不操作BSKEYR寄存器。

2.3RDP Level 回退(离线)

当 RDP level 非0时,无法通过AP1访问调试。

离线模式下,按下烧录按键后,烧录器多次访问失败将会执行RDP Level回退流程。此时,如果扩展中【OEM key 功能设置】是【解锁(去保护、回退)】,烧录器使用扩展内的OEMKEY执行回退,否则烧录器将使用0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A执行回退。

2.4RDP Level 回退(在线)

当 RDP level 非0时,无法通过AP1访问调试。

  • 回退条件

    当待写入的RDP LEVEL为RDP Level 0 (0xED)时,执行RDP Level 回退。

在线模式,满足上述回退条件时,如果扩展中【OEM key 功能设置】是【解锁(去保护、回退)】,烧录器将会使用扩展内的OEMKEY执行回退,否则烧录器将使用0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A,0x5A5A5A5A执行回退。

警告
  • 由于回退需要控制芯片RST引脚,因此,使用回退功能时需要将烧录器NRST与芯片RST引脚连接。

  • 烧录器暂不支持RDP Level 2 with boundary scan 到 RDP Level 2的过渡操作。

  • 离线模式下,当扩展配置为解锁并且选项字模式为 x=>用户设置,若选项字节RDP LEVEL 设置为非 RDP level 0时,芯片将在解锁后,被写入默认OEMKEY值,再次被保护。解锁时,推荐将选项字节恢复为默认。