本帖最后由 eefishing 于 2019-5-9 10:42 编辑 . L" R( H- E! l/ @/ |+ v 6 W' X I# }- k9 M0 G( J4 R+ j+ a+ ] 前言8 b' D" L: V% O3 ^ + v. }% }# F; B) _' F: F ? 在微控制器领域,对嵌入式代码的知识产权保护已经成为被高度重视的问题。为了提供这方面的保护,STM32 微控制器采用多种不同方法来保护 Flash 代码,避免复制和逆向工程。# u) K6 B9 ?9 \" g" c V 本应用笔记描述了通用 STM32 系列的 Flash 保护功能。重点关注 Proprietary Code Read Out Protection(PCROP),它内嵌于中等容量的 STM32L151xC、 STM32L152xC、 STM32L162xC 和 STM32L100xC微控制器中。 表 1 列出了本应用笔记涉及的微控制器。' k6 r+ s/ S3 v* p5 S! z5 S# a + k- b3 h5 M Z" R$ V; v 表 1. 适用产品 1、 Flash 代码保护 STM32 微控制器系列产品具有下列代码保护功能: - K- Y6 R+ ], r, g. A: d( a1 v6 T1. 全局读保护 (Read-out Protection, RDP) 2. 写保护 3. 专有代码读保护 (Proprietary Code Read Out Protection, PCROP)这些功能用来保护嵌入式固件代码的知识产权,这表示对复杂嵌入式系统的关注正在日益增加。 " D9 Q& N- ` E8 W$ W) H1.1 全局读保护 (RDP) # P/ \/ x9 q" ^8 x7 P% E全局读保护可保护嵌入式固件代码 (预加载到闪存中),避免逆向工程、使用调试工具读出或其他方式的入侵攻击。 该保护在二进制代码载入嵌入式闪存后,由用户进行设置。 2 P0 W0 U T8 Y; u表 2 描述了 3 个用户定义的保护级别。 表 2. RDP 保护级别 一旦用户代码被载入闪存中,即可避免代码倾出。可通过激活级别 1 或级别 2 保护来实现,或者通过 RDP 选项字节按照图 1. 中所示的准则进行编程。 图 1. RDP 级别 两个保护级别 (1 和 2)都可以保护闪存。其内容不可被 Serial Wire 或 JTAG Debug 访问、自举程序系统软件或通过向易失性 RAM 存储器载入其他软件来读取。 两个保护级别的主要区别在于易失性数据 (RAM 内容)保护,此保护仅存在于级别 2 中。 ' p/ C4 D Z6 q- r" ~* QRDP 保护被设为级别 1 时,调试工具仍然能够连接和访问 MCU (RAM 和寄存器)的所有易失性资源。这些工具通过向 RAM 载入一些测试代码来检查部件和 / 或系统。 - }/ X% Y! O. {% Y6 m并且,级别 1 保护允许通过擦除全部 Flash 内容来恢复已编程部分。可通过将 RDP 选项字节从级别 1 重新编程为级别 0 来实现 (参见图 1)。 另一方面,级别 2 保护是不可逆的 (熔断)。一旦 RDP 设为级别 2, RDP 选项字节和所有其他选项字节都会被冻结,不能再修改。 但是,用户 Flash 内容 (除了所有写保护扇区,参见第 1.2 节:写保护)在用户代码本身的控制下仍然可被更新。通过执行 IAP (In Application Programming,在应用编程)自举程序代码来允许一些扇区的固件更新。 为了确保能够保护预先编程的用户代码,自举程序协议可以由用户指定 (执行相关保护来避免攻击、倾出和 / 或恶意代码更新)。 |
怎么得到分数 |
已收藏 |
基于STM32L协议传输数据到阿里云物联网平台
stm32L451比较器使用
在 STM32 F0、 F2、 F3、 F4 和 L1 系列MCU 中使用硬件实时时钟 (RTC)
使用 STM32L1xx 微控制器与外部 I2S 音频编解码器 播放音频文件
STM32L1xx 与 STM32L1xx-A 的差别
从 STM32L1 系列移植到 STM32L4 系列微控制器
如何校准 STM32L1xx 内部 RC 振荡器
使用 STM32L1xx 微控制器与外部 I2S 音频编解码器播放音频文件
STM32L1x 温度传感器应用举例
STM32L1xxx 硬件开发入门