
前言 软件提供商开发了复杂的中间件解决方案(知识产权代码,或IP-code), 保护它们对于微 控制器而言至关重要。 为了应对这一重要需求,STM32F72xxx和STM32F73xxx微控制器具有以下功能: • 读保护(RDP):防止进行读取操作 • 写保护:防止进行不需要的写入或擦除操作 • 专有代码读取保护:防止进行读写操作 本应用笔记对这些闪存保护技术进行了说明,重点是STM32F72xxx和STM32F73xxx微控制器 上的专有代码读取保护,并提供了PCROP保护的基本示例。 本文档随附的X-CUBE-PCROP嵌入式软件包包含了PCROP示例的源代码,以及运行示例所需 的所有嵌入式软件模块。 本应用笔记必须同STM32F72xxx和STM32F73xxx 基于ARM®的高级32位MCU的参考手册 (RM0431)一起阅读,数据手册可以在www.st.com上获取。 1 存储器保护说明 1.1 读保护(RDP) 读取保护是全局闪存读保护,可保护嵌入式软件代码,避免复制、逆向工程、使用调试工具 读出或其他方式的入侵攻击。该保护必须在二进制代码载入嵌入式闪存后,由用户进行设置。 以下章节中对三个RDP级别(0,1和2)进行定义和描述。 1.1.1 读保护级别0 级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引 导加载程序或从闪存启动)下进行全部内存操作。这种模式下,没有保护,该模式用于开发和调试。 1.1.2 读保护级别1 激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功 能(如串行线路或JTAG)访问(读取,擦除和编程)闪存或备用SRAM。 但是,当从闪存启动时,允许用户代码访问Flash存储器和备用SRAM。 将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致批量擦除。 1.1.3 读保护级别2 激活RDP级别2时,级别1所支持的所有保护均有效,芯片受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM 和边界扫 描被禁用。 从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载 程序启动。 这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。 表 1描述了从内部闪存启动,或在调试,或从SRAM或系统内存引导加载程序启动时,对闪 存、备用SRAM、选项字节和一次性可编程字节(OTP)的不同访问。 表1. 访问状态 vs 保护级别和执行模式 ![]() ............. 想了解更多,请下载原文阅读 |