【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】

这篇具有很好参考价值的文章主要介绍了【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


请阅读【嵌入式开发学习必备专栏 之Cortex-M33 专栏】


SAU NSC 介绍

ARMv8-M 架构引入了 TrustZone 技术,它提供了一种机制来实现在单个处理器内部的安全隔离。这项技术定义了两种状态:安全状态(Secure state)和非安全状态(Non-secure state)。在此架构下,可以同时运行安全和非安全代码,并且通过硬件保护确保两者之间的隔离。

为了允许非安全代码安全地调用安全函数而不会破坏系统的安全性,ARMv8-M 引入了一种特殊的机制,即 非安全可调用(Non-secure Callable, NSC)区域。以下是一些详细解释:

安全状态(Secure state)

  • 安全状态下的代码能够访问所有资源,包括安全和非安全内存以及外设。
  • 任何要执行的安全代码都必须首先经过认证,并且通常被用来处理敏感数据和执行安全相关的任务。
  • 安全状态下可以执行任务,如加密操作、安全启动、安全存储等。

非安全状态(Non-secure state)

  • 非安全状态下的代码不能直接访问安全资源。
  • 这被用来运行较少敏感的或者第三方的应用代码。

非安全可调用(Non-secure Callable, NSC)区域

如果实施了安全扩展,则 4GB 内存空间将划分为安全非安全内存区域。安全内存空间进一步分为两种类型:

  • 安全(S);
  • 非安全可调用(NSC: Non-secure Callable)。
NSC 介绍
  • NSC 区域是安全内存中的一个特殊区域,安全世界可以将其配置为允许非安全世界的代码进行限制性调用,这种类型的内存是 Armv8-M 处理器允许保存 SG 指令的一种内存,使软件能够从非安全状态转换为安全状态。
  • 这些区域通常包含一些入口点,比如封装了安全函数的跳转指令。比如,通常 NSC 内存区域包含小型分支跳转(entry points)的表。 为了防止非安全应用程序分支到无效入口点,这里有Secure Gateway (SG) 指令。。
  • 当非安全代码试图调用安全函数时,它会跳转到 NSC 区域中的入口点,然后由这个入口点安全地转发到真正的安全函数。

通过将 SG 指令的功能限制在 NSC 内存中,安全软件创建者无需在正常安全内存中意外包含 SG 指令或数据共享编码值,包含 NSC 内存位置。

当非安全程序调用安全端的函数时

  • API 中的第一条指令必须是 SG 指令。
  • SG 指令必须位于由 安全属性单元 (SAU :Security Attribution Unit) 或实施定义的属性单元 ( IDAU : Implementation Defined Attribution Unit) 定义的 NSC 区域中。

引入NSC内存的原因是为了防止其他二进制数据,例如查找表,其值与SG指令的操作码相同,作为进入安全状态的入口函数。 通过分离 NSC 和 Secure 内存类型,包含二进制数据的 Secure 程序代码可以安全地放置在 Secure 区域中,而无需直接暴露于 Normal 世界,并且只能使用 NSC 内存中的有效入口点进行访问。

配置 NSC

配置 NSC 区域通常涉及设置内存保护单元(MPU)或安全属性单元(SAU)的相关区域,使其具有 NSC 属性。这通常在系统启动时,由安全世界的启动代码完成。

NSC 区域中的函数通常会使用 BXNS 指令来返回到非安全状态,确保返回时正确地恢复非安全状态的上下文。 在设计安全系统时,正确配置和使用 NSC 区域是保护系统免受未授权访问和潜在漏洞影响的关键部分。

推荐阅读
https://blog.csdn.net/weixin_42135087/article/details/122391507文章来源地址https://www.toymoban.com/news/detail-762229.html

到了这里,关于【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARMv8M Cortex-M33 系列 7.4 -- 如何使能 usagefault | memmange fault | bus fault 中断】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 由于文章【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】 中提到了HardFault 的发生是由于其它异常所升级导致的,所以就需要调查下如何是能其它异常中断。 在 ARM Cortex-M33 核心上启用 UsageFault 、 MemManageFault 和 BusFault 异

    2024年01月20日
    浏览(51)
  • 【ARMv8M Cortex-M33 系列 7.3 -- EXC_RETURN 与 LR 及 PC 的关系详细介绍】

    请阅读 【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】 接着上篇文章:【ARMv8M Cortex-M33 系列 7.2 – HardFault 问题定位 1】,后面定位到是在 cortex-m33/context_gcc.S 执行完 BX Lr 之后就发生了 HardFault,通过JLink 发现 LR 的值为 0xfffffffd 所以又继续调查了 EXC_RETURN 的具体含义。 在 ARM

    2024年01月25日
    浏览(55)
  • 【ARMv8M Cortex-M33 系列 3 -- RT-Thread renesas/ra4m2-eco 移植编译篇】

    请阅读 【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 本文以瑞萨的 ra4m2-eco 为例介绍如何下载rt-thread 及编译的设置。 RT-Thread 代码下载 : git clone 路径 :https://github.com/RT-Thread/rt-thread 代码下载下来后如下: 此外还需自行下载一套编译 arm gcc 编译工具,如 gcc-arm-none-eabi 。 编

    2024年02月03日
    浏览(53)
  • 【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】

    请阅读 【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】 在移植 RT-Thread 到 瑞萨RA4M2(Cortex-M33)上时,遇到了hardfault 问题,最后使用了Cortex-M4中的调度相关的函数后,OS 可以正常调度了。所以这里做下 M33与 M4的关系梳理。 ARM Cortex-M33 和 Cortex-M4 都是 ARM 公司设计的32位RISC微处理

    2024年01月21日
    浏览(46)
  • 【ARM Cortex-M 系列 3 番外篇 -- ARMv6, ARMv7, ARMv8, ARMv9 架构差异及精简指令集 与 复杂指令集 介绍】

    上篇文章:ARM Cortex-M 系列 2.1 – RT-Thread Cortex-M7 异常处理及 hardfault 处理分析 ARM架构是一种处理器架构,全称为高级精简指令集计算机(Advanced RISC Machine)。它是英国ARM公司设计的一种精简指令集( RISC )处理器架构,和复杂指令集( CISC )处理器架构相对。 CISC 与 RISC 差异

    2024年02月08日
    浏览(46)
  • 【ARM Trace32(劳特巴赫) 使用介绍 1.1 - Veloce 环境中使用trace32 连接 Cortex-M33】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】 上篇文章:【ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32】 下篇文章:【ARM Trace32(劳特巴赫) 使用介绍 2.1 – TRACE32 Practice 脚本 cmm 脚本学习】

    2024年02月04日
    浏览(41)
  • 【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

    请阅读 【ARM Coresight | AMBA BUS| Armv8/v9 | GCC 专栏导读】 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M0/M0+ 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU)核心。这个核心是基于 ARMv6-M 架构设计的, 只支持 56 条指 令的小指令集,大部分指令是 16 位指令, 是 ARM Cor

    2024年02月17日
    浏览(46)
  • 【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33, M35P 差异】

    请阅读 【ARM Coresight | AMBA BUS| Armv8/v9 | GCC 专栏导读】 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M0/M0+ 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU)核心。这个核心是基于 ARMv6-M 架构设计的, 只支持 56 条指 令的小指令集,大部分指令是 16 位指令, 是 ARM Cor

    2024年02月05日
    浏览(44)
  • NXP i.MX 8M Mini工业核心板硬件说明书(四核ARM Cortex-A53 + 单核ARM Cortex-M4,主频1.6GHz)

    创龙科技SOM-TLIMX8是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高端工业级核心板,ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM Cortex-M4实时处理单元主频高达400MHz。处理器采用14nm最新工艺,支持1080P60 H.264视频硬件编解码、1080P60 H.265视频硬

    2024年02月11日
    浏览(50)
  • NXP i.MX 8M Plus工业开发板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

    本文主要介绍创龙科技TLIMX8MP-EVM评估板硬件接口资源以及设计注意事项等内容。 创龙科技TLIMX8MP-EVM是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 + 单核ARM Cortex-M7异构多核处理器设计的高性能工业评估板,由核心板和评估底板组成。ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM

    2024年02月11日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包