【ARMv8M Cortex-M33 系列 1 -- SAU 介绍】

文章目录

    • Cortex-M33 SAU 介绍
      • SAU 的主要功能包括
      • SAU 寄存器
      • 配置示例

在这里插入图片描述

Cortex-M33 SAU 介绍

在 ARMv8-M 架构中,SAU(Security Attribution Unit)是安全属性单元,用于配置和管理内存区域的安全属性。SAU 是 ARM TrustZone 技术的一部分,该技术提供了在单个处理器中创建安全(Secure)和非安全(Non-secure)状态的能力,允许系统同时运行受信任的安全代码和非受信任的非安全代码。

SAU 能够定义多个内存区域,并为每个内存区域指定其是否可被安全状态和/或非安全状态访问。这样,SAU 可以帮助创建一个隔离的安全环境,其中敏感的代码和数据可以被保护,不受非安全代码的影响。

SAU 的主要功能包括

  • 内存区域定义:SAU 允许你定义一系列的内存区域,并为每个区域指定安全属性。这些区域可以是 RAM、ROM、外设或其他类型的内存。
  • 安全属性配置:对于每个区域,可以配置其是否为安全或非安全访问。这是通过设置区域的属性位来完成的。
  • 默认内存映射:SAU 也允许配置默认内存映射,即对于没有明确通过 SAU 区域定义的内存,指定它们的安全状态。

SAU 寄存器

SAU 的配置是通过一系列的系统控制寄存器来完成的,主要包括:

AddressRegisterDescription
0xE000EDD0SAU_CTRLSAU Control Register
0xE000EDD4SAU_TYPESAU Type Register
0xE000EDD8SAU_RNRSAU Region Number Register
0xE000EDDCSAU_RBARSAU Region Base Address Register
0xE000EDE0SAU_RLARSAU Region Limit Address Register
0xE000EDE4SFSRSecure Fault Status Register
0xE000EDE8SFARSecure Fault Address Register
  • SAU_CTRL:SAU 控制寄存器,用于启用或禁用 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_TYPE:SAU 类型寄存器,提供 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_RBARSAU_RLAR:SAU 区域基址和限制寄存器,用于定义具体 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.

配置示例

假设我们想要将一块内存区域配置为安全区域,我们可以按照以下步骤进行:

  1. 确定内存区域的起始地址和结束地址。
  2. 选择 SAU 区域编号并配置 SAU_RNR 寄存器。
  3. 设置 SAU_RBAR 寄存器,定义区域的起始地址和安全属性。
  4. 设置 SAU_RLAR 寄存器,定义区域的结束地址。
  5. 如果需要,配置 SAU_CTRL 寄存器以启用 SAU 并设置默认内存映射。

配置 SAU 通常在系统启动时进行,作为启动代码或安全初始化例程的一部分。正确配置 SAU 对于确保系统的安全性是至关重要的,因此需要仔细规划内存布局,并根据系统需求设置正确的安全属性。

由于 SAU 的配置涉及到系统的安全架构,因此需要具备相应的权限才能进行配置。在非安全状态下的代码通常无法修改 SAU 的设置,以保护安全状态下的资源不被非安全代码破坏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB - 机器人逆运动学设计器(Inverse Kinematics Designer APP)

系列文章目录 前言 一、简介 通过逆运动学设计器,您可以为 URDF 机器人模型设计逆运动学求解器。您可以调整逆运动学求解器并添加约束条件,以实现所需的行为。使用该程序,您可以 从 URDF 文件或 MATLAB 工作区导入 URDF 机器人模型。调整逆…

智能优化算法应用:基于晶体结构算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于晶体结构算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于晶体结构算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.晶体结构算法4.实验参数设定5.算法结果6.…

MyBatis见解3

8.MyBatis的关联查询 8.3.一对多查询 需求:查询所有用户信息及用户关联的账户信息。 分析:用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,此时左外连接查询比…

Android Matrix画布Canvas缩放scale,Kotlin

Android Matrix画布Canvas缩放scale,Kotlin val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.height, Bitmap.Config.ARGB_8888)val canva…

P1883 函数

题目链接 P1883 函数 思路 举例 题目中的 F ( x ) F(x) F(x) 看起来很复杂,但由于每个 f ( x ) f(x) f(x) 的二次项系数 a a a 都不是负数,故 F ( x ) F(x) F(x) 是一个单谷函数。直接说出结论可能有些令人难以接受,不妨举出两个例子…

Ubuntu环境下使用Livox mid 360

参考文章: Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一:Livox mid 360驱动安装与测试 前言: Livox mid360需要使用Livox-SDK2,而非Livox-SDK,以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部…

FastAPI实现文件上传下载

FastAPI实现文件上传下载 1.后端FastAPI2.后端html3.效果 最近的项目需求,是前端vue,后端fastAPI,然后涉及到图像的消息发送,所以需要用fast写文件上传下载的接口,这里简单记录一下。 1.后端FastAPI import os.path i…

.net core webapi 大文件上传到wwwroot文件夹

1.配置staticfiles(program文件中) app.UseStaticFiles();2.在wwwroot下创建upload文件夹 3.返回结果封装 namespace webapi;/// <summary> /// 统一数据响应格式 /// </summary> public class Results<T> {/// <summary>/// 自定义的响应码&#xff…

H266/VVC帧内预测编码

预测编码技术 预测编码&#xff08;Prediction Coding&#xff09;是指利用已编码的一个或多个样本值&#xff0c;根据某种模型或方法&#xff0c;对当前的样本值进行预测&#xff0c;并对样本真实值和预测值之间的差值进行编码。 视频中的每个像素看成一个信源符号&#xff…

python3 数据分析项目案例,用python做数据分析案例

本篇文章给大家谈谈python3 数据分析项目案例&#xff0c;以及用python做数据分析案例&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 目录 一丶可视化绘图案例 1.曲线图 2.柱形图 3.点线图 4.3D散点图 5. 绘制漏斗图 6. 绘制词云图 二丶包/模块使用示例 (1)…

高通切换到Emergency Download:adb reboot edl

刷机 开机下adb reboot edl 切到QDloader 9008 点下载。 The command “adb reboot edl” is used to reboot an Android device into EDL (Emergency Download) mode using the Android Debug Bridge (ADB) tool. EDL mode is primarily used for low-level firmware flashing…

数据结构---算法的空间复杂度

文章目录 空间复杂度概念实例 空间复杂度 概念 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。…

LLM之RAG实战(八)| 使用Neo4j和LlamaIndex实现多模态RAG

人工智能和大型语言模型领域正在迅速发展。一年前&#xff0c;没有人使用LLM来提高生产力。时至今日&#xff0c;很难想象我们大多数人或多或少都在使用LLM提供服务&#xff0c;从个人助手到文生图场景。由于大量的研究和兴趣&#xff0c;LLM每天都在变得越来越好、越来越聪明。…

[node]Node.js 模块系统

[node]模块系统 Node.js中的模块系统模块的使用模块的导入模块的导出导出多个值导出默认值导出可传参的函数 文件查找策略从文件模块缓存中加载从原生模块加载从文件加载 Node.js中的模块系统 为了让Node.js的文件可以相互调用&#xff0c;Node.js提供了一个简单的模块系统。 …

【第七在线】数据分析与人工智能在商品计划中的应用

随着技术的不断进步&#xff0c;数据分析和人工智能&#xff08;AI&#xff09;已经成为了现代商品计划的关键组成部分。在服装行业&#xff0c;这两项技术正在帮助企业更好地理解市场需求、优化库存管理、提高生产效率和提供更好的客户体验。本文将深入探讨数据分析和人工智能…

华为---登录USG6000V防火墙---console、web、telnet、ssh方式登录

目录 一、环境搭建 二、第一次登录USG6000V防火墙&#xff0c;即通过console方式登录 三、用户配置 四、web登录USG6000V防火墙 1. 用web创建的用户通过web方式登录USG6000V防火墙 2. 命令行创建的用户通过web方式登录USG6000V防火墙 五、ssh方式登录USG6000V防火墙 1. 用…

从CTF中学习自增构造webshell

FLAG&#xff1a;那天晚上和你聊了很久&#xff0c;手机烫的和心脏一样 专研方向: 代码审计&#xff0c;Crypto 每日emo&#xff1a;天一亮&#xff0c;时间就不属于我了 从CTF中学习自增构造webshell 前言1.异或2.自增3.取反青少年CTF之ezbypass 前言 今天写了几道代码审计的…

Android MVI架构之UI状态的持有与保存

Android MVI架构之UI状态的持有与保存 我们将介绍状态持有者和其他与 UI 层相关的主题&#xff0c;例如在 Android 上提升状态和保存 UI 状态的位置。 状态持有者 状态持有者通过处理逻辑和/或公开 UI 状态来简化 UI。在本节中&#xff0c;我们将看到如何实现状态持有者以及…

Deepin更换仿Mac主题

上一篇博客说了要写一篇deepin系统的美化教程 先看效果图&#xff1a; 准备工作&#xff1a; 1.你自己 嘻嘻嘻 2.能上网的deepin15.11电脑 首先去下载主题 本次需要系统美化3部分&#xff1a;1.图标 2.光标 3.壁纸 开始之前&#xff0c;请先把你的窗口特效打开&#xff0c;…

深度解析LinkedList

LinkedList是Java集合框架中List接口的实现之一&#xff0c;它以双向链表的形式存储元素。与传统的数组相比&#xff0c;链表具有更高的灵活性&#xff0c;特别适用于频繁的插入和删除操作。让我们从底层实现开始深入了解这个强大的数据结构。 底层数据结构 LinkedList的底层数…