Armv8-M的TrustZone技术之内存属性单元

如果处理器包含Armv8-M安全扩展,则内存区域的安全状态由内部安全属性单元(SAU,Secure Attribution Unit)或外部实现定义的属性单元(IDAU,Implementation Defined Attribution Unit)的组合控制。SAU区域的数量在处理器实现期间定义。在复位时,SAU处于禁用状态。

如果未定义任何SAU区域,或者SAU被禁用,并且系统中没有包含IDAU,则整个内存地址空间被定义为安全,并且处理器无法切换到非安全状态。任何尝试切换到非安全状态都会导致故障。这是处理器的默认状态。

a2bdc4b75d74499b82b995d9a42b9ab2.png

SAU在安全状态下可编程,具有类似于内存保护单元(MPU)的程序员模型。SAU的实现可由设计人员配置。SAU始终存在,但设计人员定义了区域的数量。设计人员还可以使用IDAU定义固定的内存映射,并使用SAU来覆盖内存的某些部分的安全属性。一个简单的用法是使用IDAU将内存分割为500Mb的交替安全和非安全内存块。

微控制器或SoC器件的设计者将内存空间划分为安全和非安全区域。软件使用安全属性单元(SAU)或通过连接到特殊实现定义的处理器上的属性单元(IDAU)接口特定于设备的控制器逻辑来定义一些区域。内存分区还用于将外设定义为安全或非安全。

SAU和IDAU还为每个内存区域定义了区域号。区域号是8位的,并且由Test Target(TT)指令使用,以允许软件确定内存中对象的访问权限和安全属性。

只有在处理器中包含Armv8-M安全扩展时,才会实现SAU。包含在SAU中的区域的数量可以配置为0、4或8。

SAU只能在安全状态下进行编程。使用SAU区域编号寄存器(SAU_RNR)、SAU区域基地址寄存器(SAU_RBAR)和SAU区域限制地址寄存器(SAU_RLAR)对区域进行编程。可以使用SAU控制寄存器(SAU_CTRL)启用SAU。

【注意】:在对SAU的非安全区域进行编程时,必须确保不将安全数据和代码暴露给非安全应用程序。

处理器中的安全属性和内存保护由可选的SAU和可选的内存保护单元(MPU)提供。对于指令和数据,SAU返回与地址关联的安全属性。

对于指令,该属性确定了处理器在执行指令时允许的安全状态。它还可以识别是否可以从非安全状态调用安全地址的代码。它通过应用NSC属性来实现。

对于数据,该属性确定是否可以从非安全状态访问内存地址,以及外部内存请求是否标记为安全或非安全。

如果从非安全状态进行数据访问到标记为安全的地址,则处理器会触发安全故障异常。如果从安全状态到标记为非安全的地址进行数据访问,则相关的外部内存访问将被标记为非安全。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Ubuntu 22.04 上安装 Apache Web 服务器

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 22.04 上安装 Apache Web 服务器 介绍 Apache HTTP 服务器是世界上使用最广泛的 Web 服务器。它…

苹果眼镜(Vision Pro)的开发者指南(3)-【3D UI SwiftUI和RealityKit】介绍

为了更深入地理解SwiftUI和RealityKit,建议你参加专注于SwiftUI场景类型的系列会议。这些会议将帮助你掌握如何在窗口、卷和空间中构建出色的用户界面。同时,了解Model 3D API将为你提供更多关于如何为应用添加深度和维度的知识。此外,通过学习RealityView渲染3D内容,你将能…

8.前端--CSS-显示模式

元素的显示模式 元素显示模式就是元素&#xff08;标签&#xff09;以什么方式进行显示&#xff0c;比如<div>自己占一行&#xff0c;比如一行可以放多个<span>。 1.块元素 常见的块元素 常见的块元素&#xff1a;<h1>~<h6>、<p>、<div>、…

01 Redis的特性

1.1 NoSQL NoSQL&#xff08;“non-relational”&#xff0c; “Not Only SQL”&#xff09;&#xff0c;泛指非关系型的数据库。 键值存储数据库 &#xff1a; 就像 Map 一样的 key-value 对。如Redis文档数据库 &#xff1a; NoSQL 与关系型数据的结合&#xff0c;最像关系…

大模型的学习路线图推荐—多维度深度分析【云驻共创】

&#x1f432;本文背景 近年来&#xff0c;随着深度学习技术的迅猛发展&#xff0c;大模型已经成为学术界和工业界的热门话题。大模型具有数亿到数十亿的参数&#xff0c;这使得它们在处理复杂任务时表现得更为出色&#xff0c;但同时也对计算资源和数据量提出了更高的要求。 …

二、arcgis 点shp数据处理

在工作中&#xff0c;很多时候客户会提供点坐标&#xff0c;那么要想把点坐标生成shp文件&#xff0c;有两种方法&#xff08;坐标系CGCS2000&#xff09;&#xff1a; 1.当只有个位数的点坐标时&#xff0c;可以直接在arcgisMap中添加&#xff0c;具体步骤如下&#xff1a; …

【JavaSE】第一个Java程序

前提引入 在JavaSE的系列中&#xff0c;将从第一个Java程序开始叙述&#xff0c;系统的把JavaSE的内容总结一次。毕竟这是第二次学习JavaSE的内容&#xff0c;因此感触也相对比较深一些。在JavaSE的初步计划中&#xff0c;大概有十一到十三篇文章&#xff0c;大致有&#xff1…

docker 安装手册

docker 安装手册 第一步卸载旧的docker (如果安装过Docker否则跳过此步) 以防万一最好执行一遍 yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 第二步&#xff0c;安装相关…

ROS第 11 课 参数的使用与编程方法

文章目录 第 11 课 参数的使用与编程方法1.服务模型2.rosparam参数2.1 rosparam详细参数2.2 运行海龟例程2.3 rosparam的使用 3.编程方法3.1 编写控制程序 4.运行程序 第 11 课 参数的使用与编程方法 1.服务模型 &emap;&emsp在ROS master当中有一个参数服务器&#x…

Linux系统Shell脚本 ----- 编程规范和变量详细解读(一)

一、程序编程风格 面向过程语言 开发的时候 需要 一步一步 执行 做一件事情&#xff0c;排出个步骤&#xff0c;第一步干什么&#xff0c;第二步干什么&#xff0c;如果出现情况A&#xff0c;做什么处理&#xff0c;如果出现了情况B&#xff0c;做什么处理 问题规模小&#…

imgaug库图像增强指南(35):【iaa.Fog】——轻松创建自然雾气场景

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

gin如何实现热更新

什么是热更新&#xff1f; 一种不需要用户关闭应用或重新启动设备就能进行的软件更新技术。它可以快速地在线修复或升级应用程序的错误或功能&#xff0c;从而减少用户的等待时间并提高用户体验。 如何优雅停止服务&#xff1f; Go 1.8版本之后&#xff0c; http.Server 内置…

Unity中URP下的SimpleLit的 BlinnPhong高光反射计算

文章目录 前言一、回顾Blinn-Phong光照模型1、Blinn-Phong模型&#xff1a; 二、URP下的SimpleLit的 BlinnPhong1、输入参数2、程序体计算 前言 在上篇文章中&#xff0c;我们分析了 URP下的SimpleLit的 Lambert漫反射计算。 Unity中URP下的SimpleLit的 Lambert漫反射计算 我…

Unity - 简单音频

“Test_04” AudioTest public class AudioTest : MonoBehaviour {// 声明音频// AudioClippublic AudioClip music;public AudioClip se;// 声明播放器组件private AudioSource player;void Start(){// 获取播放器组件player GetComponent<AudioSource>();// 赋值…

UI设计中的插画运用优势(下)

6. 插画赋予设计以美学价值&#xff0c;更容易被接受 即使所有人都在分析和争论产品的可用性和易用性&#xff0c;大家在对美的追求上&#xff0c;始终保持着一致的态度。一个设计是否具备可取性&#xff0c;是否能够通过甲方、客户和实际用户&#xff0c;是每个设计人都需要面…

初识人工智能,一文读懂机器学习之逻辑回归知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

2024美赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 模型…

性能优化-HVX 指令介绍

「发表于知乎专栏《移动端算法优化》」 本文主要介绍了 HVX 指令相关的知识&#xff0c;包括 HVX 寄存器相关内容&#xff0c;指令的背景依赖&#xff0c;部分常用 intrinsic HVX 指令。具体指令的详细内容及使用还需阅读 HVX 的指令文档&#xff0c;以及细致的实践操作。 &…

表达式计算

四则运算表达式可以用表达式树表达&#xff0c;如下图后序遍历 现给你一个字符串&#xff0c;代表一个后序遍历形式的四则运算表达式&#xff0c;请计算出表达式的结果&#xff1a;(只输出整数部分) 注&#xff1a;除法只保留整数部分&#xff1b;5/4 1 输入&#xff1a; 一个…

使用 YApi 管理 API 文档,测试, mock

随着互联网的发展&#xff0c;API变的至关重要。根据统计&#xff0c;目前市面上有上千万的开发者&#xff0c;互联网项目超过10亿&#xff0c;保守统计涉及的 API 数量大约有 100 亿。这么大基数的API&#xff0c;只要解决某些共有的痛点&#xff0c;将会是非常有意义的事情。…
最新文章