477|3

28

帖子

0

资源

一粒金砂(中级)

【NUCLEO-L552ZE测评】-1: Start from TrustZone [复制链接]

本帖最后由 MianQi 于 2020-12-21 17:32 编辑

按照STM32 L5系列的介绍,这款芯片的最大亮点是启用了M33内核,最显著的特色是TZ(TrustZone)的出现。

 

TrustZone,我把它译作:可信区。这是一种STM32提供的安全(secure)机制,但是,对这里所说的“安全”要有正确的理解。我的理解是:“安全”分框架安全和内容安全。内容安全,说的是私密性,靠加密实现——无论软件或硬件加密;框架安全,说的是健壮性,靠隔离(isolate)实现,至少STM32在M33的TrustZone里是这么做地。

 

那所谓的“隔离”是什么意思呢?它指的是,一个系统里有确定的部分,有不太确定或者不确定的部分。确定的部分指的是常规的、通用的、已经定形了的部分,基本上可以认为是没有bug地;不确定的部分指的是实验或者试验性质的、有可能是拷贝(fork)来的,可能含有bug地。对这两部的“隔离”,意味着,可信区的对象可以访问或者调用不可信区的对象,反之不行,类似于硬件电路里的基于二极管的极性保护(个人理解)。

 

那可信区与不可信区由谁来划分呢?用户。

 

下面通过一个例子来演示一下TZ(TrustZone)的用法。需要说明的是,我是在Ubuntu 20.04.1 LTS上运行STM32CubeIDE,这里的界面布局跟Windows版有很大的不同,我将逐一用截图显示每一步的设置在哪里。

 

首先看一下,在Ubuntu上安装了STM32CubeIDE之后的icon界面:

Screenshot from 2020-12-18 17-03-05.png

 

启动IDE:

Screenshot from 2020-12-21 16-12-17.png

 

初次运行STM32CubeIDE的预安装界面:

Screenshot from 2020-12-18 17-05-12.png

 

新建一个STM32项目:

Screenshot from 2020-12-21 16-17-17.png

 

选板子:

Screenshot from 2020-12-18 17-06-00.png

 

最下边一个:

Screenshot from 2020-12-18 17-06-12.png

 

这个时候要把板子插上:

Screenshot from 2020-12-21 16-22-34.png
设置项目名称和工程路径:

Screenshot from 2020-12-18 17-06-43.png

 

注意:勾选“Enable TrustZone”:

Screenshot from 2020-12-21 16-22-38.png

 

下载固件:

Screenshot from 2020-12-18 17-07-37.png

 

初步设置完成:

Screenshot from 2020-12-21 16-23-33.png

 

设置GPIO:

在GPIO中选择“show all”,才会出现PG8/PG7:

Screenshot from 2020-12-21 16-40-52.png

 

在“Connectivity”中选择“LPUART1”:

Screenshot from 2020-12-21 16-43-00.png

 

设置为“Cortex-M33 non secure”:

Screenshot from 2020-12-21 16-43-13.png

 

将设置为:Asynchronous,波特率设置为:115200。(这个时候要注意输入法的切换,如果还是汉语输入,将会是:115200)

Screenshot from 2020-12-21 16-47-39.png

 

在“Clock Configuration”中,将APB1配置为55MHz。注意是peripheral clocks,而不是Timer clocks.

Screenshot from 2020-12-21 16-52-22.png

 

在“Secutity”中配置“GTZC”:

Screenshot from 2020-12-21 16-58-58.png

 

上述的截图位置跟windows下几乎都不相同(这里假设示例中的截图取自windows版的STM32CubeIDE)但是功能的设置是完全一样地——当然还有一处不同,就是当我参照这个教程的时候(https://www.stmcu.com.cn/ecosystem/chip/chipfamily-STM32L5-4),最后一步是“EXTI 14 line 14 interrupt”,而不是“13”。

Screenshot from 2020-12-18 17-30-00.png

 

在“NVIC Settings”中设置“Global TrustZone controller global interrupt”使能:

Screenshot from 2020-12-21 17-06-23.png

 

接下来的一部出现了问题:示例中用的是“EXTI line 13 interrupt”,而在我这里的界面中只有“EXTI line 14 interrupt””:

Screenshot from 2020-12-21 17-14-37.png

实际上,这是我这里的测试中发现的唯一一处跟示例中真正的不同,对接下来代码的使用有什么影响,且看下一帖:【NUCLEO-L552ZE测评】-2:  Stay in TrustZone。

 

在现有的状态下点击生成代码:

Screenshot from 2020-12-21 16-30-45.png

 

这是现在的项目目录:

Screenshot from 2020-12-21 17-20-05.png

 

此帖出自stm32/stm8论坛
Screenshot from 2020-12-21 17-19-14.png

回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

3182

帖子

1

资源

五彩晶圆(初级)

trustzone 听着很安全,没用过,不知道麻不麻烦难不难。

个人签名人已离开,无事别找,找也找不到。

回复

28

帖子

0

资源

一粒金砂(中级)

从目前了解的情况来看,不麻烦,也不难,但对于这个“安全”的认识要恰如其分——这里说的“安全”,有限度的“分隔”,而非“加密”。“分隔”通过硬件实施,用软件设置,在使用的过程中可以动态调用。


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表