1513|2

274

帖子

8

TA的资源

纯净的硅(初级)

楼主
 

[ ST NUCLEO-U575ZI-Q 测评] 3-使用cubemx软件配置TrustZone工程 [复制链接]

本帖最后由 manhuami2007 于 2023-1-2 18:35 编辑

上一个帖子大概介绍了TrustZone的基本原理,接下来要写如何实现TrustZone。在初始化阶段可以借助st公司提供的cubemx等软件进行设置,具体步骤如下。

 

1.配置Flash的别名区

通过programer 配置"option bytes"里的TZEN和DBANK位,TZEN是使能Flash的TrustZone功能,DBANK是使能Flash的双bank功能。   

使能上面2个位之后,在option bytes中就出现了下面的选项,其中"secure area"选项负责设置2个bank的安全区域的大小。每个bank对应1个secure area 。  

下图中,SECWMx_PSTRT和SECWMx_PEND这2个参数是设置flash安全区的起始页和终止页的。  

比如把第一个bank全部设置成安全区:SECWM1_PSTRT=0,SECWM1_PEND=0x7F 。第二个bank全部设置成非安全区:SECWM2_PSTRT=1,SECWM1_PEND=0。设置规则如下图所示。

2.使用stm32cubemx配置

在使用cubemx建立工程的时候会出现弹出框,询问是否建立TrustZone工程,这时要选是。

2.1 设置GZTC

首先设置GZTC,GZTC控制了SRAM的访问。在这里定义SRAM的安全区和非安全区。cubemx默认将SRAM1、SRAM2和SRAM4用于安全区,SRAM3用于非安全区。如下图所示,注意2个图片的区别是"Area size"不同。  

SRAM1、2、3、4都是片内的SRAM。如下图的简介所示。

2.2 外设和中断的设置

这里要配置2个LED,1个按键和1个串口。其中1个LED用于安全区,1个用于非安全区。串口在非安全区。按键使用外部中断,并且可以通过串口配置这个中断是工作在安全区还是非安全区。

 

首先在cubemx中配置PB7(蓝色LED)工作在安全模式,如下图所示: 

PC7(绿色LED)工作中非安全模式,如下图所示: 

PC13是按键,按键按下时触发外部中断,先工作在安全模式。并且在NVIC_S中使能EXIT_13中断。 

使用UART1作为串口,将其勾选在M33_NS模式。

 

至此初始化工作完成,配置了Flash、SRAM、外设和中断的工作安全模式。下一步开始使用。

3.编写NSC代码

现在安全区的代码和非安全区的代码是独立的,两者需要建立联系,才能互相调用。

安全区的代码是可以直接调用非安全区的代码的,可以通过绝对地址进行调用,而在代码中则是通过函数指针代替了绝对地址进行调用。

非安全区的代码要想访问安全区的代码,需要NSC(非安全可调用)代码作为中介。也就是说非安全区的代码不能随便调用安全区的代码,只能调用安全区通过NSC表现出来的代码。

在工程中,上面2个部分的代码都是在安全区工程中的"secure_nsc.c"文件中的。这个文件的代码会被编译成库文件,供非安全区代码调用。

具体代码的实现,请见下一个帖子。

此帖出自无线连接论坛

最新回复

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html   详情 回复 发表于 2023-1-12 09:20
点赞 关注
 

回复
举报

6998

帖子

11

TA的资源

版主

沙发
 

现在安全区的代码和非安全区的代码是独立的,两者需要建立联系,才能互相调用。

安全区的代码是可以直接调用非安全区的代码的,可以通过绝对地址进行调用,而在代码中则是通过函数指针代替了绝对地址进行调用。

非安全区的代码要想访问安全区的代码,需要NSC(非安全可调用)代码作为中介。也就是说非安全区的代码不能随便调用安全区的代码,只能调用安全区通过NSC表现出来的代码。

在工程中,上面2个部分的代码都是在安全区工程中的"secure_nsc.c"文件中的。这个文件的代码会被编译成库文件,供非安全区代码调用。

感谢分享。认真学习一下。

此帖出自无线连接论坛
 
 

回复

1万

帖子

2853

TA的资源

管理员

板凳
 

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自无线连接论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表