0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记|STM32L4、STM32L4+和STM32G4系列微控制器上的专利代码读取保护

STM32单片机 来源:未知 2023-01-11 05:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

软件提供商正在开发被称为IP(知识产权)代码的复杂中间件解决方案,保护它们对微控制器而言是一个非常重要的问题。为了满足这一重要要求,STM32L4、STM32L4 +和STM32G4系列MCU可提供以下保护功能:

• 读取保护(RDP):防止进行读取操作

• 写保护:防止进行不需要的写入或擦除操作

• 专利代码读取保护(PCROP):防止在闪存和SRAM存储器上进行读写操作。

• 防火墙:针对外部进程为敏感代码和数据提供访问保护。

本应用笔记对这些闪存保护功能进行了说明,重点介绍了专利代码读取保护(PCROP),并提供了PCROP保护的基本示例。防火墙保护(在STM32L4和STM32L4 +系列上可用)在www.st.com上的“ STM32L0 / L4防火墙概述”(AN4729)中进行了介绍。

目录预览

1 单分区存储器保护说明

2PCROP示例

3 结论

1.单分区存储器保护说明

基于Arm(a)内核的STM32L4、STM32L4+和STM32G4系列微控制器采用多种机制,可对整个存储器或特定存储段进行读写保护。读保护用于保护代码免受外部访问的转储(SW IP保护),而写保护用于保护代码或数据不被意外改写或擦除。除闪存外,这些保护还扩展到STM32L4和STM32L4+系列的SRAM2,以及STM32G4系列的CCM(内核耦合存储器)SRAM。STM32L4xx MCU还具有防火墙机制,可在存储器中创建受信执行区域。

1.1 读取保护(RDP)

读取保护是全局闪存读保护,可保护片内固件代码,可以预防复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。该保护应在二进制代码载入片内闪存后,由用户进行设置。读取保护适用于:

• 主闪存• 实时时钟(RTC)中的备份寄存器

• SRAM2(STM32L4/STM32L4+)或CCM-SRAM(STM32G4)

• 选项字节(仅限级别 2)。以下章节中对三个RDP级别(0,1和2)进行定义和描述

1.1.1 读保护级别0

级别0是默认级别,闪存完全打开,可在所有引导配置(调试功能,从RAM、从系统内存引导加载程序或从闪存启动)下进行全部内存操作。在这种模式下没有保护,该模式可满足开发和调试需求。

1.1.2 读保护级别1

激活读保护级别1时,即使是从SRAM或系统内存引导加载程序来启动,也不能使用调试功能(如串行线路或JTAG)分别访问(读取,擦除和编程)STM32L4/L4+和STM32G4系列的闪存或SRAM2和CCM-SRAM。在这些情况下,任何对受保护区域的读请求都会生成总线错误。

但是,当从闪存启动时,则允许从用户代码访问闪存和SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)。

将RDP选项字节重新编程为级别0,可禁用RDP级别1保护,这会导致闪存被批量擦除;而且SRAM2(STM32L4/L4+)或CCM-SRAM(STM32G4)和备份寄存器会复位。

1.1.3 读保护级别2

激活RDP级别2时,级别1下提供的所有保护均有效,MCU受到全面保护。RDP选项字节和所有其他选项字节都会被冻结,不能再修改。JTAG、SWV(单线查看器)、ETM和边界扫描全部禁用。

从闪存启动时,用户代码可以访问内存内容。但是,不再能从SRAM或从系统内存引导加载程序启动。这种保护是不可逆的(JTAG熔断),所以不能回到保护级别1或0。

表 1根据保护级别和执行模式总结读取访问权限。

71662a94-912a-11ed-bfe3-dac502259ad0.png    

1.1.4 受RDP保护的STM32内部闪存内容更新

当Flash RDP保护激活时(级别1或级别2),内部闪存内容不能通过调试进行更新,或者当从SRAM或系统内存引导程序启动时也不能更新。

因此对最终产品的一个重要要求就是,能够将内部闪存中的固件升级为新的固件版本,添加新功能并修正潜在问题。该需求可以通过实现用户专用固件来解决,使用诸如USART的通信协议来进行重新编程过程,从而执行内部闪存的应用内编程(IAP)。

关于IAP的更多详细内容,请参考应用笔记AN3965,可在www.st.com上获取。

1.2 写保护

写保护用来保护指定内存区域的内容,避免更新或擦除代码段或非易失性数据。

1.2.1 闪存写保护

写保护区域的数量取决于闪存架构。对于STM32L4和STM32L4+系列,每个闪存中可以以2KB粒度定义最多2个区域。STM32G4 3类设备能够以单分区或双分区工作。

• 在单分区模式(DBANK = 0)中,最多能够以4 KB的粒度定义四个写保护区域。

• 在双分区模式(DBANK = 1)中,最多可以定义两个写保护区域每个存储库中2 KB的粒度。

STM32G4 Cat2设备只能在单个闪存库中工作。能够以2 KB粒度定义两个写保护区域。

图 1中的灰色区域是具有两个粒度为2 KB的写保护(WRP)区域的双分区结构的示例。

718916d0-912a-11ed-bfe3-dac502259ad0.png

受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将WRPERR标志置位。例如,如果闪存中至少有一页是写保护的,则不能对其进行批量擦除,并且设置WRPERR标志。

可通过嵌入式用户代码或使用STM32 ST-Link Utility软件和调试接口,进行使能或禁用写保护管理

1.2.2SRAM2 CCM-SRAM写保护

在STM32L4/L4 +上,32KB的SRAM2可以通过1 KB页面单独进行写保护。该保护的设置由32位系统配置寄存器进行控制,并在启用后,只有系统复位才能对其进行禁用。

在STM32G4中,CCM-SRAM也可以通过1 KB的段进行写保护(3类设备为32 KB,2类设备为10 KB)。

本文档随附的X-CUBE-PCROP固件封装包含了PCROP示例的源代码,以及基于STM32L4系列微控制器运行示例所需的所有固件模块,并且该封装可轻松移植到STM32L4 +和STM32G4系列微控制器上。

本应用笔记必须与产品数据手册以及以下参考手册一起阅读,这些参考手册可从www.st.com获得:

• RM0351(STM32L4x5xx、STM32L4x6xx)

• RM0392 (STM32L4x1xx)• RM0394(STM32L43xxx、STM32L44xxx、STM32L45xxx、STM32L46xxx)

• RM0432(STM32L4Rxxx和STM32L4Sxxx)

• RM0440 (STM32G4xx)

文章篇幅有限仅展示部分,完整内容请点击“阅读原文”下载原文档。

71a87aca-912a-11ed-bfe3-dac502259ad0.png

长按扫码关注公众号

更多资讯,尽在STM32

点击“阅读原文”,可下载原文档


原文标题:应用笔记|STM32L4、STM32L4+和STM32G4系列微控制器上的专利代码读取保护

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663453
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371128

原文标题:应用笔记|STM32L4、STM32L4+和STM32G4系列微控制器上的专利代码读取保护

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于STM32的VL53L4CD高精度飞行时间传感技术解析与应用实践

    STMicroelectronics X-NUCLEO-53L4A1扩展板设计用于配有Arduino R3连接的任何STM32 Nucleo板。X-NUCLEO-53L4A1扩展板包
    的头像 发表于 10-31 09:24 242次阅读
    基于<b class='flag-5'>STM32</b>的VL53<b class='flag-5'>L4</b>CD高精度飞行时间传感<b class='flag-5'>器</b>技术解析与应用实践

    ‌基于STM32G474的数字电源控制板设计解析与应用指南

    STMicroelectronics STEVAL-DPSG474Q数字电源控制盘基于STM32G4系列STM32G474QE微控制器。S
    的头像 发表于 10-15 13:59 759次阅读
    ‌基于<b class='flag-5'>STM32G</b>474的数字电源<b class='flag-5'>控制</b>板设计解析与应用指南

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍
    的头像 发表于 09-18 16:48 3619次阅读
    <b class='flag-5'>STM32</b>C011开发(3)----Flash操作

    STM32L073片LCD控制器缺少底层驱动怎么处理?

    如题,在RT-Thread官方的驱动中没有找到stm32l0系列的LCD控制器驱动,而项目需要使用该外设驱动一块段码屏。如果我需要为其添加支持,我需要添加哪些代码?RT-Thread官
    发表于 09-12 06:36

    昂科烧录支持ST意法半导体的超低功耗微控制器STM32L476RCT

    AP8000的支持。 STM32L476RCT为超低功耗微控制器,基于工作频率可达80MHz的高性能Arm® Cortex®-M4 32位RISC内核。Cortex-M4内核带有单精度
    的头像 发表于 07-21 11:38 520次阅读
    昂科烧录<b class='flag-5'>器</b>支持ST意法半导体的超低功耗<b class='flag-5'>微控制器</b><b class='flag-5'>STM32L</b>476RCT

    STM32F3系列STM32F4系列STM32L4系列STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列STM32F4系列STM32L4系列
    发表于 06-06 17:06 9次下载

    手机APP远程控制,智能家居监测、智能控制系统(STM32L4、服务、安卓源码)实例项目打包下载

    手机APP远程控制,智能家居监测、智能控制系统(STM32L4、服务、安卓源码)实例项目打包,推荐下载!
    发表于 05-29 21:47

    【每周推荐】基于STM32开发项目实例下载(含PCB、原理图、源码等)

    1、手机APP远程控制,智能家居监测、智能控制系统(含源码)手机APP远程控制,智能家居监测、智能控制系统(STM32L4、服务
    的头像 发表于 05-27 08:05 971次阅读
    【每周推荐】基于<b class='flag-5'>STM32</b>开发项目实例下载(含PCB、原理图、源码等)

    手机APP远程控制,智能家居监测、智能控制系统(STM32L4、服务、安卓源码)

    手机APP远程控制,智能家居监测、智能控制系统(STM32L4、服务、安卓源码) 项目实例下载! 纯分享帖,需要者可点击附件免费获取完整资料~~~【免责声明】本文系网络转载,版
    发表于 05-23 21:00

    昂科烧录支持ST意法半导体的超低功耗微控制器STM32L4S5VIT

    支持。 STM32L4S5VIT是基于高性能Arm® Cortex®-M4 32位RISC内核的超低功耗微控制器产品(STM32L4+系列)
    的头像 发表于 05-08 16:08 636次阅读
    昂科烧录<b class='flag-5'>器</b>支持ST意法半导体的超低功耗<b class='flag-5'>微控制器</b><b class='flag-5'>STM32L4</b>S5VIT

    低功耗32位MCU瑞萨电子RA4L1系列微控制器硬件手册开发文档详情

    低功耗32位MCU瑞萨电子RA4L1系列微控制器硬件手册开发文档详情
    的头像 发表于 04-02 18:12 934次阅读
    低功耗32位MCU瑞萨电子RA<b class='flag-5'>4L</b>1<b class='flag-5'>系列</b><b class='flag-5'>微控制器</b>硬件手册开发文档详情

    STM32G4串口无法发送正确的信息是怎么回事?

    STM32G4串口无法发送正确的信息
    发表于 03-14 07:14

    STM32L151VCT6 STM32L083RZT6 IC MCU 32BIT 32位微控制器 LQFP

    STM32L151VCT6 微控制器采用Cortex-M3内核和频率32 MHz的CPU时钟,扩展了超低功耗的理念,并且不会降低性能。除了动态运行和低功耗运行模式以外,该系列器件还提供另外2种超低
    发表于 01-04 16:17

    STM32F405xx和STM32F407xx微控制器数据手册

    电子发烧友网站提供《STM32F405xx和STM32F407xx微控制器数据手册.pdf》资料免费下载
    发表于 01-03 14:49 4次下载

    STM32G474RCT6 STM32G0B1VET6 微控制器 IC MCU 32BIT FLASH LQFP

    STM32G474RCT6 混合信号微控制器 (MCU) 结合了运行频率为170MHz的32位Arm® Cortex®-M4内核(带FPU和DSP指令)。另外还结合了3种不同的硬件加速
    发表于 12-31 11:59