Release Notes for

STM32CubeL5 Firmware Package

Copyright © 2019 STMicroelectronics

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

  • General updates to fix known defects and implementation enhancements.
  • All source files: update disclaimer to add reference to the new license agreement.
  • Add .mxproject files on all firmware projects available in STM32CubeMX format (with .ioc) to fix project path issue during copy.
  • Upgrade USB Device Lib to use V2.11.1.
  • Upgrade STM32 USB Power Delivery Core Library to use v4.1.0.
  • Upgrade STM32 USB Power Delivery Device Library to use l5_v5.0.0.
  • Project examples updated to STM32CubeMX 6.7.0

  • CMSIS Device updates
    • Add new atomic register access macros in stm32l5xx.h file.
    • Update to fix compilation error “-Werror=undef” with ARMCC version.
    • Add missing parameter after @param in order to fix warning in generated documentation
  • HAL/LL Drivers updates
    • HAL Generic
      • HAL code quality enhancement for MISRA-C2012 rules 2.2_C, 13.2 and 13.3.
      • HAL code quality enhancement for MISRA-C2012 Rule-8.13 by adding const qualifiers.
    • HAL RCC
      • Update IS_RCC_PERIPHCLOCK() macro definition depending on targeted derivative.
      • Update IS_RCC_PERIPHCLOCK() macro definition depending on targeted derivative.
      • Add new API HAL_RCC_GetResetSource() to get all reset sources and clear flags for next reset.
      • Fix on HCLK prescaler update in HAL_RCC_ClockConfig() API to avoid issue with CPU clock being out of range versus the Flash latency.
      • Wait PLL1RDY to be off before clearing PLL1 source.
    • HAL GPIO
      • Update HAL_GPIO_Init() API to avoid the configuration of PUPDR register when Analog mode is selected.
      • Optimize assertion control for GPIO Pull mode in HAL_GPIO_Init.
      • Reorder EXTI configuration sequence in order to avoid unexpected level detection.
    • HAL EXTI
      • Update HAL_EXTI_GetConfigLine() API to set default configuration value of Trigger and GPIOSel before checking each corresponding registers.
      • Fix computation of pExtiConfig->GPIOSel in HAL_EXTI_GetConfigLine() API.
    • HAL CRC
      • Add filter in HAL_CRCEx_Polynomial_Set() API to exclude even polynomials.
    • HAL GTZC
      • Fix lock configuration in HAL_GTZC_MPCBB_ConfigMem() API.
    • HAL CORTEX
      • CORTEX MPU Instruction Access Shareable values alignment with defined one in STM32 Cortex-M33 MCUs programming manual.
      • Fix weakness on MPU region deactivation.
    • HAL FLASH
      • Update __HAL_FLASH_GET_FLAG() macro to return a ‘1’ when more than one flag is set.
    • HAL/LL ADC
      • Update Temperature sensor data acquired to 130’C instead of 110’C.
      • In case of temperature sensor is used, wait for delay mentioned in device datasheet “tSTART(TS_BUF)” between ADC enable and ADC conversion start.
      • Remove useless binary mask (optimization).
      • Update LL_ADC driver to prevent unused argument compilation warning.
    • HAL/LL RTC_BKP
      • Fix assertion in HAL_RTCEx_SetTamper_IT.
      • Check if the RTC calendar has been previously initialized before entering Initialization mode.
      • To avoid any possible clearing of other ISR flags during sequence read-modify-write, a direct assignment was applied with a mask of reserved bits to avoid setting them.
      • Fix wrong IS_LL_RTC_MONTH leading to assert check failure.
      • Fix bad reference to RTC handle in LL_RTC_TIME_Init() & LL_RTC_DATE_Init() APIs.
    • HAL/LL TIM
      • Update HAL_TIMEx_ConfigBreakInput to use CMSIS TIM1_OR2_BKDF1BK0E_Pos definition instead of its hard coded value.
      • Manage configuration of the Capture/compare DMA request source.
      • Add related new exported constants (TIM_CCDMAREQUEST_CC, TIM_CCDMAREQUEST_UPDATE).
      • Create a new macro __HAL_TIM_SELECT_CCDMAREQUEST() allowing to program the TIMx_CR2.CCDS bitfield.
      • __LL_TIM_CALC_PSC() macro update to round up the evaluate value when the fractional part of the division is greater than 0.5.
      • Remove useless check on IS_TIM_ADVANCED_INSTANCE() within LL_TIM_BDTR_Init() to fix Break Filter configuration problem with specific TIM instances.
    • HAL LPTIM
      • Add check on PRIMASK register to prevent from enabling unwanted global interrupts within LPTIM_Disable() and LL_LPTIM_Disable().
    • HAL UART
      • Handle UART concurrent register access in case of race condition between Tx and Rx transfers.
      • Fix erroneous UART’s handle state in case of error returned after DMA reception start within UART_Start_Receive_DMA().
      • Correct UART ReceptionType management in case ReceptionToIdle API are called from RxEvent callback.
      • Handle UART concurrent register access in case of race condition between Tx and Rx transfers.
      • Improve header description of UART_WaitOnFlagUntilTimeout() function.
      • Add a check on the UART parity before enabling the parity error interruption.
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in UART_SetConfig().
      • Removal of HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs.
      • Disable the Receiver Timeout Interrupt when data reception is completed.
      • Rework of UART_WaitOnFlagUntilTimeout() API to avoid being stuck forever when UART overrun error occurs and to enhance behavior.
    • HAL/LL USART
      • Improve header description of USART_WaitOnFlagUntilTimeout() function.
      • Add a check on the USART parity before enabling the parity error interrupt.
      • Add const qualifier for read only pointers.
      • Handle UART concurrent register access in case of race condition between Tx and Rx transfers.
      • Fix compilation warnings generated with ARMV6 compiler.
    • HAL IRDA
      • Improve header description of IRDA_WaitOnFlagUntilTimeout() function.
      • Add a check on the IRDA parity before enabling the parity error interrupt.
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in IRDA_SetConfig() API.
    • HAL SMARTCARD
      • Improve header description of SMARTCARD_WaitOnFlagUntilTimeout() API.
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in SMARTCARD_SetConfig().
    • LL LPUART
      • Remove TXFECF reference from LL LPUART driver.
    • HAL NOR
      • Align HAL_NOR_Init() API when write operation is disabled to avoid HardFault.
      • FMC_WRITE_OPERATION_DISABLE for NOR cause Hardfault for Read operations.
    • HAL PKA
      • Update PKA_MontgomeryParam_Set() API to skip the zero bytes in the evaluate Size.
    • HAL CRYP
      • Correct CRYP_AESCCM_Process_IT() API to manage header length expressed in bytes or in words when header length is less than 16 bytes.
    • HAL FDCAN
      • Better performance by removing multiple volatile reads or writes in interrupt handler.
    • HAL/LL OPAMP
      • OPAMP_POWERMODE_NORMAL is changed by OPAMP_POWERMODE_NORMALPOWER in hal.c,.h files and LL_OPAMP_POWERMODE_NORMAL is changed by LL_OPAMP_POWERMODE_NORMALPOWER in ll.c,.h files.
      • Register address redefinition must be volatile (_IO).
      • Remove TXFECF reference from LL LPUART driver.
    • HAL/LL SPI
      • Update LL_SPI_TransmitData8() API to avoid casting the result to 8 bits.
    • HAL PKA
      • Update PKA_MontgomeryParam_Set() API to skip the zero bytes in the evaluate Size.
    • HAL I2C
      • Updated I2C_IsAcknowledgeFailed() API to avoid I2C in busy state if NACK received after transmitting register address.
      • Fix I2C HAL CHM warnings.
      • Update to handle errors in polling mode.
        • Rename I2C_IsAcknowledgeFailed() to I2C_IsErrorOccurred() and correctly manage when error occurs.
      • Update to fix issue detected due to low system frequency execution (HSI).
      • Declare an internal macro link to DMA macro to check remaining data: I2C_GET_DMA_REMAIN_DATA.
      • Timeout issue using HAL MEM interface through FreeRTOS.
      • I2C_IsErrorOccurred does not return error if timeout is detected.
      • The ADDRF flag is cleared too early when the restart is received but the direction has changed.
    • HAL SMBUS
      • Add the support of wake up capability.
      • Add new APIs:
        • HAL_SMBUSEx_EnableWakeUp()
        • HAL_SMBUSEx_DisableWakeUp()
      • Update to fix issue of mismatched data received by master in case of data size to be transmitted by the slave is greater than the data size to be received by the master.
        • Add flush on TX register.
    • HAL SAI
      • Avoid using magic numbers.
    • HAL IWDG
      • Add LSI startup time in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT).
    • HAL ICACHE
      • Fix clear of BSYENDF before Instruction Cache invalidate command.
      • Add HAL_ICACHE_IsEnabled() API.
    • HAL USB_FS
      • PCD: add supporting multi packets transfer on Interrupt endpoint.
      • Set DCD timeout to minimum of 300ms before starting BCD primary detection process.
      • HAL: PCD: software correction added to avoid unexpected STALL condition during EP0 multi packet OUT transfer.
      • hal_pcd.h: add a mask for USB RX bytes count.
    • LL UCPD
      • Correction of register accessed by LL_UCPD_ReadRxPaySize macro.
    • Documentation
      • @ref” Doxygen tags removed from PDF UserManual.
      • Update the way to declare licenses.
  • Middlewares updates
    • Upgrade to use new version of USB Device V2.11.1
      • USB VIDEO Class:
        • Correction of the support of VS_PROBE_CONTROL & VS_COMMIT_CONTROL requets
      • USB AUDIO Class:
        • Correction of the check on AUDIO_TOTAL_BUF_SIZE to avoid vulnerabilities
      • USB HID Class:
        • Modification of some constants names to avoid duplication versus USB host library
      • USB CustomHID Class:
        • Add support of Get Report control request Allow disabling EP OUT prepare receive using a dedicated macros that can be defined in usbd_conf.h application file
        • Add support of Report Descriptor with length greater than 255 bytes
      • USB All Classes:
        • Update all classes to support composite multi-instance using the class id parameter
    • Upgraded STM32 USB Power Delivery Device Library to use l5_v5.0.0.
      • Remove useless code sections (compilation switch combinations)
      • Ticket 106059 - [Licensing] Update the way to declare licenses in Cube and X-CUBE components
      • Update of FRS pins definition in usbpd_devices_conf_template.h file
      • Optimize two tone merge test on LeCroy (TD.PD.PHY.ALL.05)
      • Update FRS event reception processing (protected under _FRS flag)
      • Fix false FRS detection when detached
      • Fix false FRS detection when no contract negociated
      • Ignore any FRS signal during PRS sequence
      • Implementation of OCP recovery procedure
      • CodeSpell & MCUAstyle corrections
    • Upgraded STM32 USB Power Delivery Core Library to use v4.1.0.
      • [OS] Fix THREADX thread ID struct handling
      • [OS] Fix define for CMSIS OS v2
      • [PE] Update FRS AMS to manage power requirement
      • [PE] Clear RX event before FRS ACCEPT
      • [OS] update to kill PE if does not stop executing itself
      • [OS] replace OS Free RTOS API with cmsis OS API
      • [SNK] After a soft reset we shall wait for source capa
      • [DEF] Add defines for STATUS message
      • [PE] SOP’ message needs to be sent only if sender is VCONN owner
      • [PE] Add the support of the USB4 (message USB_ENTER and DATA_RESET)
      • [PE] Revision message must be answered
      • [PE] Status message has 6 bytes whereas 7 are mandatory
      • [PRL] Update to handle retry and crc timer for more than 2 ports
      • [PRL] MessageId is not well incremented after retry
      • [PRL] In PD3 GoodCRC is always sent with PD revision 1
      • [CORE] Update the stack to manage 3 ports in parallel
      • [CORE] Solve CubeIDE compilation warning in OS_CREATE_TASK macro use.
      • {PE] SNK AMS HardReset : the USB stack shutdown must be done after VBUS has reached VSAFE_0V
      • [PRL] PHY state BUSY is no taken into account
      • [UCSI] Add new ID for UCSI trace
      • [THREADX] remove pool allocation inside the stack and Add a pool pointer on the InitOS function
  • BSP updates
    • All source files: update disclaimer to add reference to the new license agreement.
  • Utilities updates
    • Upgraded STM32 TRACER_EMB to use v1.7.1.
    • Upgraded GUI_INTERFACE to use V2.2.2.
  • Projects updates
    • Add .mxproject files on all firmware projects available in STM32CubeMX format (with .ioc) to fix project path issue during copy.
    • Demonstrations
      • Typo is corrected STM32L562E-DK/Demonstrations/Modules/Information/readme.txt
      • Fix compilation warnings with STM32L552E-EV Demonstration project
    • FatFs Applications
      • Remove the local HAL_Delay() implementation.
    • OPAMP Examples
      • Add missing DeInit steps during transition to low power modes.
    • LL Examples/SBSFU applications
      • Update all DWT based projects to avoid execution issue in RDP level2.
    • All Projects updated to STM32CubeMX V6.7.0


  • 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).




Components vs V1.4.0

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


Contents

Projects

Projects
Name Version Release notes
Projects V1.5.0 release notes
Drivers
Name Version Release note
Cortex-M CMSIS V5.6.0 release notes
STM32L5xx CMSIS V1.0.5 release notes
STM32L5xx HAL V1.0.5 release notes
BSP STM32L552E-EV V1.0.4 release notes
BSP STM32L562E-DK V1.1.2 release notes
BSP STM32L5xx_Nucleo V1.0.4 release notes
BSP Common V7.0.0 release notes
BSP cs42l51 V2.0.2 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.2 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.3.0 release notes
BSP mfxstm32l152 V3.0.3 release notes
BSP mx25lm51245g V2.0.5 release notes
BSP stmpe811 V3.0.1 release notes
BSP st7789h2 V2.0.2 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.11.1 release notes
STM32 USBPD Core Library V4.1.0 release notes
STM32 USBPD Device Library L5 V5.0.0 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.3.1 FreeRTOS release notes
ST modified 20200831 ST release notes
mbedTLS ST modified 20200825 V2.16.2 release notes
ST modified 20200825 ST release notes
mbed-crypto ST modified 20200612 V1.1.0 release notes
ST modified 20200612 ST release notes
mcuboot ST modified 20200825 V1.5.0.1-cypress release notes
ST modified 20200825 ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 release notes
ST modified 20200622 ST release notes
Utilities
Name Version Release note
lcd V2.0.1 release notes
Fonts V2.0.2 release notes
GUI_INTERFACE V2.2.2 release notes
TRACER_EMB V1.7.1 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.50.9 minimum + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.32 minimum (ARM Compiler 6 (“AC5-like Warnings” selected))
  • STM32CubeIDE toolchain V1.10.0 (10.3-2021.10)

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.7.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

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 Release notes
Projects V1.4.0 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 Release note
Cortex-M CMSIS V5.6.0 release notes
STM32L5xx CMSIS V1.0.4 release notes
STM32L5xx HAL V1.0.4 release notes
BSP STM32L552E-EV V1.0.3 release notes
BSP STM32L562E-DK V1.1.1 release notes
BSP STM32L5xx_Nucleo V1.0.3 release notes
BSP Common V7.0.0 release notes
BSP cs42l51 V2.0.2 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.2 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.3.0 release notes
BSP mfxstm32l152 V3.0.3 release notes
BSP mx25lm51245g V2.0.5 release notes
BSP stmpe811 V3.0.1 release notes
BSP st7789h2 V2.0.2 release notes

Middlewares

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

Utilities

Name Version Release note
lcd V2.0.1 release notes
Fonts V2.0.2 release notes
GUI_INTERFACE V1.13.0 release notes
TRACER_EMB V1.6.0 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 Release notes
Projects V1.3.0 release notes


Components vs V1.3.0

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

Drivers
Name Version Release note
Cortex-M CMSIS V5.6.0 release notes
STM32L5xx CMSIS V1.0.3 release notes
STM32L5xx HAL V1.0.3 release notes
BSP STM32L552E-EV V1.0.2 release notes
BSP STM32L562E-DK V1.1.0 release notes
BSP STM32L5xx_Nucleo V1.0.2 release notes
BSP Common V7.0.0 release notes
BSP cs42l51 V2.0.1 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.1 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.3.0 release notes
BSP mfxstm32l152 V3.0.2 release notes
BSP mx25lm51245g V2.0.3 release notes
BSP stmpe811 V3.0.0 release notes
BSP st7789h2 V2.0.1 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.6.1 release notes
STM32 USBPD Core Library V3.0.3 release notes
STM32 USBPD Device Library L5 V2.0.1 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.2.1 FreeRTOS release notes
ST modified 20200117 ST release notes
mbedTLS ST modified 20200402 V2.16.2 release notes
ST modified 20200402 ST release notes
mbed-crypto ST modified 20200612 V1.1.0 release notes
ST modified 20200612 ST release notes
mcuboot ST modified 20200825 V1.5.0.1-cypress release notes
ST modified 20200825 ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 release notes
ST modified 20200622 ST release notes
Utilities
Name Version Release note
lcd V2.0.0 release notes
Fonts V2.0.2 release notes
GUI_INTERFACE V1.10.2 release notes
TRACER_EMB V1.3.0 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 Release notes
Projects V1.3.0 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 Release note
Cortex-M CMSIS V5.6.0 release notes
STM32L5xx CMSIS V1.0.3 release notes
STM32L5xx HAL V1.0.3 release notes
BSP STM32L552E-EV V1.0.2 release notes
BSP STM32L562E-DK V1.1.0 release notes
BSP STM32L5xx_Nucleo V1.0.2 release notes
BSP Common V7.0.0 release notes
BSP cs42l51 V2.0.1 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.1 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.3.0 release notes
BSP mfxstm32l152 V3.0.2 release notes
BSP mx25lm51245g V2.0.3 release notes
BSP stmpe811 V3.0.0 release notes
BSP st7789h2 V2.0.1 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.6.1 release notes
STM32 USBPD Core Library V3.0.3 release notes
STM32 USBPD Device Library L5 V2.0.1 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.2.1 FreeRTOS release notes
ST modified 20200117 ST release notes
mbedTLS ST modified 20200402 V2.16.2 release notes
ST modified 20200402 ST release notes
mbed-crypto ST modified 20200612 V1.1.0 release notes
ST modified 20200612 ST release notes
mcuboot ST modified 20200623 V1.5.0-cypress release notes
ST modified 20200623 ST release notes
trustedfirmware ST modified 20200622 TF-Mv1.0-RC2 release notes
ST modified 20200622 ST release notes
Utilities
Name Version Release note
lcd V2.0.0 release notes
Fonts V2.0.2 release notes
GUI_INTERFACE V1.10.2 release notes
TRACER_EMB V1.3.0 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 Release note
Cortex-M CMSIS V5.4.0 release notes
STM32L5xx CMSIS V1.0.2 release notes
STM32L5xx HAL V1.0.2 release notes
BSP STM32L552E-EV V1.0.1 release notes
BSP STM32L562E-DK V1.0.1 release notes
BSP STM32L5xx_Nucleo V1.0.1 release notes
BSP Common V6.0.1 release notes
BSP cs42l51 V2.0.1 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.0 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.2.1 release notes
BSP mfxstm32l152 V3.0.1 release notes
BSP mx25lm51245g V2.0.1 release notes
BSP stmpe811 V3.0.0 release notes
BSP st7789h2 V2.0.0 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.5.3 release notes
STM32 USBPD Core Library V2.9.0 release notes
STM32 USBPD Device Library V1.2.0 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.2.1 FreeRTOS release notes
ST modified 20191213 ST release notes
mbedTLS ST modified 20181221 V2.14.1 release notes
ST modified 20181221 ST release notes
mbed-crypto ST modified 20191107 V1.0.0 release notes
ST modified 20191107 ST release notes
trustedfirmware ST modified TF-Mv1.0-RC2 release notes
V1.0.2 ST modified ST release notes
Utilities
Name Version Release note
basic_gui V1.0.1 release notes
Fonts V2.0.0 release notes
GUI_INTERFACE V1.9.0 release notes
TRACER_EMB V1.2.0 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 Release note
Cortex-M CMSIS V5.4.0 release notes
STM32L5xx CMSIS V1.0.0 release notes
STM32L5xx HAL V1.0.0 release notes
BSP STM32L552E_EVAL V1.0.0 release notes
BSP STM32L562E-Discovery V1.0.0 release notes
BSP STM32L5xx_Nucleo V1.0.0 release notes
BSP Common V6.0.1 release notes
BSP cs42l51 V2.0.1 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.0 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.2.1 release notes
BSP mfxstm32l152 V3.0.1 release notes
BSP mx25lm51245g V2.0.1 release notes
BSP stmpe811 V3.0.0 release notes
BSP st7789h2 V2.0.0 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.5.3 release notes
STM32 USBPD Core Library V2.9.0 release notes
STM32 USBPD Device Library V1.2.0 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.2.1 FreeRTOS release notes
ST modified 20191213 ST release notes
mbedTLS ST modified 20181221 V2.14.1 release notes
ST modified 20181221 ST release notes
mbed-crypto ST modified 20191107 V1.0.0 release notes
ST modified 20191107 ST release notes
trustedfirmware ST modified 20191202 TF-Mv1.0-RC2 Not available
ST modified 20191202 ST release notes
Utilities
Name Version Release note
basic_gui V1.0.1 release notes
Fonts V2.0.0 release notes
GUI_INTERFACE V1.9.0 release notes
TRACER_EMB V1.2.0 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 Release note
Cortex-M CMSIS V5.4.0 release notes
STM32L5xx CMSIS V1.0.0 release notes
STM32L5xx HAL V1.0.0 release notes
BSP STM32L552E_EVAL V1.0.0 release notes
BSP STM32L562E-Discovery V1.0.0 release notes
BSP STM32L5xx_Nucleo V1.0.0 release notes
BSP Common V6.0.1 release notes
BSP cs42l51 V2.0.1 release notes
BSP ft6x06 V2.0.0 release notes
BSP hx8347i V2.0.0 release notes
BSP iss66wvh8m8 V2.0.0 release notes
BSP lsm6dso V1.2.1 release notes
BSP mfxstm32l152 V3.0.1 release notes
BSP mx25lm51245g V2.0.1 release notes
BSP stmpe811 V3.0.0 release notes
BSP st7789h2 V2.0.0 release notes
Middlewares
Name Version Release note
STM32 USB Device Library V2.5.3 release notes
STM32 USBPD Core Library V2.9.0 release notes
STM32 USBPD Device Library V1.2.0 release notes
STM32 TouchSensing Library V2.2.0 release notes
FatFS R0.12c ST modified 20191011 R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.2.1 FreeRTOS release notes
ST modified 20191213 ST release notes
mbedTLS ST modified 20181221 V2.14.1 release notes
ST modified 20181221 ST release notes
mbed-crypto ST modified 20191107 V1.0.0 release notes
ST modified 20191107 ST release notes
trustedfirmware ST modified 20191202 TF-Mv1.0-RC2 Not available
ST modified 20191202 ST release notes
Utilities
Name Version Release note
basic_gui V1.0.1 release notes
Fonts V2.0.0 release notes
GUI_INTERFACE V1.9.0 release notes
TRACER_EMB V1.2.0 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