Release Notes for

STM32CubeL5 Firmware Package

Copyright © 2019 STMicroelectronics

License

Licensed by ST under ST license SLA0048 (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at:

http://www.st.com/SLA0048

Purpose

STM32L5 series will serve all applications requiring ultra low-power and security thanks to Cortex-M33 core with the TrustZone support.

STMCube is an STMicroelectronics original initiative to ease developers life by reducing development efforts, time and cost.

STM32Cube covers STM32 portfolio.

STM32Cube Version 1.x includes:

All embedded software utilities come with a full set of examples.

The STM32Cube firmware solution offers a straightforward API with a modular architecture, making it simple to fine tune custom applications and scalable to fit most requirements.

The set of middleware components depends on the STM32 Series.

The HAL (Hardware Abstraction Layer) and LL (Low Layers) drivers provided within this package support the STM32L552xx/62xx lines.

The HAL and LL drivers provided within this package are compliant with MISRA-C:2012 guidelines, and have been reviewed with a static analysis tool to eliminate possible run-time errors. Reports are available on demand.

Update History

Main Changes

Maintenance release

  • Corrections and enhancements of CMSIS Device, HAL and Low Layer drivers
  • Middlewares updates: FreeRTOS, USB Device and USBPD Core & Device
  • Renamed Middlewares/mbedTLS path to fix Linux build
  • ICACHE peripheral enabled in projects to get a 0 wait-state execution from Flash memory and external memories, and reach the maximum performance
  • Project examples updated to STM32CubeMX 6.2.0

Contents

  • CMSIS Device updates
    • Add TAMP_CFGR register description for monitoring functions
    • Fix I2C4_EV_IRQn and I2C4_ER_IRQn order in IRQn_Type
    • Note: default Security Attribute Unit (SAU) configuration in partition_stm32l552xx.h and partition_stm32l562xx.h is available from \Include\Templates
      • default SAU setup is:
        • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
        • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
        • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
        • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripherals mapped memory)
        • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
        • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
  • HAL/LL drivers updates
    • HAL drivers
      • HAL ADC
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL CORTEX
        • Add APIs for MPU control
      • HAL CRYP
        • Add capability to manage GCM/GMAC/CCM header feed in DMA mode
      • HAL DAC
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL ICACHE
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL IWDG
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL LPTIM
        • Update external clock configuration for some ClockSource/CounterSource combinations
      • HAL MMC
        • High speed mode frequency computed based on real clock value
      • HAL NAND
        • Fix read and write in spare area (16-bits addressing)
      • HAL OPAMP
        • Rename definition OPAMP_POWERMODE_NORMAL to OPAMP_POWERMODE_NORMALPOWER
      • HAL PCD
        • Fix device ISO IN double buffer mode
        • Fix PMA rx count descriptor update
      • HAL RCC
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL RNG
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL RTC
        • Add APIs for daylight saving time:
          • HAL_RTC_DST_Add1Hour(), HAL_RTC_DST_Sub1Hour(), HAL_RTC_DST_SetStoreOperation(), HAL_RTC_DST_ClearStoreOperation() and HAL_RTC_DST_ReadStoreOperation()
        • Add APIs for monitoring functions:
          • HAL_RTCEx_EnableTemperatureMonitoring() and HAL_RTCEx_DisableTemperatureMonitoring()
          • HAL_RTCEx_EnableVoltageMonitoring() and HAL_RTCEx_DisableVoltageMonitoring()
          • HAL_RTCEx_EnableWUTMonitoring() and HAL_RTCEx_DisableWUTMonitoring()
      • HAL SDMMC
        • High speed mode frequency computed based on real clock value
      • HAL SMSBUS
        • Add extension files stm32l5xx_hal_smbus_ex.h/.c for new APIs:
          • HAL_SMBUSEx_EnableFastModePlus() and HAL_SMBUSEx_DisableFastModePlus()
      • HAL SPI
        • Fix code optimization problem in SPI_WaitFifoStateUntilTimeout()
      • HAL TIM
        • Fix HAL_TIM_OnePulse_Start() not to ignore OutputChannel parameter
        • Update timeout mechanism to avoid false timeout detection in case of preemption
      • HAL TSC
        • Add assert macro to avoid wrong CPLT/PGPSC configuration
    • LL drivers
      • New LL ICACHE
        • New stm32l5xx_ll_icache.h/.c files
      • LL ADC
        • Increase internal regulator stabilization time from 10us to 20us (LL_ADC_DELAY_INTERNAL_REGUL_STAB_US)
      • LL CORTEX
        • Add APIs for MPU control
      • LL OPAMP
        • Rename definition LL_OPAMP_POWERMODE_NORMAL to LL_OPAMP_POWERMODE_NORMALPOWER
      • LL RTC
        • Add APIs for monitoring functions:
          • LL_RTC_EnableTemperatureMonitoring() and LL_RTC_DisableTemperatureMonitoring()
          • LL_RTC_EnableVoltageMonitoring() and LL_RTC_DisableVoltageMonitoring()
          • LL_RTC_EnableWUTMonitoring() and LL_RTC_DisableWUTMonitoring()
      • LL SPI
        • Fix LL_SPI_Init() for Rx FIFO threshold if 8-bits mode
      • LL TIM
        • Fix LL_TIM_GetCounterMode()
        • Fix inverted comment for One Pulse Mode definitions
      • LL USART
        • Fix LL_USART_ClockInit() to configure clock phase and clock polarity when CR2_CLKEN is cleared
  • Projects updates

    ICACHE peripheral enabled in all projects to get a 0 wait-state execution from Flash memory and external memories

    All Projects updated to STM32CubeMX V6.2.0

    STM32CubeIDE optimization level to recommended -Os

    All FreeRTOS-based applications updated to FreeRTOS V10.3.1 (FreeRTOSConfig.h)

    • NUCLEO-L552ZE-Q
      • Examples/ADC projects updated to STM32CubeMX format
      • Examples/HASH/HASH_SHA1_DMA_TrustZone updated to STM32CubeMX format
      • Examples_LL/RTC/RTC_TimeStamp_Init: Fix Linux compilation
      • Examples_LL/USART/USART_Communication_Rx_IT_Continuous_VCP_Init: Fix STM32CubeIDE build
      • Examples_LL/UTILS/UTILS_ConfigureSystemClock: Remove wrong SystemClock_Config()
      • Applications/SBSFU: Various fixes and improvements
    • STM32L552E-EV
      • New Examples/ICACHE/ICACHE_SRAM_Memory_Remap example
      • Demonstrations: Fix gcc v9 compilation
    • STM32L562E-DK
      • Applications/TFM: Various fixes and improvements
      • Applications/mbedTLS/Crypto_Selftest: Fix issue with GCM accelerator


  • The STM32CubeL5 Firmware package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with preconfigured projects for the main supported toolchains.
  • The exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).


Projects

Name Version License Release notes
Projects V1.4.0 see Projects Release note for details release notes


  • Middleware updates
    • FreeRTOS V10.3.1
      • User application impact for CMSIS-OS V2 (Projects updated in package)
    • MbedTLS v2.16.2 update
    • USB Device
    • USBPD Core and L5 Device
  • Utilities updates
    • GUI_INTERFACE and TRACER_EMB for UCPD applications and use of UCPD Monitor tool


Components vs V1.3.1

The components flagged by “” have changed since the previous release. “” are new.


Drivers

Name Version License Release note
Cortex-M CMSIS V5.6.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.4 Apache-2.0 release notes
STM32L5xx HAL V1.0.4 BSD-3-Clause release notes
BSP STM32L552E-EV V1.0.3 BSD-3-Clause release notes
BSP STM32L562E-DK V1.1.1 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.3 BSD-3-Clause release notes
BSP Common V7.0.0 BSD-3-Clause release notes
BSP cs42l51 V2.0.2 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.2 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.3.0 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.3 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.5 BSD-3-Clause release notes
BSP stmpe811 V3.0.1 BSD-3-Clause release notes
BSP st7789h2 V2.0.2 BSD-3-Clause release notes

Middlewares

Name Version License Release note
STM32 USB Device Library V2.7.1 SLA0044 release notes
STM32 USBPD Core Library V3.3.0 SLA0044 release notes
STM32 USBPD Device Library L5 V4.0.0 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.3.1 MIT FreeRTOS release notes
ST modified 20200831 BSD-3-Clause ST release notes
mbedTLS ST modified 20200825 V2.16.2 Apache-2.0 release notes
ST modified 20200825 BSD-3-Clause ST release notes
mbed-crypto ST modified 20200612 V1.1.0 Apache-2.0 release notes
ST modified 20200612 BSD-3-Clause ST release notes
mcuboot ST modified 20200825 V1.5.0.1-cypress Apache-2.0 release notes
ST modified 20200825 BSD-3-Clause ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 BSD-3-Clause release notes
ST modified 20200622 BSD-3-Clause ST release notes

Utilities

Name Version License Release note
lcd V2.0.1 BSD-3-Clause release notes
Fonts V2.0.2 BSD-3-Clause release notes
GUI_INTERFACE V1.13.0 BSD-3-Clause release notes
TRACER_EMB V1.6.0 BSD-3-Clause release notes


Notes

  • The instruction cache (ICACHE) must be enabled by software to get a 0 wait-state execution from Flash memory and external memories, and reach the maximum performance.
  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Warnings are logged in EWARM TrustZone projects with ‘Verify Download’ option in IAR Embedded Workbench for ARM toolchain V8.42.2 and V8.50.5 but not preventing to run and debug.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 minimum + ST-Link
    • Projects compilation verified with V8.50.5
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27 minimum (ARM Compiler 6 (“AC5-like Warnings” selected))
    • Projects compilation verified with V5.31
  • STM32CubeIDE V1.3.0 minimum (gcc 7_2018_q2_update)
    • Projects compilation verified with STM32CubeIDE V1.6.0 (gcc 9_2020-q2_update)

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • This release is compatible with the previous versions

Dependencies

  • STM32CubeMX V6.2.0

  • STM32CubeProgrammer V2.4.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1

Main Changes

Patch release of STM32CubeL5 Firmware Package

  • Middlewares updates: mcuboot is provided with exe file digitally signed by ST

Contents

  • Middlewares updates
    • mcuboot: imgtool.exe digitally signed by ST


  • The STM32CubeL5 Firmware package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with preconfigured projects for the main supported toolchains.
  • The exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
Projects
Name Version License Release notes
Projects V1.3.0 see Projects Release note for details release notes


Components vs V1.3.0

Note: in the tables below, components in bold have changed since previous release

Drivers
Name Version License Release note
Cortex-M CMSIS V5.6.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.3 Apache-2.0 release notes
STM32L5xx HAL V1.0.3 BSD-3-Clause release notes
BSP STM32L552E-EV V1.0.2 BSD-3-Clause release notes
BSP STM32L562E-DK V1.1.0 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.2 BSD-3-Clause release notes
BSP Common V7.0.0 BSD-3-Clause release notes
BSP cs42l51 V2.0.1 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.3.0 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.2 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.3 BSD-3-Clause release notes
BSP stmpe811 V3.0.0 BSD-3-Clause release notes
BSP st7789h2 V2.0.1 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.6.1 SLA0044 release notes
STM32 USBPD Core Library V3.0.3 SLA0044 release notes
STM32 USBPD Device Library L5 V2.0.1 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.2.1 MIT FreeRTOS release notes
ST modified 20200117 BSD-3-Clause ST release notes
mbedTLS ST modified 20200402 V2.16.2 Apache-2.0 release notes
ST modified 20200402 BSD-3-Clause ST release notes
mbed-crypto ST modified 20200612 V1.1.0 Apache-2.0 release notes
ST modified 20200612 BSD-3-Clause ST release notes
mcuboot ST modified 20200825 V1.5.0.1-cypress Apache-2.0 release notes
ST modified 20200825 BSD-3-Clause ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 BSD-3-Clause release notes
ST modified 20200622 BSD-3-Clause ST release notes
Utilities
Name Version License Release note
lcd V2.0.0 BSD-3-Clause release notes
Fonts V2.0.2 BSD-3-Clause release notes
GUI_INTERFACE V1.10.2 BSD-3-Clause release notes
TRACER_EMB V1.3.0 BSD-3-Clause release notes


Notes

  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Warnings are logged in EWARM TrustZone projects with ‘Verify Download’ option in IAR Embedded Workbench for ARM toolchain V8.42.2 and V8.50.5 but not preventing to run and debug.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 minimum + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27 minimum
  • STM32CubeIDE V1.3.0 minimum

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • Not applicable

Dependencies

  • STM32CubeProgrammer V2.4.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1
  • STM32CubeMX V6.0.0 required for some projects

Main Changes

Fourth release of STM32CubeL5 Firmware Package

  • CMSIS 5.6.0 (updated DSP libraries)
  • CMSIS Device / HAL / LL Drivers updates
  • New Middleware: mcuboot for TFM application
  • Middleware updates: USB Device Library, USBPD Core Library and USBPD Device Library
  • TFM/SBSFU applications updates (crypto scheme with FW encryption, single image and external flash support)
  • Several corrections applied to provide project examples generated from STM32CubeMX

Contents

  • CMSIS updates
    • Upgrade to CMSIS 5.6.0: DSP libraries moved to CMSIS/DSP/Lib (DSP-based user projects impacted)
  • CMSIS Device updates
    • call SystemInit() before RAM initialization in GCC startup/Reset_Handler
    • Align DBGMCU_CR register and bits definitions with RM0438 revision 5
    • Cleanup RCC_CFGR_* definitions to keep only bits definitions
    • Note: default Security Attribute Unit (SAU) configuration in partition_stm32l552xx.h and partition_stm32l562xx.h is available from \Include\Templates
      • default SAU setup is:
        • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
        • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
        • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
        • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripherals mapped memory)
        • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
        • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
  • HAL/LL drivers updates
    • HAL drivers
      • Global removal of ‘register’ storage class qualifier deprecated since C++ 11
      • HAL generic
        • Remove non-applicable HAL_DBGMCU_EnableDBGSleepMode() and HAL_DBGMCU_DisableDBGSleepMode() APIs
      • HAL CRYP
        • AES GSM: Support data encrypt/decrypt with length not multiple of 16 bytes
        • AES GSM: Handling of AAD with size not multiple of 4 bytes in HAL_CRYPEx_AESGCM_GenerateAuthTAG()
      • HAL DAC
        • Fix timeout management for sample & hold channel 2
      • HAL FLASH
        • Add FLASH_NB_PAGE definition in stm32l5xx_hal_flash.h
      • HAL GPIO
        • Fix HAL_GPIO_TogglePin() to manage several pins
      • HAL HASH
        • Add comments to describe case of message made of several parts, not all with length multiple of 4 bytes.
      • HAL ICACHE
        • HAL_ICACHE_Enable() updated to enable the instruction cache whatever any ongoing operation.
        • HAL_ICACHE_Disable() updated to not wait for end of invalidation procedure.
        • Add HAL_ICACHE_WaitForInvalidateComplete() API
      • HAL IWDG
        • HAL_IWDG_DEFAULT_TIMEOUT updated based on LSI_VALUE
      • HAL MMC
        • Add MMC_LOW_VOLTAGE_RANGE and eMMC_LOW_VOLTAGE_RANGE modes
        • Add HAL_MMC_GetCardExtCSD() API
        • Fix in HAL_MMC_ConfigWideBusOperation() to manage power class before bus width speed
      • HAL NOR
        • Apply adequate commands according to the command set field value (command set 1 for Micron JS28F512P33, command set 2 for Micron M29W128G and Cypress S29GL128P)
      • HAL PCD
        • Fix double buffer bulk out transaction
      • HAL RNG
        • Apply in HAL_RNG_Init() the recommended value after NIST SP 800-90B entropy validation
        • New API HAL_RNGEx_RecoverSeedError()
        • Add check on seed error with internal seed recovery procedure in HAL_RNG_GenerateRandomNumber()
      • HAL RCC
        • Fix __HAL_RCC_APB1_FORCE_RESET() and __HAL_RCC_APB1_RELEASE_RESET() macros to manage both APB1RSTR1 and APB1RSTR2 registers
      • HAL SMARTCARD
        • Fix NACK management
      • HAL SPI
        • Fix in 3-wires communication (disable and enable SPI)
        • Fix timeout management inside SPI DMA xfer complete handler
        • Fix to not assert on BaudRatePrescaler in Slave Motorola mode
      • HAL TIM
        • Fix DMA management when DMA requests are used for several channels of the same timer
        • Fix HAL_TIM_IC_Stop_DMA() to stop DMA prior to disabling the channel
      • HAL UART
        • Add new reception services APIs, allowing user to handle reception of unknown/variable lengths and to get notified about received data upon events at reception buffer filling or IDLE event on Rx line:
          • HAL_UARTEx_ReceiveToIdle(), HAL_UARTEx_ReceiveToIdle_IT(), HAL_UARTEx_ReceiveToIdle_DMA() and callback HAL_UARTEx_RxEventCallback()
        • Rework BRR register value computation in HAL_UART_Init() for ROM size gain
    • LL drivers
      • Global removal of ‘register’ storage class qualifier deprecated since C++ 11
      • LL GPIO
        • Fix LL_GPIO_TogglePin() to manage several pins
      • LL PWR
        • Fix LL_PWR_IsEnabledUCPDDeadBattery() returned value
      • LL SYSTEM
        • Add LL_DBGMCU_EnableTraceClock(), LL_DBGMCU_DisableTraceClock() and LL_DBGMCU_IsEnabledTraceClock() APIs
        • Remove non-applicable LL_DBGMCU_EnableDBGSleepMode() and LL_DBGMCU_DisableDBGSleepMode() APIs
      • LL TIM
        • Fix inverted LL_TIM_COUNTERMODE_CENTER_UP and LL_TIM_COUNTERMODE_CENTER_DOWN definitions
      • LL UCPD
        • Change default CFGR1 register values in LL_UCPD_StructInit()
  • BSP board drivers updates for NUCLEO-L552ZE-Q (MB1361-C02), STM32L552E-EV (MB1372-C02) and STM32L562E-DK (MB1373-C01)
    • STM32L552E-EV
      • Fix GRAM access for data length over 65535 bytes (0xFFFF)
    • STM32L562E-DK
      • Fix GRAM access for data length over 65535 bytes (0xFFFF)
      • Communication robustness over UART for power measurement
      • Add SPI1 bus interface for Bluetooth® Low Energy (BLE) module SPBTLE-RFTR
  • Projects updates
    • NUCLEO-L552ZE-Q
      • SBSFU application updates (see SBFSU/readme.txt):
        • Add SBSFU_Loader for local loader application (immutable code in both secure and non-secure areas)
        • SBSFU_Boot: RSA or ECDSA signature authenticity
        • STM32CubeIDE configurations for both Windows and Linux (execute permission to be added on .sh files)
      • FreeRTOS_SecureIOToggle_TrustZone application released with STM32CubeMX .ioc file
      • USB applications aligned to USB Device Library V2.6.0
      • USB-PD_Consumer_1port application aligned to latest STM32CubeMX generation
      • Add UART_ReceptionToIdle_CircularDMA example to demonstrate new HAL UART reception service until IDLE event
      • FLASH_EraseProgram and FLASH_WriteProtection examples update to disable ICACHE prior to internal cacheable memory update
      • RTC_TrustZone example released with STM32CubeMX .ioc file
    • STM32L552E-EV
      • FreeRTOS_SecureIOToggle_TrustZone application released with STM32CubeMX .ioc file
      • USB applications aligned to USB Device Library V2.6.0
      • USB-PD_Consumer_1port application aligned to latest STM32CubeMX generation
      • FLASH_EraseProgram, FLASH_EraseProgram_TrustZone, FLASH_WriteProtection examples update to disable ICACHE prior to internal cacheable memory update
      • RTC_ActiveTamper example released with STM32CubeMX .ioc file
    • STM32L562E-DK
      • Add STM32L562E-DK demonstration firmware for EWARM:
        • MenuLauncher project and Modules AudioPlayer, AI, BLE, Information and Measurements projects
      • TFM application updates (see TFM/readme.txt):
        • External flash support
        • Crypto scheme with FW encryption
        • Lock of secure memory moved out from Root Security Services
        • STM32CubeIDE configurations for both Windows and Linux (execute permission to be added on .sh files)
      • Add Crypto_Selftest application based on mbed-TLS with HW cryptography
      • FreeRTOS_SecureIOToggle_TrustZone application released with STM32CubeMX .ioc file
      • USB-PD_Consumer_1port application aligned to latest STM32CubeMX generation
      • USB applications aligned to USB Device Library V2.6.0
      • FLASH_EraseProgram and FLASH_WriteProtection examples update to disable ICACHE prior to internal cacheable memory update
      • RTC_ActiveTamper example released with STM32CubeMX .ioc file
    • The STM32CubeL5 Firmware package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with preconfigured projects for the main supported toolchains.
    • The exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
Projects
Name Version License Release notes
Projects V1.3.0 see Projects Release note for details release notes


  • Middleware updates
    • FreeRTOS
      • No user application impact (MPU management fix for CM7)
    • mcuboot (NEW)
    • trustedfirmware
    • MbedTLS v2.16.2
      • Templates for AES, GCM, CCM, SHA1, SHA256 and MD5 cryptography by HW
    • USB Device
    • USBPD Core and L5 Device
  • Utilities updates
    • Utilities\lcd with stm32_lcd.h\.c replaces previous Utilities\basic_gui with basic_gui.h\.c
      • User application impacted (UTIL_LCD_xxx() replace GUI_xxx() APIs, see Projects/STM32L552E-EV/BSP/Example/lcd.c)
    • GUI_INTERFACE for UCPD applications and use of UCPD Monitor tool


Components vs V1.2.0

Note: in the tables below, components in bold have changed since previous release

Drivers
Name Version License Release note
Cortex-M CMSIS V5.6.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.3 Apache-2.0 release notes
STM32L5xx HAL V1.0.3 BSD-3-Clause release notes
BSP STM32L552E-EV V1.0.2 BSD-3-Clause release notes
BSP STM32L562E-DK V1.1.0 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.2 BSD-3-Clause release notes
BSP Common V7.0.0 BSD-3-Clause release notes
BSP cs42l51 V2.0.1 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.3.0 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.2 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.3 BSD-3-Clause release notes
BSP stmpe811 V3.0.0 BSD-3-Clause release notes
BSP st7789h2 V2.0.1 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.6.1 SLA0044 release notes
STM32 USBPD Core Library V3.0.3 SLA0044 release notes
STM32 USBPD Device Library L5 V2.0.1 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.2.1 MIT FreeRTOS release notes
ST modified 20200117 BSD-3-Clause ST release notes
mbedTLS ST modified 20200402 V2.16.2 Apache-2.0 release notes
ST modified 20200402 BSD-3-Clause ST release notes
mbed-crypto ST modified 20200612 V1.1.0 Apache-2.0 release notes
ST modified 20200612 BSD-3-Clause ST release notes
mcuboot ST modified 20200623 V1.5.0-cypress Apache-2.0 release notes
ST modified 20200623 BSD-3-Clause ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 BSD-3-Clause release notes
ST modified 20200622 BSD-3-Clause ST release notes
Utilities
Name Version License Release note
lcd V2.0.0 BSD-3-Clause release notes
Fonts V2.0.2 BSD-3-Clause release notes
GUI_INTERFACE V1.10.2 BSD-3-Clause release notes
TRACER_EMB V1.3.0 BSD-3-Clause release notes


Notes

  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Warnings are logged in EWARM TrustZone projects with ‘Verify Download’ option in IAR Embedded Workbench for ARM toolchain V8.42.2 and V8.50.5 but not preventing to run and debug.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 minimum + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27 minimum
  • STM32CubeIDE V1.3.0 minimum

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • Not applicable

Dependencies

  • STM32CubeProgrammer V2.4.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1
  • STM32CubeMX V6.0.0 required for some projects

Main Changes

Third release of STM32CubeL5 Firmware Package

  • CMSIS Device / HAL / LL Drivers updates
  • BSP folders renamed to STM32L552E-EV and STM32L562E-DK (user code impacted for include path update)
  • SBSFU application projects added for NUCLEO-L552ZE-Q
  • New TrustZone projects for STM32L562E-DK

Contents

  • CMSIS Device updates
    • Add root secure services library (RSSLIB) definitions
    • Add bootloader id address
    • Add VTOR relocation capability
    • Note: default Security Attribute Unit (SAU) configuration in partition_stm32l552xx.h and partition_stm32l562xx.h is available from \Include\Templates
      • default SAU setup is:
        • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
        • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
        • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
        • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripherals mapped memory)
        • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
        • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
  • HAL/LL drivers updates
    • HAL drivers
      • HAL FLASH
        • Add non-secure Flash access from secure Flash
      • HAL GPIO
        • Update initialization sequence in HAL_GPIO_Init() to avoid glitch
      • HAL I2C
        • Fix sequential transfer of MAX_NBYTE_SIZE
      • HAL MMC
        • Add support of sanitize and discard functions
          • new APIs HAL_MMC_Sanitize(), HAL_MMC_EraseSequence(), HAL_MMC_ConfigSecRemovalType() and HAL_MMC_GetSupportedSecRemovalType()
      • HAL SMBUS
        • Add SMBUS_FIRST_FRAME_WITH_PEC define to transfer options
      • HAL SPI
        • Fix HAL_SPI_Receive_DMA() and HAL_SPI_TransmitReceive_DMA() to only disable TX DMA interrupt at end of DMA reception in Master RX 2 lines mode
      • HAL TIM
        • Fix when using multiple DMA request to different channels of same timer
          • new APIs HAL_TIM_GetActiveChannel(), HAL_TIM_GetChannelState() and HAL_TIMEx_GetChannelNState()
        • Fix assert instance check in HAL_TIM_EncoderXXX()
      • HAL USART
        • Fix SlaveMode field in USART handle after HAL_USARTEx_DisableSlaveMode() call
        • Add receiver timeout interrupt management with new HAL_USART_ERROR_RTO error code in HAL_USART_IRQHandler()
    • LL drivers
      • LL GPIO
        • Update initialization sequence in LL_GPIO_Init() to avoid glitch
      • LL TIM
        • Add 32-bit Repetition Counter management
      • LL UTILS
        • Fix AHB prescaler value when requesting System Clock over 80Mhz
        • Add LL_SetFlashLatency() API
  • BSP board drivers updates for NUCLEO-L552ZE-Q (MB1361-C02), STM32L552E-EV (MB1372-C02) and STM32L562E-DK (MB1373-C01)
    • Fix C++ compilation
    • STM32L552E-EV
      • Update FMC timings on LCD interface
    • STM32L562E-DK
      • Fix Touchscreen management in polling mode
  • Projects updates (refer to STM32CubeProjectsList.html for Projects list)
    • NUCLEO-L552ZE-Q
      • Add SBSFU_Boot and SBSFU_Appli projects
    • STM32L562E-DK
      • Add new GPIO_ToggleIO_TrustZone, GTZC_TZSC_MPCBB_TrustZone, RCC_ClockConfig_TrustZone and UART_Trace_TrustZone projects
      • TFM_SBSFU project renamed to TFM_SBSFU_Boot

Components

Note: in the tables below, components in bold have changed since previous release

Drivers
Name Version License Release note
Cortex-M CMSIS V5.4.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.2 Apache-2.0 release notes
STM32L5xx HAL V1.0.2 BSD-3-Clause release notes
BSP STM32L552E-EV V1.0.1 BSD-3-Clause release notes
BSP STM32L562E-DK V1.0.1 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.1 BSD-3-Clause release notes
BSP Common V6.0.1 BSD-3-Clause release notes
BSP cs42l51 V2.0.1 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.0 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.2.1 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.1 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.1 BSD-3-Clause release notes
BSP stmpe811 V3.0.0 BSD-3-Clause release notes
BSP st7789h2 V2.0.0 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.5.3 SLA0044 release notes
STM32 USBPD Core Library V2.9.0 SLA0044 release notes
STM32 USBPD Device Library V1.2.0 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.2.1 MIT FreeRTOS release notes
ST modified 20191213 BSD-3-Clause ST release notes
mbedTLS ST modified 20181221 V2.14.1 Apache-2.0 release notes
ST modified 20181221 BSD-3-Clause ST release notes
mbed-crypto ST modified 20191107 V1.0.0 Apache-2.0 release notes
ST modified 20191107 BSD-3-Clause ST release notes
trustedfirmware ST modified TF-Mv1.0-RC2 BSD-3-Clause release notes
V1.0.2 ST modified BSD-3-Clause ST release notes
Utilities
Name Version License Release note
basic_gui V1.0.1 BSD-3-Clause release notes
Fonts V2.0.0 BSD-3-Clause release notes
GUI_INTERFACE V1.9.0 BSD-3-Clause release notes
TRACER_EMB V1.2.0 BSD-3-Clause release notes


Notes

  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Projects partially available for RealView Microcontroller Development Kit (MDK-ARM) and STM32CubeIDE
  • Warnings are logged in EWARM TrustZone projects with ‘Verify Download’ option in IAR Embedded Workbench for ARM toolchain V8.42.2 but not preventing to run and debug.
  • STM32L562E-DK demonstration firmware not available

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 + ST-Link
    • EWARM patch EWARMv8_STM32L5xx_Support_V11.2 for STM32L5xx available from \Utilities\PC_Software
    • Please note that administrator rights are required on Windows 10 at patch installation
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27
    • Pack Keil.STM32L5xx_DFP.1.0.9.pack available from \Utilities\PC_Software
      • ST-Link usage requires
        • ST-Link Keil DLL updates (ST-LINKIII-Keil_SWO_v3_0_5_RC2.zip)
        • Keil TOOLS.INI update as indicated in the ST-Link Keil DLL update zip package
  • STM32CubeIDE V1.3.0

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • Not applicable

Dependencies

  • STM32CubeProgrammer V2.3.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1
  • STM32CubeMX V5.6.0 required for 14 projects with LSI prescaler

Main Changes

Second release of STM32CubeL5 Firmware Package

  • TFM application (STM32L562E-DK)
    • fix Hide Protection (HDP) closure on STM32L5 devices with bootloader ID 0x90
    • add MDK-ARM projects
  • More MDK-ARM and STM32CubeIDE projects

Contents

  • CMSIS Device STM32L5xx for STM32L552xx/STM32L562xx
    • Note: default Security Attribute Unit (SAU) configuration in partition_stm32l552xx.h and partition_stm32l562xx.h is available from \Include\Templates
      • default SAU setup is:
        • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
        • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
        • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
        • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripherals mapped memory)
        • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
        • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
  • HAL and LL drivers
    • HAL drivers
      • ADC, COMP, CORTEX, CRC, CRYP, DAC, DFSDM, DMA, EXTI, FDCAN, FLASH, GPIO, GTZC, HASH, I2C, ICACHE, IRDA, IWDG, LPTIM, MMC, NAND, NOR, OPAMP, OSPI, OTFDEC, PCD, PKA, PWR, RCC, RNG, RTC, SAI, SD, SMARTCARD, SMBUS, SPI, SRAM, TIM, TSC, UART, USART, WWDG
      • Alternate TIM and RTC timebase templates (to be copied in user application)
    • LL drivers
      • ADC, BUS, COMP, CORTEX, CRC, CRS, CRYP, DAC, DMA, DMAMUX, EXTI, GPIO, I2C, IWDG, LPTIM, LPUART, OPAMP, PKA, PWR, RCC, RNG, RTC, SDMMC, SPI, SYSTEM, TIM, UCPD, USART, UTILS, WWDG
  • BSP board drivers for NUCLEO-L552ZE-Q (MB1361-C02), STM32L552E-EV (MB1372-C02) and STM32L562E-DK (MB1373-C01)

  • Projects examples for TrustZone-disabled and TrustZone-enabled system configurations (refer to STM32CubeProjectsList.html for Projects list)
    • Naming rule applied on Project Templates
      • Templates/TrustZoneDisabled when TrustZone security is disabled in the system (Flash option bit TZEN=0)
      • Templates/TrustZoneEnabled when TrustZone security is enabled in the system (Flash option bit TZEN=1)
    • Naming rule applied on Project Examples
      • "_TrustZone" suffix used for TrustZone-enabled projects (Flash option bit TZEN=1) except Trusted Firmware-M (TFM) applications, others are provided for default TrustZone-disabled system (Flash option bit TZEN=0) but can be easily ported to TrustZone-enabled system.

Components

Note: in the tables below, components in bold have changed since previous release

Drivers
Name Version License Release note
Cortex-M CMSIS V5.4.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.0 Apache-2.0 release notes
STM32L5xx HAL V1.0.0 BSD-3-Clause release notes
BSP STM32L552E_EVAL V1.0.0 BSD-3-Clause release notes
BSP STM32L562E-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.0 BSD-3-Clause release notes
BSP Common V6.0.1 BSD-3-Clause release notes
BSP cs42l51 V2.0.1 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.0 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.2.1 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.1 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.1 BSD-3-Clause release notes
BSP stmpe811 V3.0.0 BSD-3-Clause release notes
BSP st7789h2 V2.0.0 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.5.3 SLA0044 release notes
STM32 USBPD Core Library V2.9.0 SLA0044 release notes
STM32 USBPD Device Library V1.2.0 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.2.1 MIT FreeRTOS release notes
ST modified 20191213 BSD-3-Clause ST release notes
mbedTLS ST modified 20181221 V2.14.1 Apache-2.0 release notes
ST modified 20181221 BSD-3-Clause ST release notes
mbed-crypto ST modified 20191107 V1.0.0 Apache-2.0 release notes
ST modified 20191107 BSD-3-Clause ST release notes
trustedfirmware ST modified 20191202 TF-Mv1.0-RC2 BSD-3-Clause Not available
ST modified 20191202 BSD-3-Clause ST release notes
Utilities
Name Version License Release note
basic_gui V1.0.1 BSD-3-Clause release notes
Fonts V2.0.0 BSD-3-Clause release notes
GUI_INTERFACE V1.9.0 BSD-3-Clause release notes
TRACER_EMB V1.2.0 BSD-3-Clause release notes


Notes

  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Projects partially available for RealView Microcontroller Development Kit (MDK-ARM) and STM32CubeIDE
  • STM32L562E-DK demonstration firmware not available

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 + ST-Link
    • EWARM patch EWARMv8_STM32L5xx_Support_V11.2 for STM32L5xx available from \Utilities\PC_Software
    • Please note that administrator rights are required on Windows 10 at patch installation
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27
    • Pack Keil.STM32L5xx_DFP.1.0.9.pack available from \Utilities\PC_Software
      • ST-Link usage requires
        • ST-Link Keil DLL updates (ST-LINKIII-Keil_SWO_v3_0_5_RC2.zip)
        • Keil TOOLS.INI update as indicated in the ST-Link Keil DLL update zip package
  • STM32CubeIDE V1.2.0

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • Not applicable

Dependencies

  • STM32CubeProgrammer V2.3.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1
  • STM32CubeMX V5.5.0
    • Starter STM32CubeMX version V5.4.0 used for first project examples creation

Main Changes

First release of STM32CubeL5 Firmware Package

Contents

  • CMSIS Device STM32L5xx for STM32L552xx/STM32L562xx
    • Note: default Security Attribute Unit (SAU) configuration in partition_stm32l552xx.h and partition_stm32l562xx.h is available from \Include\Templates
      • default SAU setup is:
        • SAU region 0: 0x0C03E000-0x0C03FFFF (Secure, Non-Secure Callable)
        • SAU region 1: 0x08040000-0x0807FFFF (Non-Secure FLASH Bank2 (256 Kbytes))
        • SAU region 2: 0x20018000-0x2003FFFF (Non-Secure RAM (2nd half SRAM1 + SRAM2 (160 Kbytes)))
        • SAU region 3: 0x40000000-0x4FFFFFFF (Non-Secure Peripherals mapped memory)
        • SAU region 4: 0x60000000-0x9FFFFFFF (Non-Secure external memories)
        • SAU region 5: 0x0BF90000-0x0BFA8FFF (Non-Secure System memory)
  • HAL and LL drivers
    • HAL drivers
      • ADC, COMP, CORTEX, CRC, CRYP, DAC, DFSDM, DMA, EXTI, FDCAN, FLASH, GPIO, GTZC, HASH, I2C, ICACHE, IRDA, IWDG, LPTIM, MMC, NAND, NOR, OPAMP, OSPI, OTFDEC, PCD, PKA, PWR, RCC, RNG, RTC, SAI, SD, SMARTCARD, SMBUS, SPI, SRAM, TIM, TSC, UART, USART, WWDG
      • Alternate TIM and RTC timebase templates (to be copied in user application)
    • LL drivers
      • ADC, BUS, COMP, CORTEX, CRC, CRS, CRYP, DAC, DMA, DMAMUX, EXTI, GPIO, I2C, IWDG, LPTIM, LPUART, OPAMP, PKA, PWR, RCC, RNG, RTC, SDMMC, SPI, SYSTEM, TIM, UCPD, USART, UTILS, WWDG
  • BSP board drivers for NUCLEO-L552ZE-Q (MB1361-C02), STM32L552E-EV (MB1372-C02) and STM32L562E-DK (MB1373-C01)

  • Projects examples for TrustZone-disabled and TrustZone-enabled system configurations (refer to STM32CubeProjectsList.html for Projects list)
    • Naming rule applied on Project Templates
      • Templates/TrustZoneDisabled when TrustZone security is disabled in the system (Flash option bit TZEN=0)
      • Templates/TrustZoneEnabled when TrustZone security is enabled in the system (Flash option bit TZEN=1)
    • Naming rule applied on Project Examples
      • "_TrustZone" suffix used for TrustZone-enabled projects (Flash option bit TZEN=1) except Trusted Firmware-M (TFM) applications, others are provided for default TrustZone-disabled system (Flash option bit TZEN=0) but can be easily ported to TrustZone-enabled system.

Components

Drivers
Name Version License Release note
Cortex-M CMSIS V5.4.0 Apache-2.0 release notes
STM32L5xx CMSIS V1.0.0 Apache-2.0 release notes
STM32L5xx HAL V1.0.0 BSD-3-Clause release notes
BSP STM32L552E_EVAL V1.0.0 BSD-3-Clause release notes
BSP STM32L562E-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32L5xx_Nucleo V1.0.0 BSD-3-Clause release notes
BSP Common V6.0.1 BSD-3-Clause release notes
BSP cs42l51 V2.0.1 BSD-3-Clause release notes
BSP ft6x06 V2.0.0 BSD-3-Clause release notes
BSP hx8347i V2.0.0 BSD-3-Clause release notes
BSP iss66wvh8m8 V2.0.0 BSD-3-Clause release notes
BSP lsm6dso V1.2.1 BSD-3-Clause release notes
BSP mfxstm32l152 V3.0.1 BSD-3-Clause release notes
BSP mx25lm51245g V2.0.1 BSD-3-Clause release notes
BSP stmpe811 V3.0.0 BSD-3-Clause release notes
BSP st7789h2 V2.0.0 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.5.3 SLA0044 release notes
STM32 USBPD Core Library V2.9.0 SLA0044 release notes
STM32 USBPD Device Library V1.2.0 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c ST modified 20191011 R0.12c BSD-3-Clause FatFS release notes
ST modified 20191011 BSD-3-Clause ST release notes
FreeRTOS V10.2.1 MIT FreeRTOS release notes
ST modified 20191213 BSD-3-Clause ST release notes
mbedTLS ST modified 20181221 V2.14.1 Apache-2.0 release notes
ST modified 20181221 BSD-3-Clause ST release notes
mbed-crypto ST modified 20191107 V1.0.0 Apache-2.0 release notes
ST modified 20191107 BSD-3-Clause ST release notes
trustedfirmware ST modified 20191202 TF-Mv1.0-RC2 BSD-3-Clause Not available
ST modified 20191202 BSD-3-Clause ST release notes
Utilities
Name Version License Release note
basic_gui V1.0.1 BSD-3-Clause release notes
Fonts V2.0.0 BSD-3-Clause release notes
GUI_INTERFACE V1.9.0 BSD-3-Clause release notes
TRACER_EMB V1.2.0 BSD-3-Clause release notes


Notes

  • Caution on User Option bytes requirements for TZEN=1 prior to execution (see TrustZone project examples readme.txt file)

Known Limitations

  • Projects partially available for RealView Microcontroller Development Kit (MDK-ARM) and STM32CubeIDE
  • STM32L562E-DK demonstration firmware not available

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 + ST-Link
    • EWARM patch EWARMv8_STM32L5xx_Support_V11.2 for STM32L5xx available from \Utilities\PC_Software
    • Please note that administrator rights are required on Windows 10 at patch installation
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27
    • Pack Keil.STM32L5xx_DFP.1.0.9.pack available from \Utilities\PC_Software
      • ST-Link usage requires
        • ST-Link Keil DLL updates (ST-LINKIII-Keil_SWO_v3_0_5_RC2.zip)
        • Keil TOOLS.INI update as indicated in the ST-Link Keil DLL update zip package
  • STM32CubeIDE V1.2.0

Supported Devices and HW boards

  • STM32L552xx/STM32L562xx devices
  • STM32L552E-EV Evaluation board (MB1372 C-02)
  • STM32L562E-DK Discovery kit (MB1373 C-01)
  • NUCLEO-L552ZE-Q Nucleo kit (MB1361 C-02)

Backward Compatibility

  • Not applicable

Dependencies

  • STM32CubeProgrammer V2.3.0
    • This tool shall be used to enable the security on the devices (TZEN=1)
    • For TrustZone projects, to match the CMSIS Device Template partition_stm32l552xx.h/partition_stm32l562xx.h for SAU declaration and secure project examples Flash configuration, please set the User Option bytes as follows before download and execution:
      • TZEN=1
      • DBANK=1
      • SECWM1_STRT=0x0 SECWM1_PEND=0x7F meaning all 128 pages of Internal Flash Bank1 set as secure
      • SECWM2_STRT=0x1 SECWM1_PEND=0x0 meaning no page of Flash Bank2 set as secure, hence Bank2 non-secure
    • For other projects with no TrustZone, please set the User Option Bytes as follows before download and execution:
      • TZEN=0
      • DBANK=1
  • STM32CubeMX V5.5.0
    • Starter STM32CubeMX version V5.4.0 used for first project examples creation