基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯

STM32L5trustzone使用(一)

  • STM32L552使用前提配置
    • cubemx初始化
    • keil程序配置
    • 程序编译和下载

STM32L552使用前提配置

本次学习的开发板为NUCLEO_L552ZE_Q,使用trustzone功能,点亮LED灯,代码保存至trustzone里。
前提配置如下:
1、下载STM32CubeProgrammer,打开该软件,点击右侧connect,连接开发板。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第1张图片
2、点击左侧OB按钮,点击User Configuration选项,将 TZEN 选项打钩,再点击apply按钮。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第2张图片
3、在Secure Area 1进行如下配置:
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第3张图片
4、在Secure Area 2进行如下配置:
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第4张图片
5、最后点击apply,将配置保存进开发板里。

cubemx初始化

1、点击yes,使能trustzone功能。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第5张图片
2、配置系统时钟,这里使用HSI+PLL模式。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第6张图片

3、开发板led灯引脚为PC7,这里选择把PC7配置成GPIO输出模式,这里切记要把PC7的Pin context assignement配置成cortexm33 secure或者non secure模式,若配置成free,则不能成功初始化。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第7张图片
4、cubemx配置好后,生成工程。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第8张图片

keil程序配置

1、keil工程介绍:
cubemx生成的文件里包括两个工程:一个为secure工程,另一个为non-secure工程。两个工程必须先后编译,先编译secure工程,再编译non-secure。下载程序时,先下载non-secure的工程,后下载secure工程。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第9张图片
2、secure工程配置
(一)、程序下载地址配置,本次使用采用官方推荐的空间配置,即256krom和96kram给trustzone。在rom地址配置为0xC000000,256k的大小为0x40000;ram地址配置为0x30000000,96k的大小为0x18000。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第10张图片
(二)、下载算法配置,这里选择secure_flash。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第11张图片
(三)、GPIO初始化程序。这里可以发现,cubemx在secure工程的main文件里生成了PC7的初始化代码,验证了之前cubemx里的Pin context assignement配置。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第12张图片
3、non-secure工程配置
(一)、程序下载地址配置,本次使用采用官方推荐的空间配置,即256krom和160kram给non-trustzone。在rom地址配置为0x8040000,256k的大小为0x40000;ram地址配置为0x20018000,160k的大小为0x28000。
基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第13张图片
(二)、下载算法配置,这里选择Nsecure_flash。基于cubemx6.0的stm32l5trustzone使用(一)-点亮led灯_第14张图片

程序编译和下载

1、程序编译:
包含trustzone的工程里需要先编译trustzone工程,之后再编译non-trustzone工程。因为在trustzone机制里,non-trust可以使用trust允许的api函数,为保证trust开放的函数能在non-trustzone工程里被准确编译,所以必须先编译trustzone工程。
2、程序下载
这里建议先下载non-trustzone工程,再下载trustzone工程。

你可能感兴趣的:(STM32L5,安全)