生态系统

STM32WB STM32L5

STM32L5 生态系统总汇




STM32L5入门课程(一) 从Cortex-M33内核认识TrustZone

STM32L5入门课程(二) STM32L5的系统新架构

STM32L5入门课程(三) TrustZone环境下新的用户编程模型

STM32L5入门课程(四) STM32CubeMX:支撑TZ应用

STM32L5 进阶课程系列(八) SRAM、Flash和启动机制的最新安全特性

STM32L5 进阶课程系列(九) Cache,为STM32L5提速助力

STM32L5 进阶课程系列(十) STM32L5的系统新架构

STM32L5 进阶课程系列(十一) OTFDEC,无缝扩大代码的安全存储空间

STM32L5 进阶课程系列(十二) PKA, 非对称加解密 加速引擎

STM32L5 全国研讨会 从通用到安全






 

   

从使用角度,我们有以下六类设计资源,提供给开发者,做基于STM32L5的安全应用开发。

技术文档、评估板、参考固件例程、配合应用开发的软件工具、中文培训材料、本地方案(ST本地支持团队和中国合作伙伴开发的方案,都会在这里向大家集中展示)

技术文档

 

基础技术文档

RM0438

STM32L5参考手册

PM0264

Cortex-M33内核编程手册

DS12736

STM32L562xx系列】数据手册

DS12737

STM32L552xx系列】数据手册

ES0448

STM32L552xx/562xx系列】勘误手册

应用笔记/用户手册

AN5050

Octo-SPI interface on STM32

STM32Octo-SPI接口外设》

STM32L5新外设和新模块

AN5348

FDCAN peripheral on STM32 devices

STM32FDCAN接口外设》

AN5405

FDCAN protocol used in the STM32   bootloader

STM32启动程序使用的FDCAN协议》

 AN5212

Using STM32L5 cache to optimize   performance and power efficiency

《使用STM32L5cache来优化性能和能效》

 AN4838

Managing memory protection unit in STM32   MCUs

《管理STM32MPU

支持L5新版本MPU

  

基础文档,除了参考手册,数据手册,勘误手册之外,由于STM3L5是第一颗基于CM33内核的STM32,因此对内核的编程手册也是一篇重要的文档。

STM32L5延续以往STM32系列的外设基因,同时增加了新的外设模块,进一步扩展目标应用市场,并进一步提高效能和安全性。对这些新外设,我们都有应用文档描述它的使用。

 

应用笔记/用户手册

AN4992

Overview secure firmware install (SFI) 

《安全固件安装概览》

 

 

 

 


STM32L5TrustZone和其他安全特性

AN5347

STM32L5 TrustZone feature

STM32L5TrustZone特性》

AN5421

Getting started with STM32L5 and TrustZone® development

《基于STM32L5TrustZone开发入门体验》

AN5428

STM32L5 system memory RSS services

STM3L5系统存储区里的RSS(根安全服务)

AN5447

Overview of SBSFU solution on STM32L5 

STM32L5的安全启动和安全固件升级方案介绍》

UM2581

 STM32L5 Nucleo-144 board (MB1361)

STM32L5144引脚Nucleo板介绍》

STM32L5的三种不同定位和功能的评估板

UM2597

Evaluation board with STM32L552ZE MCU

STM32L552Evaluation(全功能评估)板》

UM2617

Discovery kit with STM32L562QE MCU

STM32L562Discovery(探索套件)板》

安全,是STM32L5的重点特性之一,除了TrustZone,ST还提供了安全启动安全升级的参考源码,以及用于产线上安全烧录固件的SFI服务。以下文档,可以让你有一个比较全面的认识。

应用笔记 / 用户手册

AN5424

STM32Cube firmware examples for STM32L5

STM32CubeL5固件包里的例程介绍》

搭配STM32CubeL5固件包

UM2656

Getting started with CubeL5 for STM32L5

《基于固件包STM32CubeL5体验STM32L5的入门》

AN5394

Getting started with L5 in STM32CubeIDE

《基于软件工具STM32CubeIDE体验STM32L5的入门》

AN5211

Getting started with STM32L5  hardware development

《基于STM32L5的硬件开发指南》

AN5138

Migrating from STM32L4 and STM32L4+  to STM32L5

《如何从现有设计从STM32L4STM32L4+移植到STM32L5

方案移植

 

除了评估板和技术文档,和以往的STM32芯片一样,STM32L5也有它自己的固件包:STM32CubeL5。里面包罗了很多预编译后,直接下载就能运行的例程,在以下文档里我们也有描述。  STM32L5是ST推出的集低功耗和安全特性为一身的芯片,现有基于前代产品的方案,如果要移植到更安全,更节能的STM32L5上,可以参考AN5138的移植文档。

评估板


NUCLEO-L552ZE-Q


STM32L562E-DK


STM32L552E-EV

芯片型号

STM32L552ZET6QU

STM32L562QEI6QU

STM32L552ZET6QU

板上调试器

STLINKV2

STLINKV3

STLINKV2

片上硬件密码学模块

SHA, TRNG

SHA, TRNG

AES, PKA

SHA, TRNG

板上器件

3个用户LED

1个用户按钮,一个复位按钮

32.768KHz 晶振

+

TFT LCD模块,带触摸功能功耗测量器件(300nA~150mA)

Audio CODEC, MEMS数字麦克风,Octo-SPI FlashBLE模块,加速度计和陀螺仪

4个用户LED+

Octo-HyperRAMSRAMEEPROMTamper按键,Joystick,触摸感应按钮,光敏电阻,纽扣电池

用户手册

UM2581

UM2617

UM1597

ST官方有三种L5的评估板。DK板上搭载L562系列,比Nucleo和Eval板上L552系列,多一些和密码学操作有关的硬件:支持对称加解密技术的AES,和支持非对称加解密技术的PKA。

并且DK板载的STLINK是第三代产品,下载速度更快,支持更多USB桥接接口,比如I2C、SPI,CAN等。这三块板子对应的用户手册,也在下表中列出。

为了方便大家体验STM32L5,Nucleo评估板已在STM32天猫旗舰店上线。

固件例程

 

基于TrustZone的例程

CORTEX

InterruptSwitch

如何先在安全应用中使用一个中断,再在非安全应用中使用同样这个中断

Nucleo

DMA

MemToMem

如何在DMA的安全通道和非安全通道上执行存储区间的数据传输

Nucleo

FLASH

BlockBased

如何对片上Flashblock为粒度进行安全区域和非安全区域的设置和使用

EVAL

EraseProgram

如何执行片上Flash的擦除和编程操作

EVAL

FMC

SRAM

如何配置FMC控制器,访问被安全应用和非安全应用划分了各自区域的板载SRAM

EVAL

GPIO

IOToggle

如何翻转安全和非安全区域的I/O引脚

DK, Nucleo

HASH

SHA1_DMA

如何在安全DMA通道上使用安全的HASH   SHA-1计算服务

Nucleo

RCC

ClockConfig

如何从非安全应用中触发请求,去安全应用中在运行模式配置系统时钟

DK, Nucleo

RTC

RTC

如何配置TrustZone-awareRTC,某些特性在安全状态,某些特性在非安全状态

Nucleo

UART

Trace

如何使用UART定义一个安全的trace通信路径

DK

STM32CubeL5软件包里有丰富的例程,这里强调的有三个种类的例程,和以往的Cube软件包里内容有所不同。一类是支持TrustZone的例程:基于TrustZone的软件开发需要新的编程模型,即使就是简单的翻转gpio引脚电平,也通常需要两个项目,一个运行在安全世界,一个运行在安全世界。但是有一点需要大家注意一下,并非必须两个工程,但是运行在安全世界的工程一定是必须的。

通过这个表格里列出的例程,大家可以体会一下RTC、DMA、Flash的操作,在需要支持TrustZone隔离的应用中,和普通应用开发有什么不同。

STM32L5的新外设例程

GTZC

如何使用GTZC单元里的MPCWMTZIC子模块

EVAL

如何使用GTZC单元里的MPCBB子模块,并使能SecureFault检测

DK, Nucleo

OTFDEC

如何使用安全的OTFDE在安全区域对数据进行加密,再在非安全区域对其解密,而无需密钥交换

DK

如何对存储在外部Octo-SPI Flash的数据进行解密

如何执行存储在外部Octo-SPI Flash上的指令

PKA

使用PKA模块执行ECC相关操作(验证公钥、从私钥产生公钥、计算签名)

DK

使用PKA模块执行模幂运算

 

第二类例程:支持STM32L5新增的硬件模块,比如GTZC,OTFDEC、PKA。其中绿色字体标注的,是新模块在TrustZone使能后的用法。

STM32L5的新外设例程

TFM

提供信任根方案,包括安全启动、安全固件升级;还提供了安全服务的例子,它运行在安全世界,和非安全应用隔离开来,但是能被非安全应用在运行时调用。安全服务包括:加解密、安全存储、设备认证等

DK

SBSFU

提供信任根方案,包括安全启动、安全固件升级;还提供了安全服务的例子,它运行在安全世界,和非安全应用隔离开来,但是能被非安全应用在运行时调用

Nucleo

FatFs

如何在TrustZone使能的条件下使用FatFs协议栈

DK, Nucleo

FreeRTOS

如何在TrustZone使能的条件下使用FreeRTOS,支持TZFreeRTOS和以往有什么不同?

DK, EVAL, Nucleo

前两个表格里的例程都是针对单个外设模块的使用展示,接下来的例程,集成更多中间件,包括文件系统和ROTS。TFM和SBSFU是基于STM32L5的trustzone架构,并结合了L5特有的片上安全模块,实现了安全启动和安全固件升级的功能,解决了现在IOT时代大多数设备的共性问题。

相关资料

培训资料

 

STM32L5快速入门

课程章节名称

章节介绍

时长

01. 认识ARM Cortex-M33内核

从内核角度认识TrustZone,包括为了支持TZ功能而在内核里新增的外设,以及原有内核外设为了支持该功能的更新

40 分钟

02. STM32L5的系统新架构

光有内核的TrustZone是不够的,STM32L5隔离的概念和措施从内核延伸出来,部署到了全片系统

30 分钟

03. TrustZone环境下新的用户编程模型

通过GPIO toggle例程,体会新的用户编程模型,深入理解Cortex-M33内核和STM32L5外设对TZ的支持和使用

60 分钟

04. STM32CubeMX对TrustZone环境的支持

使用STM32CubeMXSTM32L5上生成TZ应用初始代码及其框架,添加用户应用逻辑,实现前三节课里讲的知识点

30 分钟

05. STM32L5的低功耗特性

理解L5的供电策略、各种低功耗模式,内置DC/DC SMPS的使用, 以及外设对于低功耗方面的设计考虑,BAM模式介绍

                                                               STM32L5 进阶课程 (敬请期待)

                                                               STM32L5 高阶课程 (敬请期待)

STM32L5的本地化培训材料分为三个level: 

- level 0 : STM32L5入门 - TZ入门,从内核到L5的基本外设,新的编程模型 

- level 1 : STM32L5 进阶 - L5其他新增外设 

- level 2: STM32L5深入 - Eco-system层面的中间件、方案、服务,具体会包括对 PSA, TFM, TEE, REE 的介绍和讲解。

工程师笔记

 STM32L5中如何关闭trustzone

工程师笔记,来自工程师在客户支持过程中遇到的典型和共性问题的解决记录。在STM32中文官网的设计资源板块,本地设计资源栏目里,实战经验页面,是历年所有笔记的汇总。和STM32L5相关的工作笔记,我们会陆续从中挑取出来,引用到这里,方便大家从一个总的入口就可以看到尽肯能多的和STM32L5相关的资料。

常见问答

 

STM32L5快速入门

Q1STM32L5比其他STM32芯片在安全性能上有哪些进一步提高?

ASTM32芯片里首颗集成支持TrustZone安全扩展的Cortex-M33内核,它在硬件上隔离出安全区域和非安全区域。   除此之外STM32L5HDP功能,还可以在安全世界里进一步提供运行时的隔离

Q2】在STM32L5上开发项目,一定要两个工程吗,这可是和以往的开发经验大不相同呢?

A】如果应用无需trustzone以及它带来的安全特性,可以关闭选项字节里的TZEN(芯片出厂状态TZEN是没有使能的)。这样,它的开发和其他以往STM32芯片的开发没有任何不同

Q3STM32L5除了低功耗、安全方面的提升,在性能上有进步吗?

ASTM32L5采用CM33内核,比CM4内核增加了20%的性能;同时STM32L5采用的新一代ST ART加速器不仅作用于片上Flash,还能作用于外接Flash (本质是加了一个Cache)

Q4OTFDEC模块可以对芯片外部flash上的内容进行加解密吗?

AOTFDEC的作用对象是STM32L5通过Oct-SPI接口外接的Flash,而不是所有接口上的外部Flash; 并且对外接O-SPI flash的内容是可以on-the-fly地解密,而加密不能on-the-fly地操作, 加密结果要先放在SRAM里,再由O-SPI flash的驱动来把密文写到外部Flash

为了进一步方便大家对STM32L5有个快速的认识,我们也在建立常见问题问答列表,相对前面提到的培训材料、工程师笔记,FAQ更多以“点”的形式来呈现,更加短小精悍。


 

STM32L5 常见问答

Q5STM32L5TZEN功能如何关闭?

ATZEN的设置,从01,很容易,使用STM32CubeProgrammer写选项字节就可以操作。 但是TZEN的撤销,从10,无法通过选项字节直接回退。需要把STM32L5先升级到RDP1,在从RDP10的回退过程中同时TZEN10,才能撤销TZEN。执行前有一些注意事项,详情参见:工程师笔记

Q6】哪里可以拿到L5的培训材料

培训

ASTM32中文官网:https://www.stmcu.com.cn/ecosystem/app/information-security  ;AI电堂:https://c.51diantang.com/columndetail?id=e30ad69473af4364ad433b8c30a3a404

Q7】我想使用OTFDEC模块,只有在Trustzone使能后才有这个功能,那么一旦TZEN置位了,我还是要做两个工程的开发吗,一个运行安全工程,一个运行非安全工程?

A】如果需要用到TrustZone使能后才有的安全特性,而无需TrustZone本身带来隔离功能,可以只开发一个工程,但是一定是运行在安全世界的工程,因为一旦TZEN置位后,芯片复位后一定是从安全世界开始运行的。 在《STM32L5进阶课程》我们会有具体例子的介绍

更多FAQ还在收集整理中

更多FAQ我们还在收集整理中,将会不断增加到这个列表里,欢迎大家持续关注。

安全固件烧录

 

关于HSM,详情参见:STM32HSM-V1

STM32L5是第一个全系列支持SFI服务的芯片系列。SFI是ST提供的一个方案,用于第三方产线对芯片进行烧录,解决的问题是烧录固件的保密性、完整性,以及控制产线的烧录次数。

SFI是一个服务,它不仅仅需要预先固化在芯片里的代码和数据支持,还需要其他环节的配合,包括HSM,Programmer。Programmer可以是装载了STM32CubeProgrammer软件工具的电脑,HSM可以是一张智能卡,详情参见图里的链接。

更多本地化方案,包括STM32L5上的TEE、REE,我们会陆续在这里呈现,欢迎大家的持续关注。