Release Notes for

STM32CubeL4 Firmware Package

Copyright © 2017 STMicroelectronics

Purpose

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 drivers provided within this package support the lines

For a quick start on the STM32CubeL4 firmware package, refer to UM1860 and download the firmware updates and all the latest documentation from www.st.com/stm32cubefw

Here is the list of references to user documents:

Update History

Main Changes

Maintenance release of STM32CubeL4 Firmware package

  • Update of HAL/LL drivers to include latest corrections
    • Update of HAL OSPI driver to fix DelayBlockBypass parameter configuration issue.
  • HAL code quality enhancement for MISRA-C Rule-8.13 by adding const qualifiers

Contents

  • HAL/LL Drivers updates
    • HAL RCC
      • Fix HCLK prescaler update in HAL_RCC_ClockConfig() to avoid issue with CPU clock being out of range versus the Flash latency.
      • Wait PLL1RDY to be off before clearing PLL1 source
    • HAL FLASH
      • Complete description of USERConfig, member of structure FLASH_OBProgramInitTypeDef.
    • HAL EXTI
      • Fix EXTI_GPIOG defined value issue.
    • HAL DSI
      • Update to align DSI ULPS entry and exit sequences with reference manual.
    • HAL/LL TIM
      • 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.
      • Update __LL_TIM_CALC_PSC() macro to round up the evaluated value when the fractional part of the division is greater than 0.5.
    • HAL LTDC
      • Update HAL_LTDC_DeInit() to fix MCU Hang up during LCD turn OFF.
    • HAL QSPI
      • Update HAL_QSPI_Abort() and HAL_QSPI_Abort_IT() APIs to check on QSPI BUSY flag status before executing the abort procedure.
    • HAL OSPI
      • Update HAL_OSPI_Init() to fix DelayBlockBypass parameter configuration issue.
    • HAL I2C
      • Timeout issue using HAL MEM interface through FreeRTOS
    • HAL CAN
      • Removal of never reached code
    • HAL USB OTG
      • PCD: add handling of USB OUT Endpoint disable interrupt
      • PCD: fix device IN endpoint isoc incomplete transfer interrupt handling
      • PCD: fix USB device Isoc OUT Endpoint incomplete transfer interrupt handling
      • HAL: HCD: fix handling of ODDFRM bit in OTG_HCCHARx for Isochronous IN transactions
      • HAL: PCD: added fix to correct received transfer length with USB DMA activated
    • 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.
  • Projects updates
    • USB HID_BCD applications: Removal the BCD bus stabilization delay

Projects

Name Version Release notes
Projects V1.17.2 release notes

Components

Drivers

Name Version Release notes
STM32L4xx HAL V1.13.3 release notes

Main Changes

Maintenance release of STM32CubeL4 Firmware package

  • Update of CMSIS and HAL/LL drivers to include latest corrections
  • Update of FW projects following changes in latest version of HAL/LL and Middlewares


Contents

  • CMSIS Device updates
    • Update CMSIS device to include latest corrections
    • Refer to release notes for further details
  • HAL/LL Drivers updates
    • Update HAL/LL drivers to include latest corrections
      • Update of ADC, COMP, EXTI, GPIO, IWDG, LPTIM, NAND, OPAMP, RCC, RTC, SDMMC, SMSBUS, SPI, TIM, TSC, UART, SMARTCARD, USB, WWDG, DMA, FMC, OPAMP, USART drivers
      • Update of HAL SMBUS driver to introduce fast mode and fast mode plus
        • New extension files: stm32l4xx_hal_smbus_ex.h/.c for new APIs
      • Update of HAL UART driver introducing enhanced reception services
    • Refer to release notes for further details
  • Projects updates
    • Update of FW projects following changes in latest version of HAL/LL and Middlewares
    • Templates MDK-ARM projects migrated to ARM Compiler 6 (AC-5 like warnings)
    • Addition of new examples:
      • /32L4R9IDISCOVERY/Examples/DCMI/DCMI_CaptureMode
      • /32L4P5GDISCOVERY/Examples/LTDC/LTDC_Display
      • /NUCLEO-L476RG/Examples/UART/UART_ReceptionToIdle_CircularDMA
    • Removal of OctoSPI PSRAM support on STM32L4R9I-EVAL board
    • The STM32CubeL4 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.17.1 release notes

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


Components

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


Drivers

Name Version Release notes
Cortex-M CMSIS V5.6.0 release notes
STM32L4xx CMSIS V1.7.2 release notes
STM32L4xx HAL V1.13.1 release notes


Name Version Release notes
BSP B-L4S5I-IOT01 V1.0.1 release notes
BSP B-L475E-IOT01 V1.1.7 release notes
BSP STM32L476G_EVAL V2.1.6 release notes
BSP STM32L4R9I_EVAL V1.1.1 release notes
BSP STM32L476G-Discovery V2.0.6 release notes
BSP STM32L496G-Discovery V1.1.6 release notes
BSP STM32L4P5G-Discovery V1.1.1 release notes
BSP STM32L4R9I-Discovery V1.1.1 release notes
BSP STM32L4xx_Nucleo V2.1.7 release notes
BSP STM32L4xx_Nucleo_32 V1.0.4 release notes
BSP STM32L4xx_Nucleo_144 V1.0.8 release notes


Name Version Release notes
BSP Adafruit Shield (reference ID 802) V3.0.5 release notes
BSP Common V5.1.2 release notes
BSP cs42l51 V1.0.1 release notes
BSP cs43l22 V2.0.4 release notes
BSP cy8c4014lqi V1.0.0 release notes
BSP ft3x67 V1.0.1 release notes
BSP ft6x06 V1.0.3 release notes
BSP ft5336 V1.0.2 release notes
BSP hts221 V1.0.1 release notes
BSP hx8347g V1.1.2 release notes
BSP hx8347i V1.0.1 release notes
BSP iss66wvh8m8 V1.0.1 release notes
BSP l3gd20 V2.0.1 release notes
BSP lis3mdl V1.0.1 release notes
BSP lps22hb V1.0.1 release notes
BSP ls016b8uy V1.0.1 release notes
BSP lsm303c V2.0.1 release notes
BSP lsm303dlhc V2.0.1 release notes
BSP lsm6dsl V1.0.1 release notes
BSP m24sr V1.1.1 release notes
BSP mfxstm32l152 V2.0.4 release notes
BSP mx25lm51245g V1.0.1 release notes
BSP mx25r6435f V1.0.1 release notes
BSP n25q128a V1.0.2 release notes
BSP n25q256a V1.0.1 release notes
BSP ov9655 V1.0.2 release notes
BSP rk043fn48h V1.0.2 release notes
BSP st25dv V1.0.0 release notes
BSP st7735 V1.1.5 release notes
BSP st7789h2 V1.1.4 release notes
BSP stmpe811 V2.0.2 release notes
BSP stmpe1600 V1.1.1 release notes
BSP wm8994 V2.3.1 release notes


Middlewares

Name Version Release notes
STM32 USB Host Library V3.3.4 release notes
STM32 USB Device Library V2.7.1 release notes
STM32 TouchSensing Library V2.2.4 release notes
FatFS R0.12c FatFS release notes
ST modified 20191011 ST release notes
FreeRTOS V10.3.1 FreeRTOS release notes
ST modified 20200831 ST release notes
STemWin V5.44 release notes


Utilities

Name Version Release notes
CPU V1.1.2 release notes
Fonts V1.0.1 release notes
Log V1.0.2 release notes


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.4 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31 + Pack Keil STM32L4P5xx_DFP.1.0.0
    • Support of ARM Compiler 6 (AC-5 like warnings) for HAL/LL/BSP drivers and STMicroelectronics Middleware components
  • STM32CubeIDE v1.7.0 (gcc9_2020_q2_update) (please refer to the Toolchain Management chapter of the CubeIDE User Guide)

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
    • STM32CubeProgrammer v2.1.0 to support STM32L4P5xx/L4Q5xx devices

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Px/L4Qx devices Rev1
  • STM32L4Rx/L4Sx devices Rev2
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L476G Discovery board RevC (MB1184 C-01) (obsolete)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • STM32L4P5G Discovery board RevB (MB1535 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevC (MB1319 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03, MB1319 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4P5ZG Nucleo kit (MB1312/L A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • B-L4S5I-IOT01A board RevE02 (MB1297)


Main Changes

Maintenance release of STM32CubeL4 Firmware package

  • Update of CMSIS and HAL/LL drivers to include latest corrections
  • Update of FW projects following changes in latest version of HAL/LL and Middlewares


Contents

  • CMSIS Device updates
    • Update CMSIS device to include latest corrections
    • Refer to release notes for further details
  • HAL/LL Drivers updates
    • Update HAL/LL drivers to include latest corrections
      • Update of ADC, COMP, EXTI, GPIO, IWDG, LPTIM, NAND, OPAMP, RCC, RTC, SDMMC, SMSBUS, SPI, TIM, TSC, UART, SMARTCARD, USB, WWDG, DMA, FMC, OPAMP, USART drivers
      • Update of HAL SMBUS driver to introduce fast mode and fast mode plus
        • New extension files: stm32l4xx_hal_smbus_ex.h/.c for new APIs
      • Update of HAL UART driver introducing enhanced reception services
    • Refer to release notes for further details
  • Middlewares updates
    • Upgrade to use STM32 USB Device Library V2.7.1
    • Upgrade to use FreeRTOS V10.3.1 ST modified 2020831
  • Projects updates
    • Update of FW projects following changes in latest version of HAL/LL and Middlewares
    • Templates MDK-ARM projects migrated to ARM Compiler 6 (AC-5 like warnings)
    • Addition of new examples:
      • /32L4R9IDISCOVERY/Examples/DCMI/DCMI_CaptureMode
      • /32L4P5GDISCOVERY/Examples/LTDC/LTDC_Display
      • /NUCLEO-L476RG/Examples/UART/UART_ReceptionToIdle_CircularDMA
    • Removal of OctoSPI PSRAM support on STM32L4R9I-EVAL board
    • The STM32CubeL4 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.17.0 see Projects Release notes for details release notes

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


Components

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


Drivers

Name Version License Release notes
Cortex-M CMSIS V5.6.0 Apache License v2.0 release notes
STM32L4xx CMSIS V1.7.1 Apache License v2.0 release notes
STM32L4xx HAL V1.13.0 BSD-3-Clause release notes


Name Version License Release notes
BSP B-L4S5I-IOT01 V1.0.1 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.7 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.1.6 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.1.1 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.6 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.1.6 BSD-3-Clause release notes
BSP STM32L4P5G-Discovery V1.1.1 BSD-3-Clause release notes
BSP STM32L4R9I-Discovery V1.1.1 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.7 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.4 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.8 BSD-3-Clause release notes


Name Version License Release notes
BSP Adafruit Shield (reference ID 802) V3.0.5 BSD-3-Clause release notes
BSP Common V5.1.2 BSD-3-Clause release notes
BSP cs42l51 V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V2.0.4 BSD-3-Clause release notes
BSP cy8c4014lqi V1.0.0 BSD-3-Clause release notes
BSP ft3x67 V1.0.1 BSD-3-Clause release notes
BSP ft6x06 V1.0.3 BSD-3-Clause release notes
BSP ft5336 V1.0.2 BSD-3-Clause release notes
BSP hts221 V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.1.2 BSD-3-Clause release notes
BSP hx8347i V1.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.0.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.1 BSD-3-Clause release notes
BSP lis3mdl V1.0.1 BSD-3-Clause release notes
BSP lps22hb V1.0.1 BSD-3-Clause release notes
BSP ls016b8uy V1.0.1 BSD-3-Clause release notes
BSP lsm303c V2.0.1 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.1 BSD-3-Clause release notes
BSP lsm6dsl V1.0.1 BSD-3-Clause release notes
BSP m24sr V1.1.1 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.4 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.1 BSD-3-Clause release notes
BSP mx25r6435f V1.0.1 BSD-3-Clause release notes
BSP n25q128a V1.0.2 BSD-3-Clause release notes
BSP n25q256a V1.0.1 BSD-3-Clause release notes
BSP ov9655 V1.0.2 BSD-3-Clause release notes
BSP rk043fn48h V1.0.2 BSD-3-Clause release notes
BSP st25dv V1.0.0 BSD-3-Clause release notes
BSP st7735 V1.1.5 BSD-3-Clause release notes
BSP st7789h2 V1.1.4 BSD-3-Clause release notes
BSP stmpe811 V2.0.2 BSD-3-Clause release notes
BSP stmpe1600 V1.1.1 BSD-3-Clause release notes
BSP wm8994 V2.3.1 BSD-3-Clause release notes


Middlewares

Name Version License Release notes
STM32 USB Host Library V3.3.4 SLA0044 release notes
STM32 USB Device Library V2.7.1 SLA0044 release notes
STM32 TouchSensing Library V2.2.4 SLA0044 release notes
FatFS 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
STemWin V5.44 SLA0044 release notes


Utilities

Name Version License Release notes
CPU V1.1.2 BSD-3-Clause release notes
Fonts V1.0.1 BSD-3-Clause release notes
Log V1.0.2 BSD-3-Clause release notes


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.4 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31 + Pack Keil STM32L4P5xx_DFP.1.0.0
    • Support of ARM Compiler 6 (AC-5 like warnings) for HAL/LL/BSP drivers and STMicroelectronics Middleware components
  • STM32CubeIDE v1.5.1 - gcc version 7_2018_q2_update (please refer to the Toolchain Management chapter of the CubeIDE User Guide)

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
    • STM32CubeProgrammer v2.1.0 to support STM32L4P5xx/L4Q5xx devices

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Px/L4Qx devices Rev1
  • STM32L4Rx/L4Sx devices Rev2
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L476G Discovery board RevC (MB1184 C-01) (obsolete)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • STM32L4P5G Discovery board RevB (MB1535 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevC (MB1319 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03, MB1319 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4P5ZG Nucleo kit (MB1312/L A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • B-L4S5I-IOT01A board RevE02 (MB1297)


Main Changes

Maintenance release of STM32CubeL4 Firmware package

  • Update of CMSIS and HAL/LL drivers to include latest corrections
    • Update of HAL OSPI driver introducing compatibility break with previous versions
  • Add support of new board B-L4S5I-IOT01A and associated projects (templates and applications)


Contents

  • CMSIS Core updates
    • Upgrade to version V5.6.0
      • DSP libraries moved to CMSIS/DSP/Lib (DSP-based user projects impacted)
  • CMSIS Device updates
    • Update GCC startup files
      • Call SystemInit() before RAM initialization in GCC startup/Reset_Handler
    • Update CMSIS bit definitions
      • Update bit definitions in OCTOSPI registers
      • Align HSITRIM configuration in RCC ICSCR register
      • Add bit descriptions in CRS RC register
    • Refer to release notes for further details
  • HAL/LL Drivers updates
    • Update HAL/LL drivers to include latest corrections
      • Update of HAL OSPI driver to add/remove configurations supported by L4+ devices
      • Update of CAN, DAC, DCMI, DMA, FLASH, FSMC, GPIO, I2C, LPTIM, NOR, OPAMP, DMA, DMA, RCC, SDMMC, SMARTCARD, SPI, TIM, TSC, UART, USART, WWDG drivers
    • Refer to release notes for further details
  • Projects updates

    • Update of FW projects following changes in latest version of HAL/LL and Middlewares
    • Support of B-L4S5I-IOT01A board and associated projects:
      • HAL Template and LL Template
      • 2 applications demonstrating how to write NDEF messages to an ST25DV-I2C type 5 NFC tag
      • 1 application demonstrating how to make HTTP requests using the Es-WiFi module
    • The STM32CubeL4 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.16.0 see Projects Release notes for details release notes


Components

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

Drivers
Name Version License Release notes
Cortex-M CMSIS V5.6.0 Apache License v2.0 release notes
STM32L4xx CMSIS V1.7.0 Apache License v2.0 release notes
STM32L4xx HAL V1.12.0 BSD-3-Clause release notes
Name Version License Release notes
BSP B-L4S5I-IOT01 V1.0.0 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.6 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.1.5 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.1.0 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.5 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.1.5 BSD-3-Clause release notes
BSP STM32L4P5G-Discovery V1.1.0 BSD-3-Clause release notes
BSP STM32L4R9I-Discovery V1.1.0 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.6 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.3 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.7 BSD-3-Clause release notes
Name Version License Release notes
BSP Adafruit Shield (reference ID 802) V3.0.5 BSD-3-Clause release notes
BSP Common V5.1.2 BSD-3-Clause release notes
BSP cs42l51 V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V2.0.4 BSD-3-Clause release notes
BSP cy8c4014lqi V1.0.0 BSD-3-Clause release notes
BSP ft3x67 V1.0.1 BSD-3-Clause release notes
BSP ft6x06 V1.0.3 BSD-3-Clause release notes
BSP ft5336 V1.0.2 BSD-3-Clause release notes
BSP hts221 V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.1.2 BSD-3-Clause release notes
BSP hx8347i V1.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.0.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.1 BSD-3-Clause release notes
BSP lis3mdl V1.0.1 BSD-3-Clause release notes
BSP lps22hb V1.0.1 BSD-3-Clause release notes
BSP ls016b8uy V1.0.1 BSD-3-Clause release notes
BSP lsm303c V2.0.1 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.1 BSD-3-Clause release notes
BSP lsm6dsl V1.0.1 BSD-3-Clause release notes
BSP m24sr V1.1.1 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.3 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.1 BSD-3-Clause release notes
BSP mx25r6435f V1.0.1 BSD-3-Clause release notes
BSP n25q128a V1.0.2 BSD-3-Clause release notes
BSP n25q256a V1.0.1 BSD-3-Clause release notes
BSP ov9655 V1.0.2 BSD-3-Clause release notes
BSP rk043fn48h V1.0.2 BSD-3-Clause release notes
BSP st25dv V1.0.0 BSD-3-Clause release notes
BSP st7735 V1.1.5 BSD-3-Clause release notes
BSP st7789h2 V1.1.3 BSD-3-Clause release notes
BSP stmpe811 V2.0.2 BSD-3-Clause release notes
BSP stmpe1600 V1.1.1 BSD-3-Clause release notes
BSP wm8994 V2.3.1 BSD-3-Clause release notes
Middlewares
Name Version License Release notes
STM32 USB Host Library V3.3.4 SLA0044 release notes
STM32 USB Device Library V2.6.1 SLA0044 release notes
STM32 TouchSensing Library V2.2.4 SLA0044 release notes
FatFS 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
STemWin V5.44 SLA0044 release notes
Utilities
Name Version License Release notes
CPU V1.1.2 BSD-3-Clause release notes
Fonts V1.0.1 BSD-3-Clause release notes
Log V1.0.2 BSD-3-Clause release notes


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.4 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.29 + Pack Keil STM32L4P5xx_DFP.1.0.0

  • STM32CubeIDE v1.4.2 - gcc version 7_2018_q2_update (please refer to the Toolchain Management chapter of the CubeIDE User Guide)

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
    • STM32CubeProgrammer v2.1.0 to support STM32L4P5xx/L4Q5xx devices

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Px/L4Qx devices Rev1
  • STM32L4Rx/L4Sx devices Rev2
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • STM32L4P5G Discovery board RevB (MB1535 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevC (MB1319 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03, MB1319 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4P5ZG Nucleo kit (MB1312/L A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • B-L4S5I-IOT01A board RevE02 (MB1297)


Main Changes

Patch release of STM32CubeL4 Firmware package

  • Update of CMIS devices to add bits definitions in OCTOSPI registers
  • Update of HAL/LL drivers to include latest corrections of GPIO, I2C, RTC, SDMMC, UTILS drivers

Contents

  • CMSIS Device updates
    • Add bit definitions in OCTOSPI registers
    • Refer to release notes for further details
  • HAL/LL Drivers updates
    • Update GPIO, I2C, RTC, SDMMC, UTILS drivers HAL/LL drivers to include latest corrections
    • Refer to release notes for further details
  • Projects updates
    • Main functions rework for 32L4P5GDISCOVERY/Demonstrations/Watermark project
    • Correct syntax error in link script in NUCLEO-L4P5ZG/Examples_LL/RTC/RTC_Tamper/STM32CubeIDE project

    • The STM32CubeL4 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.15.1 see Projects Release notes for details release notes


Components

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

Drivers
Name Version License Release notes
Cortex-M CMSIS V5.4.0 Apache License v2.0 release notes
STM32L4xx CMSIS V1.6.1 Apache License v2.0 release notes
STM32L4xx HAL V1.11.1 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.6 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.1.4 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.0.4 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.5 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.1.4 BSD-3-Clause release notes
BSP STM32L4P5G-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32L4R9I-Discovery V1.0.3 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.6 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.3 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.7 BSD-3-Clause release notes
BSP Adafruit Shield (reference ID 802) V3.0.5 BSD-3-Clause release notes
BSP Common V5.1.2 BSD-3-Clause release notes
BSP cs42l51 V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V2.0.4 BSD-3-Clause release notes
BSP cy8c4014lqi V1.0.0 BSD-3-Clause release notes
BSP ft3x67 V1.0.1 BSD-3-Clause release notes
BSP ft6x06 V1.0.3 BSD-3-Clause release notes
BSP ft5336 V1.0.2 BSD-3-Clause release notes
BSP hts221 V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.1.2 BSD-3-Clause release notes
BSP hx8347i V1.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.0.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.1 BSD-3-Clause release notes
BSP lis3mdl V1.0.1 BSD-3-Clause release notes
BSP lps22hb V1.0.1 BSD-3-Clause release notes
BSP ls016b8uy V1.0.1 BSD-3-Clause release notes
BSP lsm303c V2.0.1 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.1 BSD-3-Clause release notes
BSP lsm6dsl V1.0.1 BSD-3-Clause release notes
BSP m24sr V1.1.1 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.3 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.1 BSD-3-Clause release notes
BSP mx25r6435f V1.0.1 BSD-3-Clause release notes
BSP n25q128a V1.0.2 BSD-3-Clause release notes
BSP n25q256a V1.0.1 BSD-3-Clause release notes
BSP ov9655 V1.0.2 BSD-3-Clause release notes
BSP rk043fn48h V1.0.2 BSD-3-Clause release notes
BSP st7735 V1.1.5 BSD-3-Clause release notes
BSP st7789h2 V1.1.3 BSD-3-Clause release notes
BSP stmpe811 V2.0.2 BSD-3-Clause release notes
BSP stmpe1600 V1.1.1 BSD-3-Clause release notes
BSP wm8994 V2.3.1 BSD-3-Clause release notes
Middlewares
Name Version License Release notes
STM32 USB Host Library V3.3.3 SLA0044 release notes
STM32 USB Device Library V2.5.3 SLA0044 release notes
STM32 TouchSensing Library V2.2.4 SLA0044 release notes
FatFS 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 20190719 BSD-3-Clause ST release notes
STemWin V5.44 SLA0044 release notes
Utilities
Name Version License Release notes
CPU V1.1.2 BSD-3-Clause release notes
Fonts V1.0.1 BSD-3-Clause release notes
Log V1.0.2 BSD-3-Clause release notes
STM32Nucleo_Power_GUI (add binary for NUCLEO-L4P5ZG board to demonstrate low power performance) n/a n/a n/a


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1.0 + Pack Keil STM32L4P5xx_DFP.1.0.0

  • STM32CubeIDE v1.2.0 - gcc version 7_2018_q2_update (please refer to the Toolchain Management chapter of the CubeIDE User Guide)

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
    • STM32CubeProgrammer v2.1.0 to support STM32L4P5xx/L4Q5xx devices

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Px/L4Qx devices Rev1
  • STM32L4Rx/L4Sx devices Rev2
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • STM32L4P5G Discovery board RevB (MB1535 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevC (MB1319 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03, MB1319 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4P5ZG Nucleo kit (MB1312/L A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • B-L475E-IOT01A board RevB (MB1297)


Main Changes

Add support of STM32L4P5xx and STM32L4Q5xx devices

  • New PKA and PSSI peripherals
  • Updated PWR peripheral for finer SRAM2 retention in standby mode
  • Updated RNG peripheral to open entropy configuration

Contents

  • CMSIS Device updates
    • Update device description files, start-up files to add support of STM32L4P5xx/STM32L4Q5xx
    • Add minor set corrections related to all devices, refer to release notes for further details
  • HAL/LL Drivers updates
    • Deliver new HAL/LL PKA and HAL PSSI drivers
    • Update all HAL/LL drivers to support STM32L4P5xx/STM32L4Q5xx
    • Correction of several issues applicable to all devices, refer to release notes for further details
  • Projects updates
    • 32L4P5GDISCOVERY
      • Emphasis on eMMC and external FLASH and PSRAM access
      • HAL Template and LL Template
      • 26 HAL and LL example projects illustrating the usage of the HAL and LL DMA2D, GPIO, HASH, LPTIM, OSPI, PWR, RCC, under Project/32L4P5GDISCOVERY/Examples and Project/32L4P5GDISCOVERY/Examples_LL
      • 2 applications demonstrating the integration of Middleware FatFS and USB_Device libraries, under Project/32L4P5GDISCOVERY/Applications
      • 1 demonstration illustrating the joint use of FatFS and USB_Device to watermark files in png format, under Project/32L4P5GDISCOVERY/Demonstrations
    • NUCLEO-L4P5ZG
      • Illustration of new PKA and PSSI peripherals
      • Illustration of RNG peripheral configuration new feature
      • HAL Template and LL Template
      • 66 HAL, LL and MIX example projects illustrating the usage of the HAL and LL ADC, CRC, DMA, FLASH, GPIO, PKA, PSSI, PWR, RCC, RNG ,RTC, under Project/NUCLEO-L4P5ZG/Examples, Project/NUCLEO-L4P5ZG/Examples_LL and Project/NUCLEO-L4P5ZG/Examples_MIX
    • Update of FW projects following changes in latest version of HAL/LL and Middlewares
    • The STM32CubeL4 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.15.0 see Projects Release notes for details release notes


Components

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

Drivers
Name Version License Release notes
Cortex-M CMSIS V5.4.0 Apache License v2.0 release notes
STM32L4xx CMSIS V1.6.0 Apache License v2.0 release notes
STM32L4xx HAL V1.11.0 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.6 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.1.4 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.0.4 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.5 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.1.4 BSD-3-Clause release notes
BSP STM32L4P5G-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32L4R9I-Discovery V1.0.3 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.6 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.3 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.7 BSD-3-Clause release notes
BSP Adafruit Shield (reference ID 802) V3.0.5 BSD-3-Clause release notes
BSP Common V5.1.2 BSD-3-Clause release notes
BSP cs42l51 V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V2.0.4 BSD-3-Clause release notes
BSP cy8c4014lqi V1.0.0 BSD-3-Clause release notes
BSP ft3x67 V1.0.1 BSD-3-Clause release notes
BSP ft6x06 V1.0.3 BSD-3-Clause release notes
BSP ft5336 V1.0.2 BSD-3-Clause release notes
BSP hts221 V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.1.2 BSD-3-Clause release notes
BSP hx8347i V1.0.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.0.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.1 BSD-3-Clause release notes
BSP lis3mdl V1.0.1 BSD-3-Clause release notes
BSP lps22hb V1.0.1 BSD-3-Clause release notes
BSP ls016b8uy V1.0.1 BSD-3-Clause release notes
BSP lsm303c V2.0.1 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.1 BSD-3-Clause release notes
BSP lsm6dsl V1.0.1 BSD-3-Clause release notes
BSP m24sr V1.1.1 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.3 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.1 BSD-3-Clause release notes
BSP mx25r6435f V1.0.1 BSD-3-Clause release notes
BSP n25q128a V1.0.2 BSD-3-Clause release notes
BSP n25q256a V1.0.1 BSD-3-Clause release notes
BSP ov9655 V1.0.2 BSD-3-Clause release notes
BSP rk043fn48h V1.0.2 BSD-3-Clause release notes
BSP st7735 V1.1.5 BSD-3-Clause release notes
BSP st7789h2 V1.1.3 BSD-3-Clause release notes
BSP stmpe811 V2.0.2 BSD-3-Clause release notes
BSP stmpe1600 V1.1.1 BSD-3-Clause release notes
BSP wm8994 V2.3.1 BSD-3-Clause release notes
Middlewares
Name Version License Release notes
STM32 USB Host Library V3.3.3 SLA0044 release notes
STM32 USB Device Library V2.5.3 SLA0044 release notes
STM32 TouchSensing Library V2.2.4 SLA0044 release notes
FatFS 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 20190719 BSD-3-Clause ST release notes
STemWin V5.44 SLA0044 release notes
Utilities
Name Version License Release notes
CPU V1.1.2 BSD-3-Clause release notes
Fonts V1.0.1 BSD-3-Clause release notes
Log V1.0.2 BSD-3-Clause release notes
STM32Nucleo_Power_GUI (add binary for NUCLEO-L4P5ZG board to demonstrate low power performance) n/a n/a n/a


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1.0 + Pack Keil STM32L4P5xx_DFP.1.0.0

  • STM32CubeIDE v1.2.0 - gcc version 7_2018_q2_update (please refer to the Toolchain Management chapter of the CubeIDE User Guide)

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
    • STM32CubeProgrammer v2.1.0 to support STM32L4P5xx/L4Q5xx devices

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Px/L4Qx devices Rev1
  • STM32L4Rx/L4Sx devices Rev2
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • STM32L4P5G Discovery board RevB (MB1535 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevC (MB1319 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03, MB1319 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4P5ZG Nucleo kit (MB1312/L A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • B-L475E-IOT01A board RevB (MB1297)

Main Changes

Maintenance release

  • New HAL MMC driver release

  • Demonstrations binaries are no more delivered within the STM32CubeL4 MCU package. They are available for download, in addition to their required media files if any, in a standalone package accessible through each hardware board official webpage. Please refer to the corresponding demonstration binary readme.txt to get webpage for each board.

Contents

  • CMSIS Core updates
    • Upgrade to version V5.4.0
  • CMSIS Device updates
    • Update all files licenses to Apache v2.0
    • Minor set corrections, refer to release notes for further details
  • HAL/LL Drivers updates
    • Deliver new HAL MMC driver
    • Provide additional corrections to Misra C:2012 warnings
    • Correct several software issues reported from the field on V1.13.0 or from internal testing, among which
      • SPI Abort procedure
      • RTC wake-up timer interruption management
    • Refer to release notes for further details
  • Projects updates

    • Update all EWARM and MDK-ARM projects to ensure projects refer to delivered /Firmware/Drivers/CMSIS/Include folder
    • Remove useless setting of ep0_mps in usbd_conf.c files for all USB_Device applications
    • Add HAL MMC driver files to all EWARM, MDK-ARM and SW4STM32 HAL Templates projects

    • Update of FW projects following changes in latest version of HAL/LL and Middlewares
    • The STM32CubeL4 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.14.0 see Projects Release notes for details release notes


  • Utilities updates

    • Remove STM32CubeUpdater from Utilities/PC_Software


Components

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

Drivers
Name Version License Release notes
Cortex-M CMSIS V5.4.0 Apache License v2.0 release notes
STM32L4xx CMSIS V1.5.1 Apache License v2.0 release notes
STM32L4xx HAL V1.10.0 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.4 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.1.2 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.0.3 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.3 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.1.2 BSD-3-Clause release notes
BSP STM32L4R9I-Discovery V1.0.2 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.5 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.2 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.6 BSD-3-Clause release notes
BSP Adafruit Shield (reference ID 802) V3.0.4 BSD-3-Clause release notes
BSP Common V5.1.2 BSD-3-Clause release notes
BSP cs42l51 V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V2.0.4 BSD-3-Clause release notes
BSP ft3x67 V1.0.1 BSD-3-Clause release notes
BSP ft6x06 V1.0.3 BSD-3-Clause release notes
BSP ft5336 V1.0.2 BSD-3-Clause release notes
BSP hts221 V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.1.2 BSD-3-Clause release notes
BSP hx8347i V1.0.0 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.0.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.1 BSD-3-Clause release notes
BSP lis3mdl V1.0.1 BSD-3-Clause release notes
BSP lps22hb V1.0.1 BSD-3-Clause release notes
BSP ls016b8uy V1.0.1 BSD-3-Clause release notes
BSP lsm303c V2.0.1 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.1 BSD-3-Clause release notes
BSP lsm6dsl V1.0.1 BSD-3-Clause release notes
BSP m24sr V1.1.1 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.3 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.1 BSD-3-Clause release notes
BSP mx25r6435f V1.0.1 BSD-3-Clause release notes
BSP n25q128a V1.0.2 BSD-3-Clause release notes
BSP n25q256a V1.0.1 BSD-3-Clause release notes
BSP ov9655 V1.0.2 BSD-3-Clause release notes
BSP rk043fn48h V1.0.2 BSD-3-Clause release notes
BSP st7735 V1.1.5 BSD-3-Clause release notes
BSP st7789h2 V1.1.3 BSD-3-Clause release notes
BSP stmpe811 V2.0.2 BSD-3-Clause release notes
BSP stmpe1600 V1.1.1 BSD-3-Clause release notes
BSP wm8994 V2.3.1 BSD-3-Clause release notes
Middlewares
Name Version License Release notes
STM32 USB Host Library V3.3.2 SLA0044 release notes
STM32 USB Device Library V2.5.2 SLA0044 release notes
STM32 TouchSensing Library V2.2.0 SLA0044 release notes
FatFS R0.12c BSD-3-Clause FatFS release notes
ST modified 20190329 BSD-3-Clause ST release notes
FreeRTOS V10.0.1 MIT FreeRTOS release notes
ST modified 20190329 BSD-3-Clause ST release notes
STemWin V5.44 SLA0044 release notes
Utilities
Name Version License Release notes
CPU V1.1.1 BSD-3-Clause release notes
Fonts V1.0.1 BSD-3-Clause release notes
Log V1.0.2 BSD-3-Clause release notes
STM32Nucleo_Power_GUI n/a n/a n/a


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration nor for NUCLEO-L412RB-P USB Device applications.
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL demonstrations.
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below


Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1 + ST-Link
    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + Pack Keil STM32L4+_DFP.1.0.2

  • System Workbench STM32 (SW4STM32) toolchain V2.7

  • Tools
    • ST-Link Utility V4.3.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards

Supported Devices and boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)

Main Changes

Add support of STM32L412xx and STM32L422xx devices

  • New RTC peripheral to improve power consumption performance
  • Updated LPTIM peripheral to make both low power timer instances operational in Stop 2 mode

Contents

  • CMSIS Device updates
    • Add device description & startup files for new device defines STM32L412xx and STM32L422xx
  • HAL && LL Drivers updates
    • MISRA C:2012 corrections listed hereafter are applicable to LL driver as well
    • HAL ADC driver
      • Replace private macro using concurrent volatile access (generating MIRSA errors) by temporary variables or LL helper macro
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 8.13, 10.1_R2, 10.1_R3, 10.1_R6, 10.4_a, 10.4_b, 10.5, 14.4_c, 12.2, 15.7
      • stm32l4xx_hal_adc.c and stm32l4xx_hal_adc_ex.c
        • Change of time-out duration computation when expressed in microseconds to manage low system clock frequencies
      • stm32l4xx_hal_adc.c
        • Remove useless stabilization delay in ADC_Enable() when enabling ADC
        • In HAL_ADC_Stop_DMA(), HAL_DMA_Abort() API is called only if DMA is busy
      • stm32l4xx_hal_adc.h
      • Typo correction in ADC_AnalogWDGConfTypeDef FilteringConfig field description
      • stm32l4xx_hal_adc.c, stm32l4xx_hal_adc.h
        • Clarify comments in HAL_ADC_AnalogWDGConfig for analog watchdog thresholds checks when oversampling is enabled
    • HAL CAN driver
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 10.3, 10.4_a, 10.6, 12.2, 13.3, 13.5, 15.7, 17.7, 18.1_b
      • stm32l4xx_hal_can.c, stm32l4xx_hal_can.h
        • Tx abort procedure correction
      • stm32l4xx_hal_can.c
        • Correct implementation of test on pending message in HAL_CAN_IsTxMessagePending()
        • Update HAL_CAN_Stop() to reset any previous sleep mode request to avoid maintaining the sleep mode request active at next HAL_CAN_Start()
    • HAL COMP driver
      • Correct MISRA C:2012 warnings reported by rules 10.1, 10.3, 10.4, 13.5
      • stm32l4xx_hal_comp.c
        • Change of time-out duration computation when expressed in microseconds to manage low system clock frequencies
    • HAL CRC driver
      • Correct MISRA C:2012 warnings reported by rules 10.3, 12.1, 12.2
    • HAL CRYP driver
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 8.13, 10.3, 10.4, 10.6, 10.7, 10.8, 12.1, 13.5, 15.7, 17.7, 18.4
      • stm32l4xx_hal_cryp_ex.c: CodeSonar warnings correction
    • HAL DAC driver
      • Correct MISRA C:2012 warnings
    • HAL DCMI driver
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 8.4, 10.4_a, 12.1, 17.7, 18.4
    • HAL DMA driver
      • Correct MISRA C:2012 warnings
    • HAL DSI driver
      • stm32l4xx_hal_dsi.h: add __HAL_DSI_RESET_HANDLE_STATE() macro
    • HAL EXTI driver (NEW)
      • New stm32l4xx_hal_exti.h and stm32l4xx_hal_exti.c files (driver enabled with HAL_EXTI_MODULE_ENABLED in stm32l4xx_hal_conf.h file)
    • HAL FIREWALL driver
      • Correct MISRA C:2012 warnings reported by rules 10.4
    • HAL GPIO driver
      • Correct MISRA C:2012 warnings reported by rules 10.3, 21.1
    • HAL HASH driver
      • Correct MISRA C:2012 warnings reported by rules 1.3_k, 2.2_c, 9.1_f, 10.3, 12.1, 13.4_b, 13.5, 15.7, 17.7, 21.1
      • stm32l4xx_hal_hash.c:
        • in HASH_Start_DMA(), test on HASH_CR_MDMAT bit before checking input buffer length in case of multi-buffer processing
        • Fill-up empty statement in HAL_HASH_DMAFeed_ProcessSuspend() to correct CodeSonar warning
    • HAL I2C driver
      • Correct MISRA C:2012 warnings
      • stm32l4xx_hal_i2c.c: remove extra definition of I2C_GET_DMA_REMAIN_DATA() macro
    • HAL IRDA driver
      • Correct MISRA C:2012 warnings reported by rules 2.1, 2.2_c, 2.4, 2.3, 8.9_a, 10.3, 10.4_a, 10.5, 10.6, 10.7, 11.3, 13.3, 13.5, 15.7, 17.7, 17.8, 18.4, 21.1
    • HAL IWDG driver
      • Correct MISRA C:2012 warnings reported by rules 2.7, 10.3, 10.4_a
    • HAL LPTIM driver
      • Add repetition counter management for STM32L412xx/L422xx devices
        • New field RepetitionCounter added in LPTIM_InitTypeDef structure
    • HAL OSPI driver
      • stm32l4xx_hal_ospi.h: update memory type definition to support new octal PSRAM from APMemory
    • HAL OPAMP driver
      • Correct MISRA C:2012 warnings
    • HAL PWR driver
      • Update conversion mechanism from duration in us in number of cycles to manage low system frequencies
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 10.3, 10.4_a, 13.5, 16.3, 17.7
    • HAL RCC driver
      • stm32l4xx_hal_rcc.c, stm32l4xx_hal_rcc.h: compilation switches update to ensure full STM32L412xx/L422xx devices support
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 8.13, 8.9_a, 10.1_R2, 10.4_a, 10.3, 10.7, 11.9, 12.1, 12.2, 13.5, 14.4_c, 15.7, 21.2
    • HAL RTC driver
      • New HAL_RTCEx_SetLowPowerCalib() API for STM32L412xx/L422xx devices
      • HAL_RTC_AlarmIRQHandler() API optimization
    • HAL SAI driver
      • stm32l4xx_hal_sai.c: remove empty if statements to fix CodeSonar wanring
      • stm32l4xx_hal_sai.h, stm32l4xx_hal_sai.c: add check on master clock divider parameter, remove SAI_FIFO_SIZE definition
    • HAL SMARTCARD driver
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 8.9_a, 10.3, 10.4_a, 10.5, 10.6, 10.7, 12.1, 12.2, 13.3, 13.5, 15.7, 17.7, 17.8, 18.1, 21.1
    • HAL SPI driver
      • Correct MISRA C:2012 warnings
    • HAL SWPMI driver
      • Correct MISRA C:2012 warnings reported by rules 2.2_c, 2.7, 10.3, 10.4_a, 13.3, 13.5, 15.7, 17.7, 17.8, 21.1
    • HAL TSC driver
      • Correct MISRA C:2012 warnings reported by rule 21.1
    • HAL USART driver
      • Correct MISRA C:2012 warnings reported by rule 10.4_a, 10.6, 12.2
    • LL ADC driver
      • stm32l4xx_ll_dmamux.h: clarify comments when oversampling is enabled
    • LL DMA driver
      • stm32l4xx_ll_dmamux.h: remove test on DMAMUX1
    • LL RCC driver
      • stm32l4xx_ll_rcc.c, stm32l4xx_ll_rcc.h: compilation switches update to ensure full STM32L412xx/L422xx devices support
    • LL RTC driver
      • stm32l4xx_ll_rtc.h: add new macros LL_RTC_WAKEUP_SetAutoClr(), LL_RTC_WAKEUP_GetAutoClr() applicable to STM32L412xx/L422xx devices only
  • Projects updates
    • NUCLEO-L412KB
      • Emphasis on new power consumption optimization features illustrated in PWR examples
      • HAL Template and LL Template
      • 27 HAL, LL and MIX example projects illustrating the usage of the HAL and LL ADC, CRC, DMA, FLASH, GPIO, PWR, RCC under Project/NUCLEO-L412KB/Examples, Project/NUCLEO-L412KB/Examples_LL, Project/NUCLEO-L412KB/Examples_MIX
      • 2 LL ADC examples tailored-made for low power consumption at low sampling frequency rate under Project/NUCLEO-L412KB/Examples_LL/ADC
      • 1 application demonstrating the integration of Middleware FreeRTOS library under Project/NUCLEO-L412KB/Applications
      • 1 demonstration based on GraviTech nano shield that can be used with the STM32 Power shield X-NUCLEO-LPM01A for power consumption measurement purposes in different low power modes, under Project/NUCLEO-L412KB/Demonstrations
    • NUCLEO-L412RB-P
      • Emphasis on new RTC IP version, LPTIM new repetition counter and power consumption with external SMPS respectively illustrated in RTC, LPTIM and PWR examples
      • HAL Template and LL Template
      • 60 HAL, LL and MIX example projects illustrating the usage of the HAL and LL ADC, COMP, CORTEX, CRC, DMA, FLASH, I2C, IWDG, LPTIM, PWR, PWR, RCC, RNG ,RTC, WWDG under Project/NUCLEO-L412RB-P/Examples, Project/NUCLEO-L412RB-P/Examples_LL, Project/NUCLEO-L412RB-P/Examples_MIX
      • 14 applications demonstrating the integration of Middleware FreeRTOS and USB_Device libraries under Project/NUCLEO-L412RB-P/Applications
      • 1 demonstration based on Adafruit shield under Project/NUCLEO-L412RB-P/Demonstrations
    • 32L496GDISCOVERY
      • HAL Examples
        • Add FMC/FMC_SRAM project
    • NUCLEO-L4R5ZI
      • HAL Examples
        • Add DMA/DMAMUX_RequestGen and DMA/DMAMUX_SYNC projects
    • Move to STemWin library v5.44 of all graphics STemWin applications and demonstrations (with the exception of STM32L4R9I-EVAL STemWin/MB1315 demonstration due to non-AEABI audio libraries requiring to stay on STemWin v5.40 with IAR v7.80.4)
    • Move to USB Host library v3.3.0 of all USB Host applications and demonstrations
    • EWARM scatter file update for all HAL and LL example templates

Projects


Components

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

Drivers
Name Version License Release notes
Cortex-M CMSIS V4.5 BSD-3-Clause release notes
STM32L4xx CMSIS V1.5.0 BSD-3-Clause release notes
STM32L4xx HAL V1.9.0 BSD-3-Clause release notes
BSP B-L475E-IOT01 V1.1.3 BSD-3-Clause release notes
BSP STM32L476G_EVAL V2.2.1 BSD-3-Clause release notes
BSP STM32L4R9I_EVAL V1.0.2 BSD-3-Clause release notes
BSP STM32L476G-Discovery V2.0.2 BSD-3-Clause release notes
BSP STM32L496G-Discovery V1.0.1 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo V2.1.4 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_32 V1.0.1 BSD-3-Clause release notes
BSP STM32L4xx_Nucleo_144 V1.0.5 BSD-3-Clause release notes
BSP Adafruit Shield (reference ID 802) V3.0.3 BSD-3-Clause release notes
BSP Common V5.0.0 BSD-3-Clause release notes
BSP cs42l51 V1.0.0 BSD-3-Clause release notes
BSP cs43l22 V2.0.2 BSD-3-Clause release notes
BSP ft3x67 V1.0.0 BSD-3-Clause release notes
BSP ft6x06 V1.0.1 BSD-3-Clause release notes
BSP ft5336 V1.0.0 BSD-3-Clause release notes
BSP hts221 V1.0.0 BSD-3-Clause release notes
BSP hx8347g V1.1.1 BSD-3-Clause release notes
BSP iss66wvh8m8 V1.1.1 BSD-3-Clause release notes
BSP l3gd20 V2.0.0 BSD-3-Clause release notes
BSP lis3mdl V1.0.0 BSD-3-Clause release notes
BSP lps22hb V1.0.0 BSD-3-Clause release notes
BSP ls016b8uy V1.0.0 BSD-3-Clause release notes
BSP lsm303c V2.0.0 BSD-3-Clause release notes
BSP lsm303dlhc V2.0.0 BSD-3-Clause release notes
BSP lsm6dsl V1.0.0 BSD-3-Clause release notes
BSP m24sr V1.1.0 BSD-3-Clause release notes
BSP mfxstm32l152 V2.0.0 BSD-3-Clause release notes
BSP mx25lm51245g V1.0.0 BSD-3-Clause release notes
BSP mx25r6435f V1.0.0 BSD-3-Clause release notes
BSP n25q128a V1.0.0 BSD-3-Clause release notes
BSP n25q256a V1.0.0 BSD-3-Clause release notes
BSP ov9655 V1.0.0 BSD-3-Clause release notes
BSP st7735 V1.1.1 BSD-3-Clause release notes
BSP st7789h2 V1.1.1 BSD-3-Clause release notes
BSP stmpe811 V2.0.0 BSD-3-Clause release notes
BSP stmpe1600 V1.1.0 BSD-3-Clause release notes
BSP wm8994 V2.1.0 BSD-3-Clause release notes
Middlewares
Name Version License Release notes
STM32 USB Host Library V3.3.1 Software_license_agreement_liberty_v2 release notes
STM32 USB Device Library V2.5.0 Software_license_agreement_liberty_v2 release notes
STM32 TouchSensing Library V2.2.0 Software_license_agreement_liberty_v2 release notes
FatFS R0.12c ST modified 20170710 R0.12 ST modified 20170710 FatFs License and MCD-ST Liberty Software License Agreement v2 FatFS release notes, ST_release_notes
FreeRTOS V10.0.1 ST modified 20180730 V10.0.1 ST modified 20180730 FreeRTOS Modified GPL License and MCD-ST Liberty Software License Agreement v2 FreeRTOS release notes, ST_release_notes
STemWin STemWinLibrary5.44 build 20180322 SLA-0044 release notes
Utilities
Name Version License Release notes
CPU V1.1.0 BSD-3-Clause release notes
Fonts V1.0.0 BSD-3-Clause release notes
Log V1.0.1 BSD-3-Clause release notes
STM32Nucleo_Power_GUI (add binaries for NUCLEO-L412KB and NUCLEO-L412RB-P boards to demonstrate low power performance) n/a n/a n/a


Known Limitations

  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration nor for NUCLEO-L412RB-P USB Device applications
  • MDK-ARM and SW4STM32 projects are not provided for STM32L4R9I-EVAL and STM32LR49I-Discovery demonstrations
  • STM32L4R9I-EVAL STemWin MB1315 Demonstration is compatible only with IAR v7.80.4 version and below


Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2 + ST-Link

    • Limitations: IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STM32L4R9I-EVAL STemWin MB1315 demonstration
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.24a + Pack Keil STM32L4+_DFP.1.0.2
  • System Workbench STM32 (SW4STM32) toolchain V2.5


  • Tools
    • ST-Link Utility V4.2.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery, STM32L496G-Discovery, STM32L4R9I-EVAL and STM32L4R9I-Discovery boards.

Supported Devices and Boards

  • STM32L41x/L42x devices Rev1
  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation board RevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L412KB Nucleo kit RevC (MB1180 C-01)
  • STM32L412RB Nucleo kit RevC (MB1319 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • STM32L4R9I Evaluation board RevB (MB1313 B-03)
  • STM32L4R9I Discovery board RevC (MB1311 C-01)


Main Changes

Maintenance release to add support of HAL callback registration feature

The feature disabled by default is available for the following HAL drivers:

  • ADC, CAN, COMP, CRYP, DAC, DCMI, DFSDM, DMA2D, DSI, GFXMMU, HASH, HCD, I2C, IRDA, LPTIM, LTDC, OPAMP, OSPI, PCD, QSPI, RNG, RTC, SAI, SD, SMARTCARD, SMBUS, SPI, SWPMI, TIM, TSC, UART, USART and WWDG

The feature may be enabled individually per HAL PPP driver by setting the corresponding definitionUSE_HAL_PPP_REGISTER_CALLBACKS to  1U in stm32l4xx_hal_conf.h project configuration file (template filestm32l4xx_hal_conf_template.havailable from Drivers/STM32L4xx_HAL_Driver/Inc)

Once enabled, the user application may resort to HAL_PPP_RegisterCallback() to register specific callback function(s) and unregister it(them) with HAL_PPP_UnRegisterCallback().

An example projectHAL_RegisterCallbacks_TIMis available in Projects\NUCLEO-L476RG\Examples\HAL

CMSIS Devices updates

  • stm32l4r5xx.h, stm32l4r7xx.h, stm32l4r9xx.h, stm32l4s5xx.h, stm32l4s7xx.h and stm32l4s9xx.hdevices description files

    • Fix SDMMC_STA_DPSMACT andSDMMC_STA_CPSMACT definitions
  • All stm32l4XXxx.h device description files except stm32l4r5xx.h, stm32l4r7xx.h, stm32l4r9xx.h, stm32l4s5xx.h, stm32l4s7xx.h and stm32l4s9xx.h

    • Add missing USART_CR3_UCESM bit definition

    • MISRAC-2012: Rule-10.6 correction

HAL && LL Drivers updates

HAL generic driver

  • stm32l4xx_hal_conf_template.h update to add callback registration feature support (disabled by default)
  • stm32l4xx_hal_def.h: UNUSED() macro update for g++ compilation

HAL ADC driver 

  • Fix to enable ADC internal channels (VrefInt, temperature sensor and Vbat) without being too restrictive
  • Update internal ADC calibration timeout value

HAL HCD driver 

Add new user notification callbacks

  • HAL_HCD_PortEnabled_Callback() and HAL_HCD_PortDisabled_Callback()

HAL I2C driver 

I2C slave enhancement when master sends RESTART instead of STOP

  • Add HAL_I2C_Master_Sequential_Transmit_DMA(), HAL_I2C_Master_Sequential_Receive_DMA(), HAL_I2C_Slave_Sequential_Transmit_DMA() and HAL_I2C_Slave_Sequential_Receive_DMA() APIs

HAL NAND driver 

Add new configuration API HAL_NAND_ConfigDevice()

Add new APIs for 8-bit and 16-bit accesses

  • HAL_NAND_Read_Page_8b(), HAL_NAND_Write_Page_8b(), HAL_NAND_Read_SpareArea_8b() and HAL_NAND_Write_SpareArea_8b()
  • HAL_NAND_Read_Page_16b(), HAL_NAND_Write_Page_16b(), HAL_NAND_Read_SpareArea_16b() and HAL_NAND_Write_SpareArea_16b()

HAL PCD driver 

  • Fix USB double buffer issue in PCD_SET_EP_DBUF1_CNT() macro

HAL QSPI driver 

  • Fix HAL_QSPI_Receive_IT() to avoid early clear of TE and TC flags

HAL RCC driver 

  • Fix HAL_RCCEx_GetPeriphCLKFreq() for all peripheral clock frequency derivated from PLLSAI1 and PLLSAI2 when PLLSAI1M and PLLSAI2M dividers are present

HAL SD driver 

  • Fix DMA write issue
  • Fix to send the "Stop transfer" command only in case of multiple read or write operations

HAL SWPMI driver 

  • Fix in HWL_SWPMI_EnableLoopback() to enable entering loopback mode after SWPMI initialization

HAL UART driver 

Add wakeup capability from Stop mode when clocked by LSE

  • Add HAL_UARTEx_EnableClockStopMode() and HAL_UARTEx_DisableClockStopMode() APIs

LL ADC driver 

  • Fix temperature sensor calibration factor value for STM32L4 devices other than STM32L47x/L48x

LL LPUART driver 

Add wakeup capability from Stop mode when clocked by LSE

  • Add LL_LPUART_EnableClockInStopMode(), LL_LPUART_DisableClockInStopMode() and LL_LPUART_IsClockEnabledInStopMode() APIs

LL RTC driver 

  • Code optimization done in LL_RTC_TIME_GetHour(), LL_RTC_TIME_GetMinute(), LL_RTC_TIME_GetSecond(), LL_RTC_DATE_GetYear(), LL_RTC_DATE_GetMonth(), LL_RTC_DATE_GetDay(), LL_RTC_ALMA_GetDay(), LL_RTC_ALMA_GetHour(), LL_RTC_ALMA_GetMinute(), LL_RTC_ALMA_GetSecond(),LL_RTC_ALMB_GetDay(), LL_RTC_ALMB_GetHour(), LL_RTC_ALMB_GetMinute() and LL_RTC_ALMB_GetSecond() APIs

LL SPI driver 

  • Fix GCC warnings in LL_SPI_TransmitData8() and LL_SPI_TransmitData16()

LL USART driver 

Add wakeup capability from Stop mode when clocked by LSE

  • Add LL_USART_EnableClockInStopMode(), LL_USART_DisableClockInStopMode() and LL_USART_IsClockEnabledInStopMode() APIs

Middlewares updates

  • New STM32 USB Device Library V2.5.0 library
  • (no impact on USB Device applications)

Projects updates

32L4R9IDISCOVERY

HAL Examples

  • DSI_ULPM_DataClock:Fix PLLSAI2 output issue for DSI Ultra Low-power mode.

B-L475E-IOT01A

Applications

  • WiFi\WiFi_HTTP_Server: Fix incomplete ADC channel configuration in TEMP_SENSOR_Init().

NUCLEO-L476RG

Applications

  • Add FreeRTOS\FreeRTOS_MPU project.

Examples

  • Add HAL\HAL_RegisterCallbacks_TIM project.
  • UART_TwoBoards_ComPolling:Fix UART Rx/Tx pins.

STM32L4R9I-EVAL

Applications

  • Add FreeRTOS\FreeRTOS_MPU project.

HAL Examples

  • DSI_ULPM_DataClock:Fix PLLSAI2 output issue for DSI Ultra Low-power mode.

Contents

  • Projects

The STM32CubeL4 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 release notes (updates in bold) 

32L476GDISCOVERY

32L496GDISCOVERY

32L4R9IDISCOVERY

B-L475E-IOT01A

NUCLEO-L4R5ZI

NUCLEO-L4R5ZI-P

NUCLEO-L432KC

NUCLEO-L433RC-P

NUCLEO-L452RE

NUCLEO-L452RE-P

NUCLEO-L476RG

NUCLEO-L496ZG

NUCLEO-L496ZG-P

STM32L4R9I-EVAL

STM32L476G-EVAL

WIN32

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

IAR Embedded Workbench for ARM (EWARM) toolchain V8.20 + ST-Link

  • Limitations:IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 required for STemWin V5.40 based applications

RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.24a+ Pack Keil STM32L4+_DFP.0.0.5

System Workbench STM32 (SW4STM32) toolchain V2.1

Tools

  • ST-Link Utility V4.1.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01,MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • STM32L4R9I Evaluation boardRevB (MB1313 B-03)
  • STM32L4R9I Discovery boardRevC (MB1311 C-01)


Known limitation 

  • ARM Compiler 6 (AC6) compliancy (planned for future release)
  • MDK-ARM/SW4STM32 projects are not available for the STM32L4R9I-EVAL and STM32L4R9I-Discovery demonstrations (planned for future release)
  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration

Main Changes

Maintenance release to add support ofexternal SMPS PWR examples for NUCLEO-L4R5ZI-P (MB1312/S) board

Reduce package size by gathering all Demonstration media files under  "\Utilities\Media" folder

  • see Demonstrations readme.txt files for SDCard content requirements and setup

HAL && LL Driversupdates

HAL CAN driver 

Rework of HAL CAN driver (compatibility break) 

A new HAL CAN driver has been redesigned with new APIs, to bypass limitations on CAN Tx/Rx FIFO management present with previous HAL CAN driver version.

The new HAL CAN driver is the recommended version. It is located as usual in Drivers/STM32L4xx_HAL_Driver/Src and Drivers/STM32L4xx_HAL_Driver/Inc folders. It can be enabled through switch HAL_CAN_MODULE_ENABLED in stm32l4xx_hal_conf.h

The legacy HAL CAN driver is also present in the release in Drivers/STM32L4xx_HAL_Driver/Src/Legacy and Drivers/STM32L4xx_HAL_Driver/Inc/Legacy folders for software compatibility reasons. Its usage is not recommended as deprecated. It can however be enabled through switch HAL_CAN_LEGACY_MODULE_ENABLED in stm32l4xx_hal_conf.h

Short migration guide:

Fields of CAN_InitTypeDef structure are renamed : 

  • SJW to SyncJumpWidth, BS1 to TimeSeg1, BS2 to TimeSeg2, TTCM to TimeTriggeredMode, ABOM to AutoBusOff, AWUM to AutoWakeUp, NART to AutoRetransmission (inversed), RFLM to ReceiveFifoLocked and TXFP to TransmitFifoPriority
  • HAL_CAN_Init() is split into both HAL_CAN_Init() and HAL_CAN_Start()
  • HAL_CAN_Transmit() is replaced by HAL_CAN_AddTxMessage() to place Tx request, then HAL_CAN_GetTxMailboxesFreeLevel() for polling until completion
  • HAL_CAN_Transmit_IT() is replaced by HAL_CAN_ActivateNotification() to enable transmission with interrupt mode, thenHAL_CAN_AddTxMessage() to place Tx request
  • HAL_CAN_Receive() is replaced by HAL_CAN_GetRxFifoFillLevel() for polling until reception, then HAL_CAN_GetRxMessage() to get Rx message
  • HAL_CAN_Receive_IT() is replaced byHAL_CAN_ActivateNotification() to enable reception with interrupt mode, thenHAL_CAN_GetRxMessage() in the receive callback to get Rx message
  • HAL_CAN_Sleep() is renamed to HAL_CAN_RequestSleep()
  • HAL_CAN_TxCpltCallback() is split intoHAL_CAN_TxMailbox0CompleteCallback(),HAL_CAN_TxMailbox1CompleteCallback() andHAL_CAN_TxMailbox2CompleteCallback()
  • HAL_CAN_RxCpltCallback() is split intoHAL_CAN_RxFifo0MsgPendingCallback() and HAL_CAN_RxFifo1MsgPendingCallback()

More complete "how to use the new driver" is detailed in the driver header section itself

HAL CORTEX driver 

  • HAL_MPU_Enable() and HAL_MPU_Disable() functions moved to stm32l4xx_hal_cortex.c

HAL CRC driver 

  • Fix GCC warning 

HAL FLASH driver 

  • HAL_FLASH_Unlock() updated to not return HAL_ERROR if flash is already unlocked 

HAL RCC driver 

  • RCC_RTCCLKSOURCE_NO_CLKrenamed to RCC_RTCCLKSOURCE_NONE

  • HAL_RCC_DeInit() updates

    • Clear of status flags
    • Wait for PLLs disable flags to clear PLLs configuration registers
    • Fix MISRA C-2004 rule 10.6 ('U' suffix)

HAL TIM driver 

  • Fix MISRA C-2004 rule 10.6 ('U' suffix)

LL CRC driver 

  • Fix GCC warning

LL RCC driver 

  • Add LL_RCC_PLL_SetMainSource() and LL_RCC_HSI_IsEnabledInStopMode() APIs
  • LL_RCC_DeInit() update
  • Clear of status flags
  • Wait for PLLs disable flags to clear PLLs configuration registers
  • Fix IS_LL_RCC_I2C_CLKSOURCE() assert macro

Projects updates

Overal project folders renaming to use boards Reference Product Names

STM32L476G-EVAL

  • UpdateExamples\CAN\CAN_Networking to align with updated HAL CAN driver APIs.

NUCLEO-L4R5ZI-P

  • Add Example projects illustrating the usage of the external SMPS for lower power consumption in Run and after Stop0 and Standby modes.

STM32L476G-EVAL, NUCLEO-L453RE, 32STM32L496GDISCOVERY 

  • Fix Zero Length Packet (ZLP) issue in Applications\USB_Device\CDC_Standalone

Middleware updates

  • FreeRTOS update to support MPU feature

Utilities updates

STM32Nucleo_Power_GUI 

  • Add binary for NUCLEO-L4R5ZI-P boards with external SMPS to demonstrate low power performance
  • All binaries renamed to match board product names

Contents

Projects

The STM32CubeL4 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 release notes (updates in bold) 

32L476GDISCOVERY

32L496GDISCOVERY

32L4R9IDISCOVERY

B-L475E-IOT01A

NUCLEO-L4R5ZI

NUCLEO-L4R5ZI-P

NUCLEO-L432KC

NUCLEO-L433RC-P

NUCLEO-L452RE

NUCLEO-L452RE-P

NUCLEO-L476RG

NUCLEO-L496ZG

NUCLEO-L496ZG-P

STM32L4R9I-EVAL

STM32L476G-EVAL

WIN32

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.20 + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.24a+ Pack Keil STM32L4+_DFP.0.0.5
  • System Workbench STM32 (SW4STM32) toolchain V2.1

Tools

  • ST-Link Utility V4.1.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01,MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01A board RevB (MB1297)
  • STM32L4R9I Evaluation boardRevB (MB1313 B-03)
  • STM32L4R9I Discovery boardRevC (MB1311 C-01)


Known limitation 

  • ARM Compiler 6 (AC6) compliancy (planned for future release)
  • MDK-ARM/SW4STM32 projects are not available for the STM32L4R9I-EVAL and STM32L4R9I-Discovery demonstrations (planned for future release)
  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration

Main Changes

Official release to support STM32L4R9I-EVAL (MB1313) and STM32L4R9I-Discovery (MB1311) boards

  • Maintenance release of CMSIS Device files, HAL and LL drivers
  • New BSP drivers for STM32L4R9I-EVAL and STM32L4R9I-Discovery boards
  • More than 90 examples, applications and graphical demonstrations for STM32L4R9I-EVAL and STM32L4R9I-Discovery boards

CMSIS Device updates

stm32l4r5xx.h, stm32l4r7xx.h, stm32l4r9xx.h, stm32l4s5xx.h, stm32l4s7xx.h and stm32l4s9xx.h devices description files

  • Fix SDMMC_STA_DPSMACT and SDMMC_STA_CPSMACT definitions

stm32l4r5xx.h and stm32l4s5xx.h description files

  • Remove LTDC peripheral definitions as LTDC not available on STM32L4R5xx/STM32L4S5xx devices

HAL && LL Drivers  updates

HAL generic driver

  • Fix compilation issue with ARMCC --gnu option on __packed declaration in stm32l4xx_hal_def.h

HAL ADC  driver 

  • Reuse LL ADC definitions
  • Fix MISRA C-2004 rule 19.10

HAL DSI  driver 

  • Fix timing issue at highest optimization level on IAR on DSI Host, DSI Wrapper, DSI PLL and DSI regulator enable/disable macros 
  • Add macro __HAL_DSI_RESET_HANDLE_STATE()

HAL FLASH  driver 

  • HAL_FLASH_Unlock() shall not return an error when Flash already unlocked

HAL I2C  driver 

  • Fix race condition in HAL_I2C_Master_Receive() and HAL_I2C_Slave_Receive()
  • Fix RD_WRN bit management in case of I2C_NO_STARTSTOP request

HAL OSPI  driver 

  • Add note on limitation of HAL_OSPI_AutoPolling() and HAL_OSPI_AutoPolling_IT() usage in octal mode (cf. Errata Sheet)
  • Fix compilation warning in C++

HAL QSPI  driver 

  • Fix MISRA C-2004 rules 10.3, 11.4 and 12.6

HAL RCC  driver 

  • Update SDMMC1 clock source selection on STM32L4Rx/STM32L4Sx devices to select PLL divider "P" output instead of internal multiplexor on MSI, HSI48, PLLSAI1 or PLL "Q" outputs as SDMMC1 kernel clock source
  • Fix __HAL_RCC_GPIOB_IS_CLK_ENABLED() macro definition

HAL SDMMC  driver 

  • Fix management of peripheral flags depending on command or data transfers.

HAL SMBUS  driver 

  • Fix RD_WRN bit management in case of SMBUS_NO_STARTSTOP request

  • LL DAC  driver 
  • Add missing definition for external triggers from TIM and LPTIM instances
  • LL DMA2D  driver 
  • Fix CodeSonar warning in LL_DMA2D_StructInit()
  • LL I2C  driver 
  • Fix RD_WRN bit management in case of LL_I2C_GENERATE_NOSTARTSTOP request in LL_I2C_HandleTransfer()
  • LL RCC  driver 
  • Update SDMMC1 clock source selection on STM32L4Rx/STM32L4Sx devices to select PLL divider "P" output instead of internal multiplexor on MSI, HSI48, PLLSAI1 or PLL "Q" outputs as SDMMC1 kernel clock source
  • Add LL_RCC_SetSDMMCKernelClockSource(), LL_RCC_GetSDMMCKernelClockSource() and LL_RCC_GetSDMMCKernelClockFreq() APIs

BSP Drivers updates

BSP STM32L4R9I_EVAL

  • BSP drivers for user leds, button, joystick, audio (playback and record), display (TFT LCD RGB 480x272 and round AMOLED DSI 390x390), external memories (Octal Flash, Octal HyperRAM, NOR, SRAM and EEPROM), power consumption measurement (Idd), microSD card and touchscreen

BSP STM32L4R9I-Discovery

  • BSP drivers for user leds, joystick, audio (playback and record), display (round AMOLED DSI 390x390), external memories (Octal Flash and asynchronous PSRAM), power consumption measurement (Idd), microSD card, touchscreen and camera

Projects updates

STM32L4R9I_EVAL projects

  • HAL TemplateandLL Templateto provide 120Mhz maximum system clock frequency
  • 54 Example projects illustrating the usage of the BSP drivers, the HAL ADC, CRC, DAC, DFSDM, DMA2D, DSI (with GFXMMU), FLASH, FMC, GPIO, I2C, IWDG, LPTIM, LTDC, OPAMP, OSPI, RCC, RNG, RTC, SAI, TIM, UART and WWDG under  Project/STM32L4R9I_EVAL/Examples
  • 14 Applications demonstrating the integration of Middlewares: FatFs, FreeRTOS, STemWin, TouchSensing, USB_Host and USB_Device libraries under  Project/STM32L4R9I_EVAL/Applications
  • 2 Graphical demonstrations based on STemWin, TouchGFX and EmbeddedWizard graphical solutions under   Project/STM32L4R9I_EVAL/Demonstrations (one demonstration forAMOLED round DSI display (MB1314), the other forTFT LCD RGB display (MB1315)).

STM32L4R9I-Discovery projects

  • HAL TemplateandLL Templateto provide 120Mhz maximum system clock frequency
  • 16 Example projects illustrating the usage of the BSP drivers, the HAL ADC, DFSDM, DSI (with GFXMMU), FLASH, LPTIM, OSPI, RCC, RTC and SAI under  Project/STM32L4R9I-Discovery/Examples
  • 6 Applications demonstrating the integration of Middlewares: FatFs, FreeRTOS, STemWin, USB_Host and USB_Device libraries under  Project/STM32L4R9I-Discovery/Applications
  • 1 Graphical demonstration based on STemWin and third parties graphic deliveries (Embedded Wizard from Tara Systems and TouchGFX from Draupner Graphics) under  Project/STM32L4R9I-Discovery/Demonstrations

  • STM32L4R5ZI-Nucleo projects
  • Add Example projects illustrating the usage of the HAL FLASH, RCC and RTC under  Project/STM32L4R5ZI-Nucleo/Examples

Contents

Projects

The STM32CubeL4 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 release notes (updates in bold) 

B-L475E-IOT01

STM32L4R5ZI-Nucleo

STM32L4R9I_EVAL

STM32L4R9I-Discovery

STM32L432KC-Nucleo

STM32L433RC-Nucleo

STM32L476G-Discovery

STM32L476G_EVAL

STM32L476RG-Nucleo

STM32L496G-Discovery

STM32L496ZG-Nucleo

WIN32

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 with patch + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.24a+ Pack Keil STM32L4+_DFP.0.0.3
  • System Workbench STM32 (SW4STM32) toolchain V2.1

Tools

  • ST-Link Utility V4.1.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01 board RevB (MB1297)
  • STM32L4R9I Evaluation boardRevB (MB1313 B-03)
  • STM32L4R9I Discovery boardRevC (MB1311 C-01)


Known limitation 

  • MDK-ARM/SW4STM32 projects are not available for the STM32L4R9I-EVAL and STM32L4R9I-Discovery demonstrations (planned for next release)
  • SW4STM32 project is not provided for STM32L476G-EVAL demonstration

Main Changes

Official release to support STM32L4R5xx, STM32L4R7xx,STM32L4R9xx,STM32L4S5xx,STM32L4S7xxandSTM32L4S9xx devices

  • New DSI, OctoSPI (OSPI), GFXMMU and LTDC peripherals 
  • Higher RAM size to improve graphic capabilities

CMSIS Device updates

  • Add device description & startup files for new device defines STM32L4Rxand STM32L4Sx

HAL && LL Drivers  updates

HAL DSI driver (NEW) :stm32l4xx_hal_dsi.h/.c files

HAL GFXMMU driver (NEW) :stm32l4xx_hal_gfxmmu.h/.c files

HAL LTDC driver (NEW) :stm32l4xx_hal_ltdc.h/.c and extensionstm32l4xx_hal_ltdc_ex.h/.c files

HAL OSPI driver  (NEW) :stm32l4xx_hal_ospi.h/.c files

HAL generic driver

  • Add HAL_GetUIDw0(), HAL_GetUIDw1() and HAL_GetUIDw2() APIs
  • Default HAL_Delay() implementation updated to insure minimum requested delay
  • Add __HAL_SYSCFG_SRAM2_WRP_0_31_ENABLE() and __HAL_SYSCFG_SRAM2_WRP_32_63_ENABLE() macros to set respectively SRAM2 page protection attribute for page 0 to 31 and page 32 to 63

HAL CAN  driver

  • Add FIFOs overrun error management (new error codes HAL_CAN_ERROR_FOV0 and HAL_CAN_ERROR_FOV1)

HAL CRYP  driver

  • Fix zero padding in case of Data type
  • Fix phase setting related to payload suspension
  • Fix to not be too restrictive on input parameters in HAL_CRYPEx_AES_Auth() and  HAL_CRYPEx_AES_Auth_DMA()

HAL DAC driver

  • Fix Sample & Hold configuration in case of multi-channel
  • Rename DAC_HIGH_FREQUENCY_INTERFACE_MODE_ENABLE to DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ

HAL DMA  driver

Fix DMAMUX synchronization signal configuration in HAL_DMAEx_ConfigMuxSync()

Support of DMAMUX1 peripheral via new DMA Extension APIs

  • HAL_DMAEx_ConfigMuxRequestGenerator()
  • HAL_DMAEx_EnableMuxRequestGenerator(), HAL_DMAEx_DisableMuxRequestGenerator()
  • HAL_DMAEx_ConfigMuxSync()
  • HAL_DMAEx_MUX_IRQHandler()

HAL DFSDM driver extension (new stm32l4xx_hal_dfsdm_ex.h/.c)

  • New APIs HAL_DFSDMEx_ChannelSetPulsesSkipping() andHAL_DFSDMEx_ChannelGetPulsesSkipping()

HAL DFSDM  driver

  • Fix cast issue to return possible negative value in HAL_DFSDM_FilterGetRegularValue(), HAL_DFSDM_FilterGetInjectedValue(), HAL_DFSDM_FilterGetExdMaxValue() and HAL_DFSDM_FilterGetExdMinValue()

HAL FLASH driver

  • Add new LVE pin management in HAL_FLASHEx_ConfigLVEPin()
  • Fix timeout issue in private FLASH_WaitForLastOperation() API
  • Fix error status of HAL_FLASHEx_OBProgram()

FMC driver

  • New field NBLSetupTime added in FMC_NORSRAM_InitTypeDef structure
  • New field DataHoldTime added in FMC_NORSRAM_TimingTypeDef structure

HAL HASH  driver

  • Update of context swap mechanism implemented in HAL_HASH_DMAFeed_ProcessSuspend() when input data are fed to the IP by DMA

HAL HCD/PCD driver

  • Add support ofSTM32L4R5xx/STM32L4R7xx/STM32L4R9xx/STM32L4S5xx/STM32L4S7xx/STM32L4S9xx devices

HAL IRDA  driver

  • Add Clock Prescaler management for STM32L4Rx/STM32L4Sx devices only

    • IRDA_InitTypeDef structure update to add ClockPrescaler parameter

HAL PCD driver

  • Fix USB PCD lock/unlock and flush TX fifo during device reset

HAL PWR  driver

  • Add PWR_REGULATOR_VOLTAGE_SCALE1_BOOST new parameter value for HAL_PWREx_ControlVoltageScaling() to use higher supply voltage (1.28V) with main regulator voltage in range 1 above 80Mhz (maximum frequency equals to 120Mhz)for STM32L4Rx/STM32L4Sx devices 

  • Add SRAM3 retention management APIs: HAL_PWREx_EnableSRAM3ContentRetention() and HAL_PWREx_DisableSRAM3ContentRetention()

  • Add DSI pins pull-down management

  • new HAL_PWREx_EnableDSIPinsPDActivation() and HAL_PWREx_DisableDSIPinsPDActivation() APIs

HAL RCC driver

  • Add clock management of new peripherals: DSI, GFXMMU, LTDC, OSPI1, OSPI2, OSPIM
  • Add OctoSPI peripherals clock source frequency computation in HAL_RCCEx_GetPeriphCLKFreq()
  • Fix issue with main PLL divider M value to allow 1 to 16 value range on STM32L4Rx/STM32L4Sx devices
  • FixSDMMC1 clock source selection possibilities inHAL_RCCEx_PeriphCLKConfig(), __HAL_RCC_SDMMC1_CONFIG() and __HAL_RCC_GET_SDMMC1_SOURCE()
  • Fix HAL_RCCEx_GetPeriphCLKFreq() to take into account PLLSAI1 and PLLSAI2 divider M values (1 to 16 range) onSTM32L4Rx/STM32L4Sx devices
  • Add undershoot/overshoot management in HAL_RCC_ClockConfig() when switching to/from system clock from main PLL above 80Mhz

HAL RNG driver

  • Add support of Clock Error detection and Bypass mode management in new RNG_InitTypeDef and HAL_RNG_Init() API

  • parameters ClockErrorDetection and BypassMode added in newRNG_InitTypeDef

HAL RTC  driver

  • Fix HAL_RTC_Init() to wait for synchronization and avoid RTC registers access timing issues

HAL SAI  driver

  • Add FIFO flush in HAL_SAI_DMAStop()

  • Fix HAL_SAI_Transmit_DMA() to follow the slave TX mode sequence described in the Reference Manual

  • HAL SD  driver

    • Major rework of HAL SD driver aligned with STM32F7 series

    • BlockSize parameter removed in Read&Write block APIs since 512 byte size is always read&write

HAL SMARTCARD  driver

  • Add Clock Prescaler management for STM32L4Rx/STM32L4Sx devices only

  • SMARTCARD_InitTypeDef structure update to add ClockPrescaler parameter

  • Add FIFO mode management for STM32L4Rx/STM32L4Sx devices only

  • new HAL_SMARTCARDEx_EnableFifoMode(), HAL_SMARTCARDEx_DisableFifoMode(), HAL_SMARTCARDEx_SetTxFifoThreshold(), HAL_SMARTCARDEx_SetRxFifoThreshold(), HAL_SMARTCARDEx_RxFifoFullCallback() and HAL_SMARTCARDEx_TxFifoEmptyCallback() APIs

HAL SMBUS  driver

  • Add Analog and digital filter configuration APIs: HAL_SMBUS_ConfigAnalogFilter() and HAL_SMBUS_ConfigDigitalFilter() 
  • Add error management if occuring during STOP process

HAL SPI  driver

  • Add control of RXFIFO emty at end of transmissing in Master transmission 2 lines mode

HAL SWPMI  driver

  • Fix missing clock initialization before register update in HAL_SWPMI_Init()

HAL TIM  driver

  • Add TIM_TIM1_ETR_GPIO and TIM_TIM8_ETR_GPIO definitions
  • Add TIM_TIM16_TI1_MSI, TIM_TIM16_TI1_HSE_32 and TIM_TIM16_TI1_MCO definitions for STM32L4Rx/STM32L4Sx
  • Add new AutoReloadPreload parameter in TIM_Base_InitTypeDef (user code impacted)
  • Fix wrong MOE disable conditions with new macro __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY()

HAL UART  driver

  • Add Clock Prescaler management for STM32L4Rx/STM32L4Sx devices only

    • UART_InitTypeDef structure update to add ClockPrescaler parameter

    • Add FIFO mode management for STM32L4Rx/STM32L4Sx devices only

      • new HAL_UARTEx_EnableFifoMode(), HAL_UARTEx_DisableFifoMode(), HAL_UARTEx_SetTxFifoThreshold(), HAL_UARTEx_SetRxFifoThreshold(), HAL_UARTEx_RxFifoFullCallback() and HAL_UARTEx_TxFifoEmptyCallback() APIs
    • Add SPI Slave mode management for STM32L4Rx/STM32L4Sx devices only

      • new HAL_UARTEx_EnableSlaveMode(), HAL_UARTEx_DisableSlaveMode() and HAL_UARTEx_ConfigNSS()

HAL USART  driver (new stm32l4xx_hal_usart_ex.c)

  • Add Clock Prescaler management for STM32L4Rx/STM32L4Sx devices only

    • USART_InitTypeDef structure update to add ClockPrescaler parameter
  • Add FIFO mode management for STM32L4Rx/STM32L4Sx devices only

    • new HAL_USARTEx_EnableFifoMode(), HAL_USARTEx_DisableFifoMode(), HAL_USARTEx_SetTxFifoThreshold(), HAL_USARTEx_SetRxFifoThreshold(), HAL_USARTEx_RxFifoFullCallback() and HAL_USARTEx_TxFifoEmptyCallback() APIs
  • Add SPI Slave mode management for STM32L4Rx/STM32L4Sx devices only

  • new HAL_USARTEx_EnableSlaveMode(), HAL_USARTEx_DisableSlaveMode() and HAL_USARTEx_ConfigNSS()

LL DMAMUX  driver (NEW): stm32l4xx_ll_dmamux.h

All LL drivers update to remove usage of CMSIS POSITION_VAL() macro and resort to xx_Pospositionbit definition

LL ADC

  • Fix legacy APIs LL_ADC_REG_SetTrigSource() and LL_ADC_INJ_SetTrigSource()

LL BUS 

  • Add management of new peripherals: DSI, GFXMMU, LTDC, OSPI1, OSPI2, OSPIM

LL DMA

  • Fix simple write register access to clear DMA flags in LL_DMA_ClearFlag_XXX() APIs

LL DMAMUX

  • Fix MISRA C 2012 R.5.2. on long "symbol has the same initial 31 characters"

    • Rename LL_DMAMUX_REQUEST_xxx  to LL_DMAMUX_REQ_xxx
  • Rename LL_DMAMUX_xxx_POLARITY_yyy toLL_DMAMUX_xxx_POL_yyy

LL DMA2D

  • Add management of output swapping mode (regular or bytes two by two) and line offset mode (pixel or byte)

LL EXTI 

  • Add management of EXTI line 40 (I2C4)

LL I2C

  • Fix LL_I2C_Init() to not set OAEN1 bit when Own Address 1 value is 0

LL LPUART / LL USART

  • Add management of Rx FIFO and Tx FIFO

LL PWR

  • Add SRAM3 retention management APIs 

    • LL_PWR_EnableSRAM3Retention(), LL_PWR_DisableSRAM3Retention() and LL_PWR_IsEnabledSRAM3Retention()
  • Add voltage range 1 boost mode APIs

    • LL_PWR_EnableRange1BoostMode(),LL_PWR_DisableRange1BoostMode() and LL_PWR_IsEnabledRange1BoostMode()
  • For compatibility purpose accross STM32 series, rename LL_PWR_IsActiveFlag_VOSF() to LL_PWR_IsActiveFlag_VOS()

  • Add DSI pins pull-down management

    • new LL_PWR_EnableDSIPinsPDActivation(), LL_PWR_DisableDSIPinsPDActivation() and LL_PWR_IsEnabledDSIPinsPDActivation() APIs

LL RCC

  • Add management of new peripheral clock sources for DSI, LTDC, OSPI1, OSPI2 and SDMMC

  • Add new definitions for main PLL divider M values above LL_RCC_PLLM_DIV_8 and up to LL_RCC_PLLM_DIV_16 for STM32L4Rx/STM32L4Sx devices

  • Fix in __LL_RCC_CALC_PLLCLK_SAI_FREQ(), __LL_RCC_CALC_PLLSAI1_SAI_FREQ(), __LL_RCC_CALC_PLLSAI1_48M_FREQ(), __LL_RCC_CALC_PLLSAI1_ADC_FREQ(), __LL_RCC_CALC_PLLSAI2_SAI_FREQ()

  • Fix in LL_RCC_PLLSAI1_ConfigDomain_48M(), LL_RCC_PLLSAI1_ConfigDomain_SAI(), LL_RCC_PLLSAI1_ConfigDomain_ADC(), LL_RCC_PLLSAI1_GetP(), LL_RCC_PLLSAI2_ConfigDomain_SAI() and LL_RCC_PLLSAI2_GetP()

  • Fix LL_RCC_GetSDMMCClockFreq() to take into account all SDMMC1 possible clock sources

  • Add HSI48 oscillator clock source value for RNG and USB: 

    • LL_RCC_RNG_CLKSOURCE_HSI48 and update LL_RCC_GetRNGClockFreq()
    • LL_RCC_USB_CLKSOURCE_HSI48 and update LL_RCC_GetUSBClockFreq()

General fixes

  • Renaming of RCC_DFSDM1CLKSOURCE_PCLK to RCC_DFSDM1CLKSOURCE_PCLK2
  • Renaming of RCC_SWPMI1CLKSOURCE_PCLK to RCC_SWPMI1CLKSOURCE_PCLK1
  • Renaming of RCC_LPTIMxCLKSOURCE_PCLK to RCC_LPTIMxCLKSOURCE_PCLK1

LL RNG

  • Add Clock Error detection and Bypass mode management in new LL_RNG_InitTypeDef and new LL_RNG_Init() API

    • new LL_RNG_EnableClkErrorDetect(), LL_RNG_DisableClkErrorDetect() and LL_RNG_IsEnableClkErrorDetect()
    • new LL_RNG_EnableBypassMode(), LL_RNG_DisableBypassMode() and LL_RNG_IsEnabledBypassMode

LL RTC

  • LL_RTC_TIME_Get() and LL_RTC_DATE_Get() implementations optimization (single register read access)

LL SYSTEM

  • Add SRAM2 page write protection APIs: LL_SYSCFG_EnableSRAM2PageWRP_0_31() and LL_SYSCFG_EnableSRAM2PageWRP_32_63()

LL TIM

  • Fix definition of TIM break input polarity (inverse values LL_TIM_BKIN_POLARITY_LOW / LL_TIM_BKIN_POLARITY_HIGH)
  • Fix LL_TIM_EnableUpdateEvent(), LL_TIM_DisableUpdateEvent() and LL_TIM_IsEnabledUpdateEvent()

LL UTILS

  • Add management of new flash latency ranges in UTILS_SetFlashLatency()
  • Add undershoot managementwhen switching to system clock from main PLL above 80Mhzin LL_PLL_ConfigSystemClock_MSI(), LL_PLL_ConfigSystemClock_HSI() and LL_PLL_ConfigSystemClock_HSE()

Middlewares  updates

  • New FatFs R0.12c library
  • New STemWin V5.40 library

Projects updates

  • STM32L4R5ZI-Nucleo projects
  • HAL Template (release notes) andLL Template (release notes)
  • 41 example projects illustrating the usage of the HAL ADC, CRC, HASH, I2C, PWR, RNG and SPI under  Project/STM32L4R5ZI-Nucleo/Examples
  • 5 Applications demonstrating the integration of Middlewares: FreeRTOS / USB_Host and USB_Device libraries underProject/STM32L4R5ZI-Nucleo/Applications
  • 1 demonstration with Adafruit shield under Project/STM32L4R5ZI-Nucleo/Demonstrations

Contents

Projects

The STM32CubeL4 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 release notes (updates in bold) 

B-L475E-IOT01

STM32L4R5ZI-Nucleo

STM32L432KC-Nucleo

STM32L433RC-Nucleo

STM32L476G-Discovery

STM32L476G_EVAL

STM32L476RG-Nucleo

STM32L496G-Discovery

STM32L496ZG-Nucleo

WIN32

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 with patch + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.24a+ Pack Keil STM32L4+_DFP.0.0.3
  • System Workbench STM32 (SW4STM32) toolchain V2.0
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.4.2

Tools

  • ST-Link Utility V4.1.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L4Rx/L4Sx devices Rev1
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L433RC Nucleo kit RevA (MB1319 A-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L4R5ZI Nucleo kit (MB1312/L A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01 board RevB (MB1297)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL demonstrations

Main Changes

Patch release to deliver  external SMPS PWR examples for STM32L433RC and STM32L452RE

CMSIS Device updates to fix issues in

  • stm32l451xx.h, stm32l452xx.h, stm32l462xx.h description files

    • Remove EXTI_IMR2_IM34 and EXTI_EMR2_IM34 bits (no SWPMI EXTI line)
  • stm32l432xx.h, stm32l442xx.h, stm32l452xx.h, stm32l462xx.h description files

    • Remove EXTI_IMR2_IM36 and EXTI_EMR2_IM36 bits from STM32L4x2x devices (no PVM2 EXTI line)
  • stm32l431xx.h, stm32l432xx.h, stm32l442xx.h, stm32l451xx.h, stm32l452xx.h, stm32l462xx.h, stm32l471xx.h, stm32l475xx.h, stm32l485xx.h description files

  • Remove EXTI_IMR2_IM39 and EXTI_EMR2_IM39 bitsfromSTM32L4x1x,STM32L4x2x and STM32L4x5xdevices(no LCD EXTI line)

  • All stm32l4XXxx.h device description files

    • Remove erroneous SRAM2_BB_BASE definition
    • Add missing EXTI_EMR2_EM constants
    • Add missing TIM8 check in debug macro IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE() devices where TIM8 is present

HAL && LL Drivers  updates to fix issues in

HAL CAN  driver

  • Add overrun error management by the error callback

HAL CRC  driver

  • Update of HAL_CRCEx_Polynomial_Set() to return an error when a non-supported polynomial length is passed as parameter

HAL CRYP  driver

  • Update zero padding management with respect to data type
  • Phase setting and comments correction in case of payload phase suspension
  • Correct input parameters tests in HAL_CRYPEx_AES_Auth() and HAL_CRYPEx_AES_Auth_DMA() APIs
  • Correct interruptions and IP enabling flags setting for key derivation in IT mode

HAL DCMI  driver

  • Comments correction to describe image size management when larger than maximum authorized DMA transfer size

HAL FLASH  driver

  • Add software work-around in HAL_FLASH_Unlock() to clear OPTVERR flag on STM32L45x/L46x parts when initially improperly raised
  • Correct timeout issue in FLASH_WaitForLastOperation()

HAL HASH  driver

  • Update of context swap mechanism implemented in HAL_HASH_DMAFeed_ProcessSuspend() when input data are fed to the IP by DMA

LL RCC

  • Correct duplication of aRCC_APBAHBPrescTable

LL RTC

  • Simplication of implementation of function LL_RTC_DATE_Get()

LL TIM

  • Fix LL_TIM_EnableUpdateEvent(), LL_TIM_DisableUpdateEvent() and LL_TIM_IsEnabledUpdateEvent()

Utilities updates

STM32Nucleo_Power_GUI 

  • Add binaries for STM32L452RE and STM32L433RC Nucleo boards with external SMPS to demonstrate low power performance

Development Toolchains and Compilers update


  • Support System Workbench STM32 (SW4STM32) toolchain V2.0


Contents

Projects

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

New projects

Updated projects

  • STM32L432KC-Nucleo

    • Applications
    • USB_Devices UID address error fix (release notes)
  • STM32L452RE-Nucleo

    • All

      • Update SW4STM32 environments
    • HAL Examples

      • PWR external SMPS examples creation and PWR_STANDBY_RTC SW4STM32 Linux compilation error fix(release notes)
    • Applications
  • STM32L476_EVAL

    • Applications 

      • USB_Devices UID address and SW4STM32 Linux compilation error fix(release notes)
    • Demonstrations

      • USB_Devices UID address and SW4STM32 Linux compilation error fix(release notes)
  • STM32L476G-Discovery

    • Applications
  • STM32L476RG-Nucleo

    • HAL Examples 

      • SPI_HalfDuplex_ComPollingSW4STM32 Linux compilation error fix(release notes)
  • STM32L496G-Discovery

    • Applications 

      • USB_Devices UID address and SW4STM32 Linux compilation error fix (release notes)
    • Demonstrations 

  • STM32L496ZG-Nucleo

    • HAL Examples

      • PWR_STANDBY_RTC SW4STM32 Linux compilation error fix (release notes)
  • B-L475E-IOT01

    • Applications

Drivers

Main Changes

Add support of B-L475E-IOT01 board with project templates, examples and applications

CMSIS Device updates

  • stm32l496xx.handstm32l4a6xx.hdevice description files

  • FIREWALL

    • Fix FW_VDSSA_ADD_Msk and FW_VDSL_LENG_Msk definitions
  • TIM16

    • Fix TIM16_OR1_TI1_RMP_Msk definition

HAL && LL Drivers  updates

HAL DAC  driver

  • Fix Sample & Hold configuration in case of multi-channel

HAL HASH  driver

  • Fix to ensure proper DMA-based HASH processing suspension/resumption

HAL PCD  driver

  • Fix USB PCD lock/unlock and flush TX fifo during device reset

HAL RTC  driver

  • Add wait for synchronization in HAL_RTC_Init() to insure RTC time initialization

LL ADC

  • Fix legacy APIs LL_ADC_REG_SetTrigSource() and LL_ADC_INJ_SetTrigSource()

LL DMA

  • Write only operation on IFCR register

BSP Drivers

  • Add new BSP driver for B-L475E-IOT01 board (sensors and quadSPI)
  • Add new BSP components for HTS221, LIS3MDL, LPS22HB and LSM6DSL sensors and M24SR NFC

Middleware updates

Upgrade to FreeRTOS V9.0.0 (ST modified 20170303)

  • Update CMSIS RTOS drivers to support both CMSIS Core V4.x and V5.x

Projects updates

  • Add 14projects forB-L475E-IOT01 board  under \Projects\B-L475E-IOT01:

    • Templates, Templates_LL, BSP Example and Applications (BLE, NFC, Proximity, SubGHz, WiFi, FreeRTOS, USB_Host and USB_Device)
  • Projects/STM32L476G-EVAL and STM32L476G-Discovery

    • Fix MSI configuration in USB Device applications
  • Projects/STM32L452RE-Nucleo, STM32L476G-EVAL and STM32L496G-Discovery

    • Update USB Device CDC descriptor for Windows 10
  • Projects/STM32L476RG-Nucleo

    • PWR_STOP1: Ensure previous flash latency is set when re-enabling the PLL as system clock source on return from STOP1 mode

Utilities updates

  • STM32Nucleo_Power_GUI

    • Add binary for STM32L452RE Nucleo board low power performances

Contents

Projects

The STM32CubeL4 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 release notes (updates in bold) 

B-L475E-IOT01

STM32L432KC-Nucleo

STM32L476G-Discovery

STM32L476G_EVAL

STM32L476RG-Nucleo

STM32L496G-Discovery

STM32L496ZG-Nucleo

WIN32

Drivers

Middlewares

Utilities


Development Toolchains and Compilers

IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4

RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23+ Pack Keil STM32L4xx_DFP.1.2.3

System Workbench STM32 (SW4STM32) toolchain V1.14

Known limitations:

A workaround is required to debug the B-L475E-IOT01 board with System Workbench V1.14

  • In case of B-L475E-IOT01 rev C, it is needed to avoid "debug under reset" method. A specific OpenOCD configuration file STM32L475VG.cfg is provided under SW4STM32 directory with configuration "reset_config none separate".
  • In case of B-L475E-IOT01 rev D, the debug under reset works. So it is needed to comment line "reset_config none separate" in STM32L475VG.cfg.
  • Furthermore, some versions of System Workbench may have problem to read the OpenOCD configuration file if it is placed in project directory. In that case, copy STM32L475VG.cfg outside of sources directory (for example to c:\) and use it from here (in System Workbench menu "Run/Debug configuration", create or choose STM32L475 configuration, go to Debugger Tab, Select "Script/Use local script", indicate the copied script in the "Configuration Script" field).

Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.4.2

Tools

  • ST-Link Utility V4.0.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards.

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L49x/L4Ax devices Rev2
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)
  • B-L475E-IOT01 board RevB (MB1297)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL demonstrations

Main Changes

Official release to support STM32L496xx and STM32L4A6xx devices

  • New DCMI, DMA2D, HASH peripherals 
  • Higher RAM size to improve graphic capabilities

Release of STM32 Nucleo PWR GUI tool

  • Quick assessment of STM32L4 low power performance

CMSIS Device updates

  • Add device description & startup files for new device defines STM32L496xxand STM32L4A6xx

HAL && LL Drivers  updates

HAL DCMI  driver (NEW) : stm32l4xx_hal_dcmi.h/.c files

HAL DMA2D  driver (NEW) : stm32l4xx_hal_dma2d.h/.c files

HAL HASH  driver (NEW) : stm32l4xx_hal_hash.h/.c and extension stm32l4xx_hal_hash_ex.h/.c files

The following changes done on the HAL drivers require an update on the application code based on older HAL versions

HAL SD update

Overall rework of the driver for a more efficient implementation

  • Modify initialization API and structures
  • Modify Read / Write sequences: separate transfer process and SD Cards state management 
  • Adding interrupt mode for Read / Write operations

  • Update the HAL_SD_IRQHandler function by optimizing the management of interrupt errors

Refer to the following examples in STM32CubeL4 firmware package V1.7.0 to identify the changes: BSP example and USB_Device/MSC_Standalone application

HAL generic update

stm32l4xx_hal_conf_template.h updated for new HAL DCMI, HAL DMA2D and HAL HASH

  • #define HAL_DCMI_MODULE_ENABLED
  • #define HAL_DMA2D_MODULE_ENABLED
  • HAL_HASH_MODULE_ENABLED

HAL_Delay() updated to guarantee minimum delay

HAL CAN driver

  • Add support of CAN2 instance

HAL GPIO driver

  • Add support of GPIOI port and STM32L496xx/STM32L4A6xx alternate functions

HAL PWR driver

  • Add support of GPIOI port pull-up/pull-down state in Standby and Shutdown modes

HAL QSPI driver

  • Fix QSPI_HandleTypeDef structure to handle data size as uint32_t

HAL RCC driver

  • Add new macros for new peripherals clock and reset for CAN2, DCMI, DMA2D, GPIOI and HASH

  • Fix HAL_RCCEx_GetPeriphCLKFreq() to compute peripheral frequencies from MSI frequency

  • Fix HAL_RCCEx_GetPeriphCLKFreq() to compute DFSDM1 frequency from PCLK2 frequency

  • Rename some peripheral clock sources to specify the corresponding APB clock:

    • RCC_DFSDM1CLKSOURCE_PCLK to RCC_DFSDM1CLKSOURCE_PCLK2
    • RCC_SWPMI1CLKSOURCE_PCLK to RCC_SWPMI1CLKSOURCE_PCLK1
    • RCC_LPTIMxCLKSOURCE_PCLK to RCC_LPTIMxCLKSOURCE_PCLK1

HAL RTC driver

  • Fix wrong clear of time and date registers in HAL_RTCEx_TamperTimeStampIRQHandler()

HAL SPI driver

  • Add internal timeout to exit HAL_SPI_Abort() and HAL_SPI_Abort_IT() 

HAL TIM driver

  • Fix wrong MOE disable conditions with new macro __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY()

HAL SWPMI driver

  • Fix peripheral clock management sequence in HAL_SWPMI_Init()

  • LL DMA2D driver(NEW)

  • LL BUS 

    • Add management of new peripherals: CAN2, DCMI, DMA2D, GPIOI and HASH
  • LL PWR

    • For compatibility purpose accross STM32 series, rename LL_PWR_IsActiveFlag_VOSF() to LL_PWR_IsActiveFlag_VOS()
  • LL RCC

    • Fix LL_RCC_GetDFSDMClockFreq() to compute frequency from PCLK2 frequency
  • LL SDMMC

    • Add new internal functions after HAL SD rework
  • LL TIM

    • Fix definition of TIM break input polarity (fix values LL_TIM_BKIN_POLARITY_LOW / LL_TIM_BKIN_POLARITY_HIGH)

Middleware updates

  • Upgrade to FatFS R0.11 ST modified 20170214
  • Upgrade to FreeRTOS V9.0.0ST modified 20160930

Projects updates

  • Add about 260projects Examples, Applications (FreeRTOS, FatFs, USB_Device,USB_Host, STemWin) 
  • New demonstration with Adafruit shieldfor STM32L496ZG-Nucleo
  • New graphic demonstration for STM32L496G-Discovery with Third Parties graphic deliveries (Embedded Wizard from Tara Systems and TouchGFX from Draupner Graphics)

Contents

Projects

The STM32CubeL4 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 release notes (updates in bold) 

STM32L432KC-Nucleo

STM32L476G-Discovery

STM32L476G_EVAL

STM32L476RG-Nucleo

STM32L496G-Discovery

STM32L496ZG-Nucleo

WIN32

Drivers

Middlewares

Utilities


Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.70.1 with patch + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.22+ Pack Keil STM32L4xx_DFP.1.2.3
  • System Workbench STM32 (SW4STM32) toolchain V1.10
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.4.2

Tools

  • ST-Link Utility V4.0.0 with support of QSPI external loader for STM32L476G_EVAL, STM32L476G-Discovery andSTM32L496G-Discoveryboards.

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L47x/L48x devices Rev4
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)
  • STM32L496ZG Nucleo kit (MB1312/L A-01, MB1312/S A-01)
  • STM32L496G Discovery board RevB (MB1261 B-01)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL demonstrations

Main Changes

Official release to support STM32L451xx, STM32L452xx and STM32L462xx devices

CMSIS Device updates

  • Add device description & startup files for new device defines STM32L451xx,STM32L452xxand STM32L462xx

HAL && LL Drivers  updates

Drivers update for new STM32L431xx,STM32L432xx, STM32L433xx, STM32L442xx and STM32L443xxdevices

  • Updated HAL drivers are mainly  HAL RCC (new I2C4), HAL FLASH, HAL DAC (only 1 channel)
  • Updated LL drivers are mainly  LL_BUS (new I2C4), LL I2C, LL DAC

HAL CRYP driver

  • HAL CRYP exported macros alignment with other STM32 series to use CRYP handle address as parameter in:

    • __HAL_CRYP_ENABLE(), [__HAL_CRYP_DISABLE(), __HAL_CRYP_SET_OPERATINGMODE(), __HAL_CRYP_SET_CHAININGMODE(), __HAL_CRYP_GET_FLAG(), __HAL_CRYP_CLEAR_FLAG(), __HAL_CRYP_GET_IT_SOURCE(), __HAL_CRYP_GET_IT(), __HAL_CRYP_CLEAR_IT(), __HAL_CRYP_ENABLE_IT() and __HAL_CRYP_DISABLE_IT()]{style=“font-size: 10pt; font-family:”Arial“,sans-serif; color: black;”}

HAL FLASH driver

  • Temporary data cache deactivation on 

    • Flash programming in HAL_FLASH_Program() and HAL_FLASH_Program_IT()
    • Flash erase in HAL_FLASHEx_Erase() and HAL_FLASHEx_Erase_IT()
    • To insure LSB/MSB address order in C compiler assembly output, split 64-bit programming in 2 double-word write operations

HAL I2C driver

  • Fix to reset HAL I2C handle LISTEN state option in transfer direction change with HAL_I2C_Slave_Sequential_Transmit_IT() and HAL_I2C_Slave_Sequential_Receive_IT()

HAL SMBUS driver

  • Add support of Zone read/write feature thanks to new XferOptions parameter values SMBUS_OTHER_FRAME_NO_PEC, SMBUS_OTHER_FRAME_WITH_PEC, SMBUS_OTHER_AND_LAST_FRAME_NO_PEC and SMBUS_OTHER_AND_LAST_FRAME_WITH_PEC that may be used in HAL_SMBUS_Master_Transmit_IT(), HAL_SMBUS_Master_Receive_IT(), HAL_SMBUS_Slave_Transmit_IT() and HAL_SMBUS_Slave_Receive_IT()

HAL RTC driver

  • Fix race conditions on EXTI flags clearing in HAL_RTC_AlarmIRQHandler(), HAL_RTCEx_TamperTimeStampIRQHandler() and HAL_RTCEx_WakeUpTimerIRQHandler()

LL I2C driver

  • Add I2C4 management in LL_I2C_DeInit()

LL SYSTEM driver

  • Application shall be responsible to write the correct key sequence in SYSCFG_SKR register prior to call LL_SYSCFG_EnableSRAM2Erase()

LL TIM driver

New APIs to insure BDTR register initialization in a single write operation 

  • LL_TIM_BDTR_StructInit()
  • LL_TIM_BDTR_Init()

LL UTILS driver

  • Fix LL_RCC_PLLSOURCE_HSE in LL_PLL_ConfigSystemClock_HSE()

Fix CodeSonar warnings in 

  • HAL ADC, HAL CRC, HAL CRYP, HAL I2C, HAL IRDA, HAL SMARTCARD, HAL SMBUS, HAL OPAMP, HAL RTC, HAL UART, HAL USART

Middleware updates

  • Upgrade toSTemWin library V5.32 

Projects updates

  • Add 100 projects Examples, Applications (FreeRTOS and USB_Device) and Demonstration with Adafruit shieldfor STM32L452RE-Nucleo
  • Add Low Layer project templates for all boards (see Low Layer examples migration in Documentation\STM32CubeL4GettingStarted.pdf)
  • All STemWin-based application projects for STM32L476G_EVAL updated to latestSTemWin library V5.32


Contents

Projects

The STM32CubeL4 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 release notes (updates in bold)

Drivers

Middlewares

Utilities


Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.70.1 with patch + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.20+ Pack Keil STM32L4xx_DFP.1.2.3
  • System Workbench STM32 (SW4STM32) toolchain V1.10
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.4.2

Tools

  • ST-Link Utility V3.9.0 with support of QSPI external loader for STM32L476G_EVAL and STM32L476G-Discovery boards.

Supported Devices and EVAL boards

  • STM32L43x/L44x devices Rev1
  • STM32L45x/L46x devices Rev2
  • STM32L47x/L48x devices Rev4
  • STM32L476G Evaluation boardRevC (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L452RE Nucleo kit RevC (MB1136 C-03)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL demonstrations

Main Changes

Patch release to fix issues in CMSIS Device STM32L4xx description files

  • Fix DAC_SR_BWST1 bit definition
  • Fix SDMMC_DCTRL_DBLOCKSIZE_2 and SDMMC_DCTRL_DBLOCKSIZE_3 bits definition

HAL and LL drivers

  • HAL ADC driver
    • No need to configure number of discontinuous conversions if discontinuous mode is not enabled
    • HAL_ADCEx_MultiModeConfigChannel() returns HAL_ERROR if no Slave instance defined
  • HAL DAC driver
    • Fix calibration with correct handling of DAC_SR_CAL_FLAGx bits in HAL_DACEx_SelfCalibrate()
  • HAL FLASH driver
    • Change in HAL_FLASHEx_OBGetConfig() to not return PCROP and/or WRP data if their respective areas are not defined
    • Fix error management in HAL_FLASH_IRQHandler() to simply call HAL_FLASH_OperationErrorCallback() instead of calling both HAL_FLASH_EndOfOperationCallback() and HAL_FLASH_OperationErrorCallback()
  • HAL I2C driver
    • Fix wrong state check in HAL_I2C_Master_Sequential_Transmit_IT()
    • Add new option I2C_FIRST_AND_NEXT_FRAME to manage a sequencewith start condition, address and data to transfer without a final stop condition allowing successive calls to HAL_I2C_Master_Sequential_Transmit_IT()
  • HAL IRDA driver
    • Add transfer abort functions and associated callbacks in interrupt mode
    • HAL_IRDA_Abort(), HAL_IRDA_AbortTransmit(), HAL_IRDA_AbortReceive(), HAL_IRDA_Abort_IT(), HAL_IRDA_AbortTransmit_IT(), HAL_IRDA_AbortReceive_IT(), HAL_IRDA_AbortCpltCallback(), HAL_IRDA_AbortTransmitCpltCallback() and HAL_IRDA_AbortReceiveCpltCallback()
    • IRQ Handler + DMA model optimizations
  • HAL RTC driver
    • Fix missing wakeup flag clear in HAL_RTCEx_SetWakeUpTimer_IT()  
  • HAL SMARTCARD driver
    • Add transfer abort functions and associated callbacks in interrupt mode
    • HAL_SMARTCARD_Abort(), HAL_SMARTCARD_AbortTransmit(), HAL_SMARTCARD_AbortReceive(), HAL_SMARTCARD_Abort_IT(), HAL_SMARTCARD_AbortTransmit_IT(), HAL_SMARTCARD_AbortReceive_IT(), HAL_SMARTCARD_AbortCpltCallback(), HAL_SMARTCARD_AbortTransmitCpltCallback() and HAL_SMARTCARD_AbortReceiveCpltCallback()
    • IRQ Handler + DMA model optimizations
  • HAL SMBUS driver
    • Fix issue on last data reception in host or device modes
  • HAL SPI driver
    • USE_SPI_CRC compilation define added to provide the mean to optimize the HAL SPI driver when CRC feature is not used (when CRC is used, application must be changed to set USE_SPI_CRC in stm32l4xx_hal_conf.h (see Inc\stm32l4xx_hal_conf_template.h))
    • Add transfer abort functions and associated callbacks in interrupt mode
    • HAL_SPI_Abort_IT()
    • HAL_SPI_AbortCpltCallback()
  • HAL SWPMI driver
    • Fix SWPMI peripheral errors management in DMA (resort to HAL_DMA_Abort_IT() and DMA XferAbortCallback in HAL_SWPMI_IRQHandler())
  • HAL UART driver
    • New APIs to abort UART tranfer with associated callbacks added 
    • HAL_UART_Abort(), HAL_UART_AbortTransmit(), HAL_UART_AbortReceive(), HAL_UART_Abort_IT(), HAL_UART_AbortTransmit_IT(), HAL_UART_AbortReceive_IT(), HAL_UART_AbortCpltCallback(), HAL_UART_AbortTransmitCpltCallback() and HAL_UART_AbortReceiveCpltCallback()
  • HAL USART driver
    • New APIs to abort USART tranfer with associated callbacks added
    • HAL_USART_Abort(), HAL_USART_Abort_IT() and HAL_USART_AbortCpltCallback()
  • LL COMP driver

    • Fix LL_COMP_INPUT_PLUS_IO3 definition 

Templates projects

  • Align stm32l4xx_hal_conf.h file aligned with latestSTM32L4xx_HAL_Driver template file.

Applications and Examples

  • Add PWR_ModeSelection example for STM32L432KC-Nucleo
  • Add 2 more LL COMP examples COMP_CompareGpioVsVrefInt_OutputGpio and COMP_CompareGpioVsVrefInt_Window_IT for STM32L476RG-Nucleo
  • Update all I2C HAL examples to add acknowlegment failure error management
  • Fix stack & heap sizes inMDK-ARM Project configuration of FatFS, IAP, STemWin, USB Host and USB Device applications
  • Fix few SW4STM32 and TrueSTUDIO Project configurations

Contents

Projects updates

Projects release notes

Drivers

Main Changes

Patch release to fix issues in

HAL ADC driver

  • Bypass multimode parameter check in debug mode depending on configuration

HAL CRC driver

  • HAL_CRC_DeInit() resets CRC_IDR register to reset value

LL BUS driver

  • Fix name LL_APB1_GRP1_PERIPH_USB

LL SYSTEM driver

  • Fix LL_DBGMCU_APB1_xxx / LL_DBGMCU_APB2_xxx definitions

Contents

Main Changes

Maintenance release version for STM32L431/432/433/442/443/471/475/476/485/486 lines

CMSIS Device

  • All device register description files enriched with _Pos and _Msk defines to be used with _VAL2FLD(field, value) and _FLD2VAL(field, value) from CMSIS Core (previous defines are kept for compatibility)

  • Update DFSDM peripheral instance and register definitions (named DFSDM1 peripheral from now instead of DFSDM)

  • Impact DFSDM / RCC / TIM peripheral bit definitions (details in CMSIS Device release notes)

  • User code impacted for HAL RCC macro DFSDM peripheral clock, IRQn and startup files

  • Rename DFSDMx_IRQn to DFSDM1_FLTx_IRQn for x=0,1,2 and 3 (filters)

  • Rename DFSDM channels and filters to refer to DFSDM1 peripheral instance with DFSDM1 prefix

  • DFSDM1_Channel0, DFSDM1_Channel1, ... DFSDM1_Channel7

  • DFSDM1_Filter0,DFSDM1_Filter1, ...,DFSDM1_Filter3

  • RenameDFSDMx_IRQHandler function entry points to DFSDM1_FLTx_IRQHandler for x=0,1,2 and 3 (filters)

HAL/LL Drivers

The following changes done on the HAL drivers require an update on the application code based on HAL V1.4.0

HAL Library enhancement for 

  • DMA process

  • Enable error interrupt when a DMA process is started (HAL I2C, QSPI, USART, UART, SMARTCARD, IRDA updated)

  • User application impacts are:

  • need to enable PPP peripheral interrupt in HAL_PPP_MspInit()

  • need to define HAL_PPP_ErrorCallback() API to be informed of peripheral error

  • Polling process

  • The user Timeout value must be estimated for the overall process duration

HAL RCC driver

  • Update in HAL_RCCEx_PeriphCLKConfig(): PLLSAI1InitTypeDef andPLLSAI2InitTypeDefenriched with respectively PLLSAI1Source, PLLSAI1M andPLLSAI2Source, PLLSAI2M to configure independentely PLLSAI1/PLLSAI2 from  system PLL:

    • Impact in user code application: for any PLLSAI1 or PLLSAI2 configuration inHAL_RCCEx_PeriphCLKConfig(), HAL_RCCEx_EnablePLLSAI1() and HAL_RCCEx_EnablePLLSAI2(), need to set respectively PLLSAI1Source, PLLSAI1M andPLLSAI2Source, PLLSAI2M
  • DFSDM peripheral renaming to DFSDM1 (compatibility preserved for legacy)

HAL I2C driver

  • Update end of DMA process and error management

HAL IWDG driver

  • New simplified HAL IWDG driver 

    • API functions are: HAL_IWDG_Init() and HAL_IWDG_Refresh()

HAL WWDG driver

  • New simplified HAL WWDG driver

    • New field EWIMode in WWDG_InitTypeDef to specify need for Early Wakeup Interrupt

    • API functions are: HAL_WWDG_Init(), HAL_WWDG_MspInit(), HAL_WWDG_Refresh(), HAL_WWDG_IRQHandler() and HAL_WWDG_EarlyWakeupCallback()

HAL DMA driver

  • Global driver code optimization to reduce memory footprint 
  • New APIs HAL_DMA_RegisterCallback() andHAL_DMA_UnRegisterCallback()to register/unregister the different possible callbacks identified by enum typedef HAL_DMA_CallbackIDTypeDef
  • New API HAL_DMA_Abort_IT() recommended for interrupt context

HAL CRYP driver

  • Software workaround for AES issue on GCM encryption with payload length not a multiple of 128 bits
  • Add support of payload length not multiple of 32 bits

HAL SWPMI driver

  • Update HAL_SWPMI_Init() intializationn sequence for voltage class B 

LL I2C driver

  • SMBus support added: new field Peripheral mode in LL_I2CInitTypeDef 

    • Application code using LL_I2C_Init() is impacted for standard I2C usage
    • Full set of new LL APIs releated to SMBus

LL PWR driver

  • New APIs LL_PWR_EnterLowPowerRunMode() andLL_PWR_ExitLowPowerRunMode() 

BSP Drivers

  • STM32L476G_EVAL: Update BSP audio and BSP SD to set PLLSAI1 source and divider M for HAL_RCCEx_PeriphCLKConfig()
  • STM32L476G_Discovery: Update BSP audio to set PLLSAI1 source and divider M for HAL_RCCEx_PeriphCLKConfig()

Projects update

DFSDM_AudioRecord and SAI_AudioPlay examples:

  • Update to configure PLLSAI1Source and PLLSAI1M prior to call HAL_RCCEx_PeriphCLKConfig()

HAL I2C examples:

  • Update for end of DMA process and error management 

HAL IWDG IWDG_Reset/IWDG_WindowMode and WWDG WWDG_Example examples:

  • Update in line with simplified HAL IWDG and HAL WWDG new APIs

FreeRTOS Applications and Demonstrations:

General update to use TIM peripheral as HAL Library 1ms timebase and let SysTick for FreeRTOS

  • new stm32l4xx_hal_timebase_tim.c added in Projects to implement HAL_InitTick(), HAL_SuspendTick() and HAL_ResumeTick()

HAL_TimeBase example renamed to HAL_TimeBase_TIM and includesnew stm32l4xx_hal_timebase_tim.c

SMARTCARD_T0:

  • Fix guardtime value

For the complete list of changes, please refer to the release notes of each firmware components (in bold below)


Contents

Projects

The STM32CubeL4 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 release notes

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.60
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17+ Pack Keil STM32L4xx_DFP.1.2.0

  • System Workbench STM32 (SW4STM32) toolchain V1.8
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.4.2

Tools

  • ST-Link Utility V3.9.0 with support of QSPI external loader for STM32L476G_EVAL and STM32L476G-Discovery boards.

Supported Devices and EVAL boards

  • STM32L43x devices Rev1
  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations

Main Changes

Official release to support STM32L431xx,STM32L432xx,STM32L433xx,STM32L442xx andSTM32L443xx devices

CMSIS Device

  • Add device description & startup files for new device defines STM32L431xx,STM32L432xx, STM32L433xx, STM32L442xx and STM32L443xx

HAL/LL Drivers

Drivers update for new STM32L431xx,STM32L432xx, STM32L433xx, STM32L442xx and STM32L443xxdevices

  • CRS peripheral handled as an extension of HAL RCC driver and in LL CRS driver

Improvement of baud rate computation in HAL IRDA/SMARTCARD/UART/USART and LL LPUART/USART

BSP Drivers

  • Add new BSP driver for STM32L432KC-Nucleo board

Middleware update

  • Upgrade to FreeRTOS V8.2.3 with fixes in CMSIS OS layer

Projects update

  • Add 68 projects Examples/Applications/Demonstrations for 7 segment Gravitech display shield for STM32L432KC-Nucleo
  • Add USB Device applicationsfor STM32L476G-Discovery boards
  • Add QSPI_PreInitConfig example for early QuadSPI configuration from SystemInit() on STM32L476G-EVAL and STM32L476G-Discovery boards
  • Add I2C_TwoBoards_RestartComIT and I2C_TwoBoards_RestartAdvComIT examples for STM32L476RG-Nucleo and STM32L476G-EVAL boards

For the complete list of changes, please refer to the release notes of each firmware components (in bold below)


Contents

Projects

The STM32CubeL4 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 release notes

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.50.3
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17+ Pack Keil STM32L4xx_DFP.1.2.0

  • System Workbench STM32 (SW4STM32) toolchain V1.8
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.3.1

Tools

  • ST-Link Utility V3.9.0 with support of QSPI external loader for STM32L476G_EVAL and STM32L476G-Discovery boards.

Supported Devices and EVAL boards

  • STM32L43x devices Rev1
  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144 C-01)
  • STM32L476G Discovery board RevC (MB1184 C-01)
  • STM32L432KC Nucleo kit RevC (MB1180 C-01)
  • STM32L476RG Nucleo kit RevC (MB1136 C-03)


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations

Main Changes

Update Low Layer drivers to add some new LL API(s) and minor changes  (release notes)

  • Add initialization/de-initialization low level API(s) in new stm32l4xx_ll_ppp.c files (under USE_FULL_LL_DRIVER switch)

HAL I2C update

  • Add support of repeated start feature with the following new APIs

    • HAL_I2C_Master_Sequential_Transmit_IT(), HAL_I2C_Master_Sequential_Receive_IT() and  HAL_I2C_Master_Abort_IT(), 
    • HAL_I2C_Slave_Sequential_Transmit_IT() and HAL_I2C_Slave_Sequential_Receive_IT()
    • HAL_I2C_EnableListen_IT() and HAL_I2C_DisableListen_IT()
    • New user callbacks HAL_I2C_ListenCpltCallback() and HAL_I2C_AddrCallback()
  • Fix acknowledge failure error management (STOP being automatically generated)

  • Review state machine and provide new API  HAL_I2C_GetMode() to return HAL_I2C_MODE_MASTER, HAL_I2C_MODE_SLAVE or HAL_I2C_MODE_NONE

HAL SMARTCARD / UART / USARTand LL USART update

  • Add 0.5 stop bit support

HAL SD update

  • Fix SD card capacity calculation for cards with capacity over 4GBin HAL_SD_Get_CardInfo()

BSP  QSPI update for STM32L476G_EVAL and STM32L476G-Discovery

  • Deactivate automatic timeout in memory mapped mode

Projects update

  • Add new "Init" LL Examples to demonstrate new LL initialization API(s) under \Projects\STM32L476RG-Nucleo\Examples_LL

  • \ADC\ADC_ContinuousConversion_TriggerSW_Init
  • \COMP\COMP_CompareWithInternalReference_IT_Init
  • \DAC\DAC_GenerateWaveform_TriggerHW_Init
  • \DMA\DMA_CopyFromFlashToMemory_Init
  • \EXTI\EXTI_ToggleLedOnIT_Init
  • \GPIO\GPIO_InfiniteLedToggling_Init
  • \I2C\I2C_OneBoard_Communication_IT_Init
  • \LPTIM\LPTIM_PulseCounter_Init
  • \LPUART\LPUART_WakeUpFromStop2_Init
  • \OPAMP\OPAMP_PGA_Init
  • \RTC\RTC_Alarm_Init
  • \SPI\SPI_OneBoard_HalfDuplex_DMA_Init
  • \SWPMI\SWPMI_Loopback_MultiSWBuffer_Init
  • \TIM\TIM_PWMOutput_Init
  • \USART\USART_Communication_Rx_IT_Init
  • Add few other LL Examples
  • \ADC\ADC_TemperatureSensor
  • \UTILS\UTILS_ConfigureSystemClock

STM2Cube Level 1 & 2 source files license model changed from "Liberty" to new license "Ultimate Liberty"


Contents

Projects

The STM32CubeL4 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 release notes

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.40.7 + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17+ST-Link

  • System Workbench STM32 (SW4STM32) toolchain v1.6 + ST-Link
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.3.1 + ST-Link

Supported Devices and EVAL boards

  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144-B01)
  • STM32L476G Discovery board RevC (MB1184-C01)
  • STM32L476RG Nucleo kit RevC


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations

Main Changes

Main HAL and LL Drivers updates  (release notes)

HAL PWR update (User application code impacted)

  • Stop 1 with main regulator renamed into Stop 0, to be aligned with latest version of Reference Manual

  • Change HAL_PWREx_EnterSTOP1Mode(uint32_t Regulator, uint8_t STOPEntry) intoHAL_PWREx_EnterSTOP1Mode(uint8_t STOPEntry)

    • Application code usingHAL_PWREx_EnterSTOP1Mode(PWR_LOWPOWERREGULATOR_ON, STOPEntry) must be updated to use HAL_PWREx_EnterSTOP1Mode(STOPEntry)
  • Add new API HAL_PWREx_EnterSTOP0Mode(uint8_t STOPEntry)

    • Application code usingHAL_PWREx_EnterSTOP1Mode(PWR_MAINREGULATOR_ON, STOPEntry) must be updated to use HAL_PWREx_EnterSTOP0Mode(STOPEntry)

LL PWR update (Userapplicationcode impacted)

  • LL PWR API change to add new Stop 0 mode and update Stop 1 mode definition
  • Change LL_PWR_SetPowerMode(uint32_t LowPowerMode) possible LowPowerMode values update 
  • LL_PWR_MODE_STOP1_LP_REGU renamed into LL_PWR_MODE_STOP1
    • Application code using LL_PWR_SetPowerMode(LL_PWR_MODE_STOP1_LP_REGU)must be updated to use LL_PWR_SetPowerMode(LL_PWR_MODE_STOP1)
  • LL_PWR_MODE_STOP1_MAIN_REGU renamed into LL_PWR_MODE_STOP0
    • Application code using LL_PWR_SetPowerMode(LL_PWR_MODE_STOP1_MAIN_REGU)must be updated to use LL_PWR_SetPowerMode(LL_PWR_MODE_STOP0)

HAL OPAMP update

  • Capability to run calibration despite PGA mode by switching temporary to standalone mode

HAL SAI update

  • Update SAI block synchronization selection (User application code impacted)

    • Replace uncomplete SAI_SYNCHRONOUS_EXT value for with SAI_SYNCHRONOUS_EXT_SAI1 and SAI_SYNCHRONOUS_EXT_SAI2
  • Add support of 24bits configuration in PCM protocol

  • Fix ambiguous clock strobing values in HAL_SAI_Init() according to ClockStrobing and AudioMode parameters

  • Fix in I2S protocol

HAL TSC update

  • Improve IODefault state management

BSP

BSP STM32L476G-EVAL update

  • BSP Audio updated to comply with HAL SAI updates
  • BSP IDD updated to comply with HAL PWR Stop 1 modes
  • Fix FMC timings in BSP NOR and SRAM

BSP STM32L476G-Discovery update

  • BSP Audio updated to comply with HAL SAI updates

Middlewares

  • No change

Projects

  • General update of Project examples impacted by HAL_PWREx_EnterSTOP1Mode() API change
  • SAI_AudioPlay and DFSDM_AudioRecord examples updated in line with HAL SAI correction
  • FMC_NOR and FMC_SRAM examples updated to fix FMC timings on STM32L476G-EVAL board
  • TSC_Sensing_1touchkey application update after HAL TSC IODefault state management change

Contents

Projects

The STM32CubeL4 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 release notes

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.40.3 + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.16+ST-Link

  • System Workbench STM32 (SW4STM32) toolchain v1.4 + ST-Link
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.3.1 + ST-Link

Supported Devices and EVAL boards

  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144-B01)
  • STM32L476G Discovery board RevC (MB1184-C01)
  • STM32L476RG Nucleo kit RevC


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations

Main Changes

Patch release for all Examples/Applications/Demonstrations projects fine-tuning

  • Set Flash prefetch off to match defaut system configuration (stm32l4xx_hal_conf.h files)

This release contains updated versions of the HAL drivers and Examples/Applications/Demonstrations projects, user needs simply to overwrite the old folders with the new ones:

  • \Drivers\STM32L4xx_HAL_Drivers
  • \Projects

Main HAL Drivers updates (release notes)

HAL TIM update

  • Removed useless assert_param() macro check on input parameters in HAL_TIM_OC_ConfigChannel(), HAL_TIM_PWM_ConfigChannel() and HAL_TIM_ConfigClockSource()

LL ADC update

  • Fix LL_ADC_GetAnalogWDMonitChannels() for AWD2 and AWD3

LL RCC update

  • Add new API LL_RCC_LSE_DisableCSS()

Contents

Drivers

Main Changes

Add Low Layer drivers under Drivers\STM32L4xx_HAL_Driver

Low Layer drivers allow performance and memory footprint optimization

  • Low Layer drivers APIs provide register level programming: they require deep knowledge of peripherals described in STM32L4x6 Reference Manual
  • Low Layer drivers are available for: ADC, COMP, Cortex, CRC, DAC, DMA, EXTI, GPIO, I2C, IWDG, LPTIM, LPUART, OPAMP, PWR, RCC, RNG, RTC, SPI, SWPMI, TIM, USART and WWDG peripherals and additionnal Low Level Bus, System and Utilities APIs.
  • Low Layer drivers APIs are implemented as static inline function in new Inc/stm32l4xx_ll_ppp.h files for PPP peripherals, there is no configuration file and eachstm32l4xx_ll_ppp.h file must be included in user code.
  • Refer to UM1860 for Low Layer presentation and UM1884 for API list.

Main HAL Drivers updates (release notes)

HAL FLASH

  • Add option byte OB_USER_nRST_SHDW to be used with HAL_FLASHEx_OBProgram()

HAL GPIO

  • Rename GPIO speed definitions to GPIO_SPEED_FREQ_LOW, GPIO_SPEED_FREQ_MEDIUM, GPIO_SPEED_FREQ_HIGH and GPIO_SPEED_FREQ_VERY_HIGH

HAL PWR

  • Fix HAL_PWR_DisableWakeUpPin() to clear only appropriate bits in PWR CR3 register
  • Combination of GPIO pins possible in HAL_PWREx_EnableGPIOPullUp(), HAL_PWREx_DisableGPIOPullUp(), HAL_PWREx_EnableGPIOPullDown() and HAL_PWREx_DisableGPIOPullDown()

HAL RCC

  • Add LSE Clock Security System (CSS) management with new APIs: HAL_RCCEx_EnableLSECSS_IT(), HAL_RCCEx_LSECSS_IRQHandler() and HAL_RCCEx_LSECSS_Callback()
  • Add RCC_MCO1SOURCE_NOCLOCK to provide capability to disable MCO output in HAL_RCC_MCOConfig()
  • Update HAL_RCC_OscConfig() and HAL_RCCEx_PeriphCLKConfig() to keep backup domain enabled when configuring respectively LSE and RTC clock source
  • Update HAL_RCCEx_DisablePLLSAI1() andHAL_RCCEx_DisablePLLSAI2()to disable respectively PLLSAI1 andPLLSAI2clock outputs
  • Update HAL_RCCEx_GetPeriphCLKFreq() to return the frequency in Hz applied to peripherals via HAL_RCCEx_PeriphCLKConfig()

Projects

Add support of System Workbench for STM32 (SW4STM32) toolchain

Set of Low Layer drivers Examples and mix of HAL/Low Layer drivers Examples for NUCLEO-L476RG

  • Under \Projects\STM32L476RG-Nucleo\Examples_LL (New)
  • Under \Projects\STM32L476RG-Nucleo\Examples_MIX (New)

STM32L476G-Discovery demonstration FW (V1.0.3) update

Contents

Projects

The STM32CubeL4 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 release notes

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.40.1 + ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.12+ST-Link

  • System Workbench STM32 (SW4STM32) toolchain v1.3 + ST-Link
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.3.1 + ST-Link

Supported Devices and EVAL boards

  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144-B01)
  • STM32L476G Discovery board RevC (MB1184-C01)
  • STM32L476RG Nucleo kit RevC


Known limitation 

  • TrueSTUDIO/SW4STM32 projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations

Main Changes

  • First official release of STM32CubeL4 (STM32Cube for STM32L4 Series) 

Contents

Drivers

Middlewares

Utilities

Development Toolchains and Compilers

IAR Embedded Workbench for ARM (EWARM) toolchain V7.40 + ST-Link

  • STM32L476xx/STM32L486xx devices are supported but any new project creation requires to set the missing FPU declaration (VFPv4) in Project General Option => Target panel

RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.12+ST-Link

  • Keil packfor STM32L4 available from \Utilities\PC_Software\MDK-ARM_STM32L476xx_Patch:this Pack provides the support of STM32L471xx/STM32L476xx/STM32L486xxdevice numbers for µ5Vision Projects.
  • Run Time Environment (RTE) CMSIS-Core must not be selected to rely only on CMSIS drivers delivered in this STM32Cube L4 FW package

  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain v5.2.1 + ST-Link

Supported Devices and EVAL boards

  • STM32L47x devices Rev4
  • STM32L476G Evaluation boardRevB (MB1144-B01)
  • STM32L476G Discovery board RevC (MB1184-C01)
  • STM32L476RG Nucleo kit RevC


Known limitation 

  • TrueSTUDIO projects are not provided for the STM32L476G-EVAL and STM32L476G-Discovery demonstrations
  • System Workbench for STM32 (SW4STM32) projects are not provided with this package.