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

发布者:Asawen最新更新时间:2024-08-15 来源: elecfans关键字:STM32L4 手机看文章 扫描二维码
随时随地手机看文章

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?imageView2/2/w/1000   

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?imageView2/2/w/1000


受保护区域无法被擦除和编程,任何写请求都会产生写保护错误。如果要擦除/编程的地址属于闪存中处于写保护状态的区域,则通过硬件将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)


关键字:STM32L4 引用地址:应用笔记|STM32L4、STM32L4+和STM32G4系列微控制器上的专利代码读取保护

上一篇:基于STM32的植物浇水系统开发
下一篇:剖析STM32-定时器1

推荐阅读最新更新时间:2026-03-25 12:20

探究STM32G4系列控制器中运算放大器的应用
最近在开发一款产品的过程中用到了STM32G4系列的产品STM32G491,了解到该产品的一些优势,不仅其数字处理能力强大,更重要的是集成了丰富的模拟外设电路 - 多路模拟开关/比较器/运算放大器、ADC、DAC、温度传感器等,而且运算放大器的结构和增益都可以编程,非常灵活,能够满足大多数场景的应用,比如电机控制、工业设备、仪器仪表、数字电源等产品。 顺便讲一下,这颗芯片用在电赛中会非常合适 - 功能强大、产品指标较高,使用便捷。 虽然单颗器件的价格会高一些,但高集成度节省了板卡的面积,降低了BOM的整体成本,当然更重要的是其灵活性。 这颗器件的数字信号处理能力也非常强,比如带有FPU功能的Cortex M4内核能够运行到
[单片机]
意法半导体推出最新升级的STM32G4系列微控制器
意法半导体今天宣布推出STM32G491和STM32G4A1微控制器。 STM32G4 Access Line的新成员提供了更大的存储容量,具有112 KB的RAM和高达512 KB的闪存,对比此前Access Line的旗舰产品STM32G431——32 KB的RAM和128 KB的闪存。此外,STM32G491和STM32G4A1之间的唯一区别是后者上存在加密核心。Cortex-M4内核运行频率为170 MHz,它们将STM32G4系列推向新的具有成本效益的应用,同时又不影响性能。以前可能需要带有外部模拟组件的STM32G0,现在可以被新的STM32G4中受益。因此,通过发布STM32G491和STM32G4A1,意法半导体为
[单片机]
意法半导体推出最新升级的<font color='red'>STM32G4</font><font color='red'>系列</font><font color='red'>微控制器</font>
STM32L4 RT-Thread Studio解决lptimer不工作的问题
问题描述 看到部分同学已经开始使用RT-Thread 的PM框架了,当然也反映了一些问题。 使用RT-Thread Studio 生成的基于STM32L4 的工程,发现开启PM框架后,lptimer不能工作。 最明显的现象是:进入深睡眠后,定时、延时事件不可以用。 这里对这个问题进行分析与提出解决方法 调试步骤: 一、基于Keil MDK pandora的工程,开启PM后,LPTimer在深睡眠下工作正常。 二、基于RT-Thread Studio生成的工程,LPTimer确实不能工作。排除不是硬件问题。 三、对比工程代码,LPTimer初始化,完全一致,pm_drv.c pm.c 等完全一致,依旧无法解决问题。
[单片机]
<font color='red'>STM32L4</font> RT-Thread Studio解决lptimer不工作的问题
STM32L4进入STOP2模式后的漏电问题的分析及解决
前言 STM32L4 系列,目前是STM32超低功耗产品中最强大的一个系列。它为我们提供了丰富的低功耗模式,包括STOP2 模式、低至30nA 的Shutdown 模式。对于这些模式,我们需要进行深入地了解,才能把它们用好。 问题 某客户在其产品的设计中,使用了STM32L476RGT6。客户在开发过程中,发现当进入STOP2模式后,MCU 的电流保持在179.6uA,远大于数据手册中所描述的值:1.18uA (3V 工作电压 & 室温 & 无LCD& 无RTC)。 调研 1.了解问题 首先,我们先确认这个179.6uA 的电流真实存在,而且只是MCU上的电流,不是整机电流。客户并没有使用LCD,也没有RTC,根据参考手册
[单片机]
<font color='red'>STM32L4</font>进入STOP2模式后的漏电问题的分析及解决
STM32L4系列 ADC基本原理
一、ADC简介 Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。 STM32ADC简介 STM32 拥有 1~3 个 ADC,ADC1和ADC2紧密耦合,可在双模式下工作(ADC1为主模式)。每个ADC由一个12位逐次逼近的模数转换器组成。每个ADC有多达19个多路复用通道。各种通道的A/D转换可以在单一、连续、扫描或不连续模式下执行。ADC的结果是存储在左对齐或右对齐的16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC工作框图(根据STM32F1的ADC框图介绍STM32L4系列的ADC,大部分相同,有些寄存器有所变动)
[单片机]
<font color='red'>STM32L4</font><font color='red'>系列</font> ADC基本原理
高通又起诉苹果,指责其违约向英特尔泄露专利代码
   苹果 又要吃官司了,这次 高通 二度向 苹果 发起诉讼,指责 苹果 违反了有关允许移动芯片与手机其余部分进行交互的软件合同,违约向英特尔公司提供了 高通 的专利代码。下面就随网络通信小编一起来了解一下相关内容吧。    高通 表示,苹果未能保护芯片制造商的软件,同时也不允许审计机构审查iPhone制造商如何处理该软件。今年7月份,苹果向高通发来一封电子邮件要求获取关于芯片如何在未经确认的无线运营商网络上工作的“高度机密”信息,并把信息复制了一份给予英特尔工程师。此外,一位竞争对手芯片的苹果工程师,曾向一名与高通合作的苹果工程师询问高通的技术信息。      高通又起诉苹果,指责其违约向英特尔泄露专利代码   苹果也不甘
[网络通信]
更耐用,ST推出新型STM32L4微控制器
意法半导体的 STM32L412和STM32L422 微控制器(MCU)以功能专一和封装紧凑为特色,为注重成本预算的消费类、工业和医疗应用带来超低功耗技术和优异的处理性能。 新微控制器为设计人员提供了更大的发挥空间,突破各种设计资源的制约,不论是内核性能和能耗限制,还是空间尺寸和物料清单成本限制。通过整合采用意法半导体的FlexPowerControl(FPC)技术经济合算的64KB或128KB闪存和80MHzArm®Cortex®-M4处理器内核,新微控制器的能效和性能达到了同级产品中最佳的EEMBC®测试成绩:273CoreMark® 可提升智能传感器或消费类穿戴设备的处理速度,同时167 ULPMark™-PP(P
[嵌入式]
更耐用,ST推出新型<font color='red'>STM32L4</font><font color='red'>微控制器</font>
苹果与三星专利诉讼升级 苹果要求看Android源代码
    据《彭博社》报道,苹果在与三星的专利诉讼中要求美国地方法官Paul S. Grewa裁定让谷歌将Android源代码的文档交出。苹果称所有侵权 的三星产品中,Android是提供这些功能的最基本的系统。苹果需要看到Android源代码,这样才能判断是否侵权。 苹果律师Mark Lyon表示,这是透明度的问题。代表三星的谷歌律师Matthew Warren争论到苹果这样做是战略决策,是为了让谷歌知难而退,停止帮助三星。Warren表示如果将Android源代码交给苹果,那么苹果可能会提前看到Android未来的功能。无论怎样,看起来苹果和三星之间的关系正变得越来越紧张。
[手机便携]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved