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.hqwc.cn/news/422218.html

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

相关文章

JavaScript库jquery的使用方法

"写更少,做更多"是jquery的设计理念,jquery是一个兼容多浏览器的JavaScript库,利用jquery的语法设计能使开发更便捷。 网页添加jquery的方法:1.从jquery.com下载库;2.从CDN中载入库(示例使用)&a…

【GitHub项目推荐--一个语音机器人项目】【转载】

推荐一个腾讯大佬开源的语音对话机器人:wukong-robot ,悟空机器人在 GitHub 上斩获 3.2K 的 Star。 这是一个简单灵活的中文语音对话机器人项目,目的是让中国的开发者也能快速打造个性化的智能音箱,同时,该项目还是第…

枚举类型有着一篇足以

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 1.关键字enum的定义 enum是C语言中的一个关键字,enum叫枚举数据类型&#…

租赁一台同传设备,哪里比较专业呢

我们知道 ,同声传译设备在会议、演讲或其他语言交流场合中发挥着至关重要的作用。它们能够实现不同语言之间的即时翻译,让与会者或听众更准确地理解会议或演讲的内容。对于跨国会议或活动,同声传译设备是确保语言沟通顺畅的必要工具。那么&am…

想在IDEA中调试API?试试这款,堪比postman

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

FPGA物理引脚,原理(Pacakge and pinout)-认知3

画FPGA芯片引脚封装图(原理),第一是参考开发板(根据一下描述了解总览),第二是研究Datasheet. ASCII Pinout File Zynq-7000 All Programmable SoC Packaging and Pinout(UG585) 1. Pacakge overview 1.1&#xff0…

Windows系统如何修改Nginx配置实现远程访问多个本地站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

【C++】stack与queue的模拟实现

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 前言 stack与queue的实现比较简…

如何在CentOS使用docker部署青龙面板并实现无公网ip远程访问

文章目录 一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用。本教程使用Docker部署青龙,如何安装Docker详见: 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 青龙…

charles mac抓包unknown问题

第一步:mac上安装Charles后,mac安装证书: 第二步:mac上信任证书 第三步:手机上安装证书 安装提示:电脑上通过help–>SSLProxying–> Install Charles Root Ceriticate on a Mobile Device or Remote …

智能手机维修市场分析:还存在着巨大的潜在市场

2022年,中国智能手机市场出货量仅2.86亿台,回到十年前的水平,同比下降13.2%,创有史以来最大降幅。 2010-2022年,全球智能手机出货量规模呈现先上升后趋于平稳的趋势。2016年,全球手机出货量达到14.73亿台&a…

动态规划——数字金字塔【集训笔记】

题目描述 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。 输入 第一个行包含R(1≤ R≤…