网站设计怎么保持风格一致,中国黄页网官网,南京网络营销课程培训,长春财经学院教务系统文章目录 Cortex-M33 SAU 介绍SAU 的主要功能包括SAU 寄存器配置示例 Cortex-M33 SAU 介绍
在 ARMv8-M 架构中#xff0c;SAU#xff08;Security Attribution Unit#xff09;是安全属性单元#xff0c;用于配置和管理内存区域的安全属性。SAU 是 ARM TrustZone 技术的一… 文章目录 Cortex-M33 SAU 介绍SAU 的主要功能包括SAU 寄存器配置示例 Cortex-M33 SAU 介绍
在 ARMv8-M 架构中SAUSecurity Attribution Unit是安全属性单元用于配置和管理内存区域的安全属性。SAU 是 ARM TrustZone 技术的一部分该技术提供了在单个处理器中创建安全Secure和非安全Non-secure状态的能力允许系统同时运行受信任的安全代码和非受信任的非安全代码。
SAU 能够定义多个内存区域并为每个内存区域指定其是否可被安全状态和/或非安全状态访问。这样SAU 可以帮助创建一个隔离的安全环境其中敏感的代码和数据可以被保护不受非安全代码的影响。
SAU 的主要功能包括
内存区域定义SAU 允许你定义一系列的内存区域并为每个区域指定安全属性。这些区域可以是 RAM、ROM、外设或其他类型的内存。安全属性配置对于每个区域可以配置其是否为安全或非安全访问。这是通过设置区域的属性位来完成的。默认内存映射SAU 也允许配置默认内存映射即对于没有明确通过 SAU 区域定义的内存指定它们的安全状态。
SAU 寄存器
SAU 的配置是通过一系列的系统控制寄存器来完成的主要包括
AddressRegisterDescription0xE000EDD0SAU_CTRLSAU Control Register0xE000EDD4SAU_TYPESAU Type Register0xE000EDD8SAU_RNRSAU Region Number Register0xE000EDDCSAU_RBARSAU Region Base Address Register0xE000EDE0SAU_RLARSAU Region Limit Address Register0xE000EDE4SFSRSecure Fault Status Register0xE000EDE8SFARSecure Fault Address Register
SAU_CTRLSAU 控制寄存器用于启用或禁用 SAU以及配置默认的内存映射属性。 bit[1]: 0- Memory is marked as Secure and is not Non-secure callable.1- Memory is marked as Non-secure. bit[0]: 0-SAU is disabled;1-SAU is enabled; SAU_TYPESAU 类型寄存器提供 SAU 支持的区域数量和配置信息。 bit[7:0] SAU regions. The number of implemented SAU regions. SAU_RNR: SAU 区域编号寄存器用于选择要配置的 SAU 区域。 bit[7:0]Region number. Indicates the SAU region accessed by SAU_RBAR and SAU_RLAR. SAU_RBAR 和 SAU_RLARSAU 区域基址和限制寄存器用于定义具体 SAU 区域的起始地址和结束地址并指定区域的安全属性。 SAU_RBAR bits [31:5]: Base address. Holds bits [31:5] of the base address for the selected SAU region.SAU_RLAR bits [31:5]: Limit address. Holds bits [31:5] of the limit address for the selected SAU region.NSC, bit [1]: Non-secure callable. Controls whether Non-secure state is permitted to execute an SG instruction from this region. 0: Region is not Non-secure callable.1: Region is Non-secure callable. bit [0]: 0-SAU region is disabled,1-SAU region is enabled.
配置示例
假设我们想要将一块内存区域配置为安全区域我们可以按照以下步骤进行
确定内存区域的起始地址和结束地址。选择 SAU 区域编号并配置 SAU_RNR 寄存器。设置 SAU_RBAR 寄存器定义区域的起始地址和安全属性。设置 SAU_RLAR 寄存器定义区域的结束地址。如果需要配置 SAU_CTRL 寄存器以启用 SAU 并设置默认内存映射。
配置 SAU 通常在系统启动时进行作为启动代码或安全初始化例程的一部分。正确配置 SAU 对于确保系统的安全性是至关重要的因此需要仔细规划内存布局并根据系统需求设置正确的安全属性。
由于 SAU 的配置涉及到系统的安全架构因此需要具备相应的权限才能进行配置。在非安全状态下的代码通常无法修改 SAU 的设置以保护安全状态下的资源不被非安全代码破坏。