应用笔记|管理STM32 MCU中的内存保护单元

发布时间:2023-08-04  

1

前言

本应用笔记介绍如何管理 STM32 产品中的内存保护单元(MPU)。MPU 是用于存储器保护的可选组件。STM32 微控制器(MCU)中嵌入 MPU 之后变得更稳健可靠。在使用 MPU 之前,必须对其进行编程并加以启用。如果 MPU 没有启用,则存储系统的行为不会变化。


2

概述

MPU 可以使嵌入式系统更加稳健和安全:• 禁止用户应用程序破坏关键任务(例如操作系统核心)使用的数据• 将 SRAM 存储区域定义为非可执行(禁止执行 XN),以防止代码注入攻击• 修改存储访问属性MPU可最多保护16个内存区域。在 Armv6、Armv7 架构(Cortex-M0+、M3、M4、M7)下,这些区域可以依次拥有 8 个子区域(前提是区域至少有 256 字节))。


在 STM32 中,受保护区域的确切数量可能因内核和器件而有所不同,请参阅 Cortex-M33 MPU 寄存器获取详细信息。子区域的大小都是相等的,可以根据子区域号进行启用或禁用。因为最小区域大小是由缓存行长度(32 字节)驱动的,所以 8 个 32 字节的子区域对应一个 256 字节的区域。区域的编号为 0 至 15。


此外,还有一处默认区域,其 id 为-1。所有编号 0-15 的存储区域的优先级高于默认区域。这些区域可以重叠,也可以嵌套。区域 0-15 的优先级由低到高,这也决定了区域重叠的方式。优先级是固定的,不可更改。在 Armv8 架构(Cortex-M33)中,使用起始地址和终止地址来定义区域,使开发人员能够以灵活、简单的方式组织这些区域。


此外,正是区域大小的可灵活配置得到提升,故Cortex-M33就没有子区域的概念了。下图显示的示例包含六个区域。该示例显示区域 4 与区域 0 和 1 重叠。区域 5 完全包含在区域 3 内。因为优先级是递增的,所以重叠区域(橙色)优先。因此,如果区域 0 是可写的,而区域 4 不可写,那么位于区域 0 和区域 4 重叠部分的地址为不可写。


Conclusion:

在 Armv8 架构(Cortex-M33)中,现在不允许区域重叠。由于 MPU 区域的定义更加灵活,因此没有必要重叠MPU 区域。


MPU 是统一的,意味着没有单独的区域用于数据和指令。


MPU 还可以用于定义其他存储器属性(如可缓存性),可以导出到系统级缓存单元或存储存控制器。Arm 架构中的存储器属性设置可以支持两种级别的缓存:内部缓存和外部缓存。STM32F7 和 STM32H7 系列仅支持一种级别的缓存(L1-缓存)。


缓存控制由缓存控制寄存器实现全局控制,但 MPU 可以指定缓存策略以及区域是否可缓存。


2.1存储器模型

在 STM32 产品中,处理器具有固定的默认存储器映射,可提供最多 4 Gb 的可寻址存储器。



3

Cortex-M0+/M3/M4/M7

存储器类型、寄存器和属性

存储器映射和 MPU 编程将存储器映射分为多个区域。每个区域都有已定义的存储器类型和存储器属性。存储器类型和属性决定该区域的访问行为。


3.1 存储器类型

有三种常见的存储器类型:

• 普通存储器:允许 CPU 以有效方式安排字节、半字和字的加载和存储(编译器不了解存储器区域类型)。对于普通存储器区域,CPU 不一定按照程序中列出的顺序执行加载/存储操作。


• 器件存储器:在器件区域内,负载和存储是严格按照顺序进行的。这是为了确保以正确的顺序设置寄存器。


• 强排序存储器:所有操作始终按以编程方式列出的顺序执行,CPU 会等待加载/存储指令执行(有效的总线访问)结束,然后执行程序流中的下一条指令。这可能导致性能损失。


3.2 存储器属性

区域的属性与大小寄存器(MPU_RASR)是设置所有存储器属性的地方。该表显示了 MPU_RASR 寄存器中对于区域的属性和大小的简要描述。


前一个表格中的参数详情如下:

• XN 标志位控制代码的执行。为了在区域内执行指令,特权级别必须有读访问权限,而 XN 必须为 0。否则,会产生 MemManage 报错。


• 数据访问权限(AP)字段定义存储区域的 AP。


下表对访问权限进行了说明:


• S 字段面向可共享的存储区域:存储系统在一个有多个总线主控的系统(例如,一个处理器带一个 DMA 控制器)中提供总线主控之间的数据同步。强排序的存储器始终可共享。如果多个总线主控可以访问一个不可共享的存储区域,软件必须确保总线主控之间的数据一致性。STM32F7 系列和 STM32H7 系列不支持硬件一致性。S 字段相当于不可缓存的存储器。


• TEX、C 和 B 位用于定义区域的缓存属性,以及(在某种程度上)可共享性。按下表对其进行编码。


在 STM32 微控制器中加入 MPU 使其稳健、可靠,而且在某些情况下更安全 - 防止应用程序任务访问或破坏其他任务使用的堆栈和数据存储器。该应用笔记描述了不同的存储器属性、类型和 MPU 寄存器。其中还提供了 MPU(使用 STM32Cube HAL)设置示例,以说明如何配置 STM32 MCU 中的 MPU。

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    行的代码的未检测到的访问权限。为什么?因为这些系统有大量需要绕过的内存保护。如果成功,集成代码将处于操作系统或安全软件无法检测到的现有代码中。以前的工作需要物理访问和连接到PLC,或者针对工程工作站和PLC的其......
    降低包含可编程逻辑控制器和多轴电机驱动应用的整体系统复杂性。该处理器还为片上内存和外部DDR内存提供误差校正码内存保护,在105˚C接点温度(TJ) 下运行时可实现长达100,000个小时的开机时间,因此AM6x......
    了强大的安全功能,包括内存保护、访问控制和安全通信。它通过严格的权限管理和隔离机制,保护系统免受恶意攻击和未经授权的访问。 4. 分布式处理:GHS INTEGRITY OS支持分布式处理,可以......
    者的目的就是为了盗取密钥,固件代码或者其他敏感信息,达到破解设备或者仿冒设备的结果。“外敌易挡,家贼难防”,如果有恶意代码混进来,我们需要额外的多项 STM32 安全技术来保护。 MPU 内存保护单元是来自 ARM 的一......
    漏洞增加了138%,而在现实中被攻击者积极利用的零日漏洞中,苹果iOS则占80%。"随着威胁级别的不断提高,OWASP(开放网络应用安全项目)组织的一项调查发现,在移动应用程序开发中,一个常见的疏忽是缺乏针对调试功能的内存保护......
    /HT32F49163系列32-bit,采用高效能Arm® Cortex®-M4核心,提供单精度浮点运算单元(FPU),支持所有Arm®单精度数据处理指令和数据类型。该核心亦具备完整DSP指令与内存保护......
        core_util.o } 配置MPU 在SDRAM中运行程序,开发者可能需要配置ARM内核内存保护单元(MPU)。 内存保护单元(MPU)是一个可编程单元,用于定义内存访问权限。当MPU没有......
    问请求定向到与之对应的存储单元上。 内存保护机制 为了数据安全,STM32还增加了存储区域写入保护机制。 主要手段是利用内存保护单元(MPU)进行存储区域访问控制。MPU可以进行区域划分,配置......
    ,最高基频为3.1GHz,最大共享缓存为42MB,实现了较大幅度的性能提升。 此外,第三代津逮®CPU显著提升了各种标准的加解密、验签、数据完整性等密码应用的运算性能;丰富了内存保护机制,可对不同内存区域或内存全域进行加密保护......
    管理STM32 MCU中的内存保护单元;1前言 本应用笔记介绍如何管理 STM32 产品中的内存保护单元(MPU)。MPU 是用于存储器保护的可选组件。STM32 微控制器(MCU)中嵌入 MPU......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>