开篇语:传统MCU开发一个项目一般只有一个工程代码,但是STM32L5 如果使能了Trustzone功能,你将会神奇的看到:一个项目中有两个工程,一个工程为安全代码,另外一个工程为非安全代码。
今天这篇文章通过STM32 NUCLEO-L552ZE开发板,将向你展示这个神奇的芯片,让你未来在IoT领域一显身手。
访问权限先说明
stm32l5trustzone开启时,访问权限如下:
1、安全空间的代码可以访问安全和非安全的外设。
2、非安全空间的代码不可访问安全的外设。
3、安全空间的代码可以随意调用非安全空间的代码。
4、非安全空间的代码只能调用安全空间允许的代码。
非安全空间的代码不可访问安全的外设。
非安全空间的代码不可访问安全空间的外设寄存器,当非安全区操作安全区的外设时,会被cpu所屏蔽,使操作无效。
前提配置如下:
1、下载STM32CubeProgrammer,打开该软件,点击右侧connect,连接开发板。
2、点击左侧OB按钮,点击User Configuration选项,将 TZEN ,DBANK选项打钩,再点击apply按钮。
3、在Secure Area 1进行如下配置:
4、在Secure Area 2进行如下配置:
5、最后点击apply,将配置保存进开发板里。
cubemx初始化
1、点击yes,使能trustzone功能。
2、配置系统时钟,这里使用HSI+PLL模式
3,外设GPIO,LPUART配置
4.片内256K RAM 配置
5.NVIC 中断向量表配置
6.项目框架结构:
7.添加用户代码:
8.测试效果:
可以观看视频,也可自己下载对应程序到开发板,附件包括完整的配置教程.
评论