【问题标题】:TrustZone of the Cortex-M23/33 vs. TrustZone of the Cortex-ACortex-M23/33 的 TrustZone 与 Cortex-A 的 TrustZone
【发布时间】:2018-09-23 11:31:02
【问题描述】:

Cortex M23/33 的 TrustZone 和 Cortex A 的 TrustZone 有什么区别?我是否可以开始在 Cortex A 处理器上对我的 Cortex M23 应用程序进行原型设计,然后在具有此内核的芯片可用时迁移到 Cortex M23?

【问题讨论】:

    标签: cortex-m cortex-a trust-zone


    【解决方案1】:

    免责声明:我不是 TrustZone 专家,我已经阅读了一些文章,并在 Aarch64 状态的 Armv8-a 处理器和 EL3/EL2 异常级别上尝试了 Arm 可信固件。

    根据这个link,他们看起来很不一样:

    • Cortex-A 正在使用 SMC 指令在非安全和安全世界之间切换,需要编写一些特定的部分或软件,例如可信启动、安全世界切换监视器、小型可信操作系统和可信应用程序。
    • Cortex-M 正在使用其硬件在非安全和安全世界之间实现更快的转换和更高的能效。无需任何安全监控软件。

    归根结底,您可能不应该使用 Cortex-A 来开始开发您的 Cortex-M23 软件。

    您应该看一下Arm MPS2+ FPGA Prototyping Board,确认它非常适合您的需求并购买:根据 ARM,它“提供了所有 Cortex-M 处理器的固定加密 FPGA 实现。”,包括 Cortex -M23 和 Cortex-M33 实现。

    FPGA 实现和真正的 Cortex-M23 实现在性能方面显然会有差异,但从 TrustZone 感知软件的角度来看,应该没有。

    如果您考虑一下,495.00 美元对于一个每小时花费 50 美元的嵌入式软件开发人员来说还不到 10 小时。从您的项目中消除巨大风险的代价不算太大——我的两分钱。

    【讨论】:

      【解决方案2】:

      我通过另一个渠道从 ARM 那里得到了关于这个问题的答案,因为这个话题可能对社区来说很有趣,所以我想在这里分享它。这是 ARM 所说的:

      虽然它们都被称为 TrustZone,但在高层次上, 概念是相似的,在架构的底层有很多 Cortex-M23/M33 和 Cortex-A 上的 TrustZone 之间的差异。这 以下网站总结了主要区别:

      https://developer.arm.com/technologies/trustzone

      由于这些架构差异,您不能使用 Cortex-A 为 Cortex-M 开发 TrustZone 软件的平台。

      【讨论】:

        【解决方案3】:

        Cortex-A 中的 Trustzone 使用专用模式来处理安全状态之间的切换,这种模式是监控模式。 在监控模式下,处理器将始终处于安全状态,并且可以访问 SCR 寄存器中的 NS 位,该魔术位将定义 CPU 在监控模式后将切换到的模式的安全状态。 因此,安全和非安全状态之间的任何切换都将通过单一入口点,即监控模式。

        带有安全扩展的ARMv8m有不同的方法,虽然概念是相同的,有两个状态安全和非安全但我们可以实现多个入口点在CPU状态之间切换,所以你有三种类型的内存属性:安全,非-secure and non-secure callable 和 non-secure callable 将代表确保从非安全过渡到安全的入口点。

        非安全可调用内存中的入口点具有独特的结构:它必须以SG(安全门)指令开始,一旦执行,CPU将切换到安全状态。 通过执行其他专用指令来处理切换回非安全状态:BXNS 和 BLXNS

        ARMv8M 遵循不同的方法,具有多个可由用户实现的入口点,并在 3 个内存属性之间划分可寻址内存速度

        更多详情可以参考以下课程: https://www.udemy.com/course/arm-cortex-m33-trust-zone/?referralCode=6BDA6DF1E47A7CF53175

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-03-22
          • 2022-12-21
          • 1970-01-01
          • 1970-01-01
          • 2015-06-06
          • 2022-01-01
          • 2018-06-19
          相关资源
          最近更新 更多