适用于Cortex®-M处理器的Arm®TrustZone®入门

适用于Cortex-M处理器的TrustZone即将上市! Nuvoton已经宣布他们将发布世界上第一个Cortex-M23处理器Cortex-M2351,其中将包括对Arm TrustZone的支持。但是,对于许多物联网开发人员而言,问题在于他们准备立即开始学习TrustZone,但不要’他们无权访问任何可用来磨练技能的芯片或开发套件。在这篇文章中,我’我将向开发人员指出有用的资源,以帮助他们快速了解TrustZone,并向他们展示如何开始查看示例项目,以帮助他们快速入门。

目前,开始开发Cortex-M TrustZone应用程序的最简单方法是通过固定虚拟处理器(FVP)。 Keil MDK5 for Arm包括FVP模拟器以及几个不同的代码示例,可用于探索TrustZone应用程序。第一步是从keil.com网站下载Keil MDK并将其安装在开发计算机上。

接下来打开Keil Pack安装程序,然后在“设备”选项卡下,找到ARM-> All Devices ->ARM,选择ARM Cortex M33。在“示例”选项卡下,将可以模拟几个不同的示例项目,但最后三个是TrustZone示例!可以在下图中看到:

这三个示例为开发人员提供了有关如何使用TrustZone的越来越复杂的示例。在第一个示例ARMv8-M No 实时操作系统的TrustZone中,为开发人员提供了没有RTOS的裸机实现。开发人员可以开始了解如何配置安全和非安全存储器,中断和外围设备,以及如何在安全和非安全环境之间跳转。首先应检查此示例,同时阅读以下内容的Keil应用笔记291: 在ARMV8-M上使用TrustZone。一起浏览这些内容将为每个开发人员都需要入门的TrustZone基础。一旦奠定了基础,开发人员便可以检查更复杂的示例,以了解如何使用RTOS并对应用程序执行安全检查。

当开发人员成功检查了示例后,他们可以通过修改现有示例或尝试从头开始构建项目来开始尝试。开发人员会注意到的第一件事是TrustZone应用程序被分为两个单独的应用程序,即安全和非安全应用程序,如下图所示:

开发人员将要查看和修改partition_<device>.h文件,其中包含安全属性单元(SAU)。 SAU用于设置哪些存储区,中断和外设是安全的和不安全的。

开发人员在开始使用TrustZone时将需要注意几种不同的资源。首先,有一个用于armv8-m架构的Arm社区页面,位于 //community.arm.com/processors/trustzone-for-armv8-m/。有几篇博客文章和白皮书可以作为快速起步的重要储备。

其次,除了Arm网站和资料之外,我还于2018年1月在TrustZone上组织了一个1小时的介绍性网络研讨会,涵盖了基本概念并演示了基于裸机和基于RTOS的硬件应用程序。可以在以下位置找到 http://bit.ly/2BI7iPK.

虽然用于Cortex-M的Arm TrustZone是新产品,并且刚刚开始投放市场,但它有潜力成为帮助开发人员保护其嵌入式系统的主要工具。尽管硬件可能尚不可用,但从模拟示例开始并理解实现和软件模型可以在帮助开发人员为技术真正普及做好准备时大有帮助。

 

参考文献

http://www.keil.com/appnotes/files/apnt_291.pdf

//community.arm.com/processors/trustzone-for-armv8-m/

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.