1. Packs
  2. STM32F4xx_DFP

Change Log

Version 2.17.1: July 4, 2023

Get Pack
      Board Support:
      - Updated emWin examples.
      -- emWin LCD configuration for STM32F429I-Discovery.

Version 2.17.0: Jan. 16, 2023

Get Pack
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.27.1 using HAL Drivers V1.8.1.
      CMSIS Device:
      - Updated the list of devices to match STM32CubeMX
      - Updated device files to V2.6.8
      - Updated SVD files.
      Board Support:
      - Reworked Flash Algorithms.
      - Added 32F469IDISCOVERY QSPI Flash Algorithm.
      - Updated emWin examples.
      -- emWin LCD configuration for 32F469IDISCOVERY and STM32F429I-Discovery.
      CMSIS-Driver:
      - CAN:   Updated function GetTxFrameTime (solved potential LTO problems).
      - EMAC:  Updated functions GetRxFrameTime and GetTxFrameTime (solved potential LTO problems).
      - I2C:   Made variables status and cnt volatile (solved potential LTO problems).
      - MCI:   Made variable status volatile (solved potential LTO problems).
      - SPI:   
      -- Corrected functionality when using DMA mode.
	  -- Made variables status, num, rx_cnt and tx_cnt volatile (solved potential LTO problems).
      - USART: 
      -- Corrected Rx overflow interrupt handling.
      -- Corrected Send function (removed stat variable).
	  -- Made variables status, rx_num tx_num, rx_cnt and tx_cnt volatile (solved potential LTO problems).
      - USBD:  Made variables usbd_state and num_transferred_total volatile (solved potential LTO problems).

Version 2.16.0: Jan. 19, 2022

Get Pack
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.7.13.
      STM32CubeMX integration:
      - Synchronized versions of generated component ::Device:STM32Cube Framework:STM32CubeMX (in gpdsc) and its bootstrap (in pdsc).
      Package Description (pdsc):
      - Added global define USE_HAL_DRIVER to the component ::Device:STM32Cube HAL:Common.
      - Added global define USE_FULL_LL_DRIVER to the component ::Device:STM32Cube LL:Common.
      - Restructured board(32F469IDISCOVERY, STM32F429I-Discovery) components.
      - Added debugProbe board description.
      - Changed schemaVersion (1.7.2).
      CMSIS-Driver:
      - I2C: Corrected pins configuration.
      - MCI: Added DMA stream abort when calling PowerControl with ARM_POWER_OFF.
      - SPI:
      -- Corrected PowerControl function to clear transfer info.
      -- Corrected Control function (disable SPI and unconfigure Slave Select pin
         when mode ARM_SPI_MODE_INACTIVE is activated, activate internal pull-up/down on
         SCK pin according to clock/frame format setting, set Slave Select pin to
         inactive state after ARM_SPI_SS_MASTER_SW is activated).
      -- Corrected data lost detection before Reception/Transfer is started.
      - USART:
      -- Corrected capabilities with CTS change event not supported.
      -- Corrected Uninitialize function to power off the peripheral if it is powered.
      -- Corrected PowerControl function to return error if Initialize was not called
         and clear transfer information when powered off.
      -- Corrected Send function to not start reception in Synchronous Master mode
         and clear Transmission Complete status before starting Tx transfer (in DMA mode).
      -- Corrected GetTxCount to return 0 if send was not activated (in DMA mode).
      -- Corrected GetRxCount to return 0 if receive was not activated (in DMA mode).
      -- Corrected Control function to for abort Send/Transfer wait for already loaded frame to be sent,
         abort also Transmit if Receive in Synchronous Master mode is active,
         enable Tx (implicitly) if Rx is enabled for Synchronous Master mode,
         enable parity error detection if parity usage is configured, use pull-up on Rx pin,
         use pull-up on RTS/CTS pins.
      -- Corrected Tx pin configuration in single-wire mode.
      -- Corrected GetStatus to return all inactive status bits if USART is not powered.
      -- Corrected Interrupt routine with corrected RX Timeout handling,
         corrected break signal detection, commented that CTS event detection cannot work without flow control,
         corrected Tx Complete signaling.
      -- Corrected Tx DMA Handler Send complete signaling.
      - USBH:
      -- Fixed port resume occasionally getting stuck in resume signaling.
      -- Added compile time configuration for reducing Bulk IN NAK rate.
      -- USBH Device: Reduced duration of PowerControl when Power full is activated.
      Updated Boards Examples:
      - Updated Arm Compiler 6 to default compiler.
      - Updated config files to CMSIS 5.8.0.
      - Overrode default HAL_InitTick function.
      - CubeMX: Migrated CubeMX projects to V6.4.0.
      - 32F469IDISCOVERY: Added support for the target board revision.
      - ST emWin Examples:Updated LCDConf.c (from ST pack).
     Updated Documentation and SVD files.

Version 2.15.0: Sept. 28, 2020

Get Pack
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.25.1 using HAL Drivers V1.7.9.
      STM32CubeMX integration (Version 6.0.1):
      - Added support for Timebase Source TIMx (FrameworkCubeMX_gpdsc.ftl).
      - Removed non-existent include path.
      CMSIS Flash Algorithm: Corrected STM32F42xxx_43xxx_OPT Algorithm.
      CMSIS SVD: Updated STM32F42*.svd, STM32F43*.svd files.
      CMSIS-Driver:
      - I2C: Corrected 2 byte reception in master mode.
      - MCI: Replaced empty delay loops with _NOP().
      - SPI:
      -- Corrected PowerControl function (to return error if Initialize was
      not called, to abort active transfer if power off was requested).
      -- Updated GetDataCount function to give accurate count in DMA mode.
      -- Corrected Control function (abort in DMA mode,
      software controlled slave select in slave mode, TI Frame Format selection,
      ignore bus speed for slave mode).
      -- Corrected Uninitialize function (to power off the peripheral if it is powered).
      -- Corrected SPI3_SCK pin configuration.
      -- Corrected DMA MemDataAlignment configuration.
      - USART: Corrected DMA MemDataAlignment configuration.
      - USBD_HS/USBH_HS:
      -- OTG_HS ULPI clock disabled in low power if internal PHY is used
      to enable proper operation of OTG_HS port in FS mode during CPU sleep.
      - CAN/EMAC/USBD/USBH:
      -- Removed macros already provided by cmsis_compiler.h.
      Updated Boards Examples:
      - Migrated CubeMX projects to V6.0.1 and updated config files.
      - Changed variant selection to "MDK-Plus" where possible.
      - Updated all USB Host/Device examples with user templates from MDK-Middleware v7.11.1.
      - Terminating app_main thread with osThreadExit() to avoid endless loop
      - Updated MS Windows UBS driver files.

Version 2.14.0: July 24, 2019

Get Pack
      Warning: --C99 is no longer enforced via the device description. Enable 'C99 Mode' in 'Options for Target' dialog's 'C/C++' tab.
      Updated Pack to include subset of STM32Cube_FW_F4 Firmware Package version V1.24.1 using HAL Drivers V1.7.6.
      - Corrected RTE_Device.h UART5 pin configuration.
      - MX_Device_h.ftl:
      -- Updated parsing of USART virtual mode.
      -- Updated generation of macros: Added handling for '(' and ')' symbols.
      Corrected launching STM32CubeMX via "play" button for existing projects overwrites with a new STM32CubeMX project file instead of loading existing project.
      Updated SVD files: Added SPI4RST missing field to STM32F401xE.svd, STM32F411xx.svd and STM32F412xG.svd.
      Updated Flash Algorithm: Added new target for STM32F4xx_1536.FLM including fix for GetSecNum() in this target.
      Updated Boards Examples:
      - MCBSTM32F400:
      -- Added USB Device RNDIS example.
      -- GUI_VNC example GUIThread priority corrected from osPriorityIdle to osPriorityNormal.
      - Updated File System Demo: corrected invalid free space value shown in case of unmounted drives.
      - Graphics examples use Segger emWin version 5.50.0.
      - All examples:
      -- Enable Event Recorder in debug targets.
      -- Updated LCDConf.c (ready for GUI_USE_ARGD = 1).
      -- Terminating app_main thread with osThreadExit() to avoid endless loop.
      CMSIS-Driver:
      - All: corrected compiler warnings if GNU extensions is enabled in C/C++ settings for ARM Compiler 5.
      - CAN:
      -- Corrected SetBitrate function to leave Silent and Loopback mode as they were.
      -- Corrected SetMode function to clear Silent and Loopback mode when NORMAL mode is activated.
      -- Corrected MessageSend function to only access required data for sending.
      - EMAC: ETH DMA initialization is done when MAC transmitter or receiver is enabled.
      - I2C:
      -- Corrected 10-bit addressing mode.
      -- Corrected ARM_I2C_EVENT_BUS_CLEAR event signaling.
      -- Replaced dead loop waiting with waiting with timeout.
      - SPI:   Added checking if pointer to SPI_PIN is valid, before it is used.
      - USART:
      -- Corrected POWER_OFF sequence. DMA is DeInitialized after it is aborted.
      -- Added checking if pointer to USART_PIN is valid, before it is used.
      - USB Device:
      -- Updated USBD_EndpointConfigure function to check that maximum packet size requested fits into configured FIFO (compile time configured).
      -- Corrected VBUS detection for STM32F469xx and STM32F479xx devices.
      -- Corrected USBD_PowerControl function not to enable ULPI clock if external PHY is not enabled.

Version 2.13.0: April 3, 2018

Get Pack
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.21.0.
      - Updated HAL to version V1.7.4.
      CMSIS-Driver:
      - Added support for Arm Compiler 6.
      - CAN:
      -- Corrected abort message send functionality.
      - SPI:
      -- Corrected data shift register overrun in master mode.
      Board Examples:
      - Updated all examples:
      -- Placing Event Recorder into non-initialized memory area.
      -- Using ARM.CMSIS-Driver.2.2.0.pack and ARM.CMSIS.5.3.0.pack.
      - Added Network SNMP_Agent example.

Version 2.12.0: Feb. 22, 2018

Get Pack
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.19.0.
      - Reduced overall pack size by extracting only 'Drivers', 'Documentation' and 'Fonts' from Firmware Library pack.
      - Updated HAL to version V1.7.3.
      - Patching file: stm32f4xx_hal_def.h to support ARM Compiler 6.
      Device Support:
      - Updated file STM32F40x.svd (corrected TIM bitfield and display names).
      - Added STM32F411xx Option Byte Flash Algorithm.
      - Added OPT Flash Algorithms.
      - Added STM32F4xx_1024dual.FLM Flash Algorithm.
      - Added DBGMCU INI and DBGCONF files.
      - Updated DebugDescription.
      - Updated documentation.
      CMSIS-Driver:
      - CAN:
      -- Corrected filter setting for adding/removing maskable Standard ID.
      -- Corrected comment and code for CubeMX CAN interrupts settings (should be disabled).
      -- Corrected SetBitrate function.
      - EMAC:
      -- Corrected transmit checksum offload for IPv4 fragmented packets.
      - I2C:
      -- Updated slave event handling.
      - USART:
      -- Corrected ARM_USART_SET_IRDA_PULSE control.
      - USB Device:
      -- HS driver: On-chip PHY powered down if external ULPI PHY is used.
      -- Removed CMSIS-RTOS dependency.
      -- Corrected high-bandwidth isochronous endpoint functionality.
      - USB Host:
      -- HS driver: On-chip PHY powered down if external ULPI PHY is used.
      -- Removed CMSIS-RTOS dependency.
      Board Examples:
      - Added Board support and examples for the 32F469IDISCOVERY Board.
      - Added USB Device WinUSB_Echo examples.
      - Updated MCBSTM32F400 and STM32F429-Discovery Touch_STMPE811.c: corrected occasional incorrect coordinate reading, when touch screen is released.
      - Updated emWin examples to emWin V5.46e.
      - Updated all examples adding release and debug targets, using CMSIS-RTOS2 RTX and enabling the Event Recorder in debug targets.
      - Updated LCDConf.c (versions which use ST HAL).
      - Updated Board Support LED_*.c files.
      - Updated USB Host examples thread stack settings.
      - Removed MCBSTM32F400 board Network examples based on legacy Network API v6.

Version 2.11.0: Dec. 7, 2016

Get Pack
      Added device support for subfamilies STM32F413, STM32F423
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.14.0
      Updated HAL to version V1.6.0
      Updated CMSIS drivers:
      - CAN:   updated pin configuration, added CAN3
      - USART:
      -- updated pin configuration, adding UART9, UART10
      -- made I/O output speed configurable
      - I2C:   updated pin configuration
      - SPI:
      -- updated pin configuration
      -- made I/O output speed configurable
      - MCI:   updated pin configuration/unconfiguration
      - USB Device: Corrected resume event signaling
      Updated RTE_Device.h:
      - Updated DMA Configuration for USART3 and SPI4
      Updated examples:
      - Updated emWin examples to emWin V5.36f
      - Updated USB Device CDC ACM VirtualCOM example (corrected initial UART receive size)

Version 2.10.0: Sept. 20, 2016

Get Pack
      Add device variants STM32F410C8, STM32F410CB, STM32F410R8, STM32F410RB (LQFP48 and UFBGA64 packages)
      Updated CMSIS drivers:
      - USART: Added "Not Used" support for TX and RX pins
      - SPI:   Added "Not Used" support for MISO and MOSI pins
      - CAN: Corrected clearing of overrun flag in interrupt routine
      - USB Host: Corrected over-current pin configuration
      Updated RTE_Device configuration file:
      - Added "Not Used" support for SPI MOSI/MISO pins and USART TX/RX pins.

Version 2.9.0: May 31, 2016

Get Pack
      Added device support for subfamily STM32F412
      - updated device list according STM32Cube V1.45.0
      Updated Pack to STM32Cube_FW_F4 Firmware Package version V1.12.0
      Updated HAL to version V1.5.0
      Updated CMSIS drivers:
      - CAN:
      -- reflect changes from RTE_Device.h (Ver 2.4.1) adding pin configurations
      -- corrected CAN2 initialization was disabling CAN1 filters
      -- corrected receive overrun signaling
      - USART: reflect changes from RTE_Device.h (Ver 2.4.1) adding pin configurations
      - MCI: reflect changes from RTE_Device.h (Ver 2.4.1) adding pin configurations
      - I2C: corrected rise time setting when using ARM_I2C_BUS_SPEED_FAST
      - USB Device:
      -- VBUS detection is selected automatically based on VBUS sensing pin setting (in RTE_Device.h or by STM32CubeMX)
      -- Corrected initial resume signaling after USB Bus Reset
      -- Corrected device status information

Version 2.8.0: April 14, 2016

Get Pack
      Updated CMSIS drivers:
      - EMAC:
      -- Corrected Ethernet PTP functionality
      - CAN:
      -- Corrected functionality when only one CAN controller is used
      -- Corrected functionality when NULL pointer is provided for one or both signal callbacks in Initialize function call
      - USB Host full-speed:
      -- Removed interrupt priority handling
      - USB Host high-speed:
      -- Added DMA configuration to RTE_Device.h
      -- Corrected wrong result of PipeTransferGetResult for In Pipe transfers in DMA mode
      -- Added check to PipeTransfer function for 4-byte data alignment if DMA is used
      -- Removed interrupt priority handling
      - USART:
      -- Corrected CTS handling and added signal CTS change event.
      Updated examples:
      - Updated emWin examples to emWin V5.32
      - Updated CAN example
      - Updated USB Host examples
      - Updated USB Device CDC ACM VirtualCOM example for Keil MCBSTM32F400 evaluation board

Version 2.7.0: Dec. 8, 2015

Get Pack
      Updated STMicroelectronics STM32CubeF4 Firmware Package to Version 1.10.0.
      - updated affected examples
      MDK-ARM configuration via STM32CubeMX:
      - updated MX_Device.h generation: pin names characters '/', '-', ' ' converted to '_'
      Added examples using Network DualStack (IPv4/IPv6) Middleware targeting MCBSTM32F400 (Keil.MDK-Middleware.7.0.0.pack required)
      Updated all CMSIS drivers:
      - Corrected PowerControl function for Unconditional Power Off
      Updated USB Device CMSIS drivers:
      - Updated handling of Isochronous transfer
      - Updated IN Endpoint FIFO flush procedure
      Updated USB Host CMSIS drivers:
      - Corrected speed setting in high-speed port for On-chip Full-speed PHY
      - Corrected low-speed device on high-speed port functionality
      - Corrected multiple packet sending and PING functionality
      - Added DMA for high-speed port driver to reduce CPU usage for USB (enabled by default)
      - Renamed defines for overriding the maximum number of pipes used
      from USBH_MAX_PIPE_NUM to USBH0_MAX_PIPE_NUM in full-speed driver, and
      from USBH_MAX_PIPE_NUM to USBH1_MAX_PIPE_NUM for high-speed driver
      Updated SPI driver:
      - Corrected 8bit/16bit Data register access, regarding the Data frame size
      Updated CAN driver:
      - added possibility to use only CAN1
      Updated EMAC driver:
      - corrected return value of the ReadFrame function
      Updated SVD files for STM32F427 and STM32F429 fixing inconsistencies and missing information
      Added Debug Description to PDSC for trace configuration

Version 2.6.0: Sept. 16, 2015

Get Pack
      Updated STMicroelectronics STM32CubeF4 Firmware Package to Version 1.8.0 adding device support for:
      - STM32F410, STM32F469 and STM32F479 subfamilies
      Introducing MDK-ARM configuration via STM32CubeMX:
      - see documentation for component Device:STM32CubeFramework:STM32CubeMX
      CMSIS driver:
      - added CAN driver and configuration options in RTE_Device.h
      - updated EMAC driver: corrected lockup after long runtime
      - updated MCI driver: optimized Interrupt handler and corrected clock divider bypass handling
      - updated SPI driver: added support for STM32F410xx devices
      - updated USART driver:added support for STM32F410xx devices and corrected driver incorrectly stopped receiving data when calling the USART_Receive function while the receiver is busy
      - update I2C driver: added support for STM32F410xx devices and corrected 3 byte reception and POS bit handling in master mode as well as corrected acknowledge handling in slave mode
      MDK example projects:
      - added examples created using MDK and STM32CubeMX: Blinky and emWin GUI_VNC for Keil MCBSTM32F400
      - added CAN Data and RTR projects for Keil MCBSTM32F400
      - updated FTP_Server example: Heap memory increased
      - updated LCD configuration for STM32F429I-Discovery Kit (performance improvements and corrections for multi-layer)

Version 2.5.0: June 12, 2015

Get Pack
      Updated to STMicroelectronics STM32CubeF4 Firmware Package V1.6.0
      Updated CMSIS drivers:
      - I2C, MCI, EMAC, USB Device, USB Host, SPI, USART: Updated initialization, uninitialization and power procedures
      - MCI: Corrected data timeout handling
      - SPI:
      -- Corrected status bit-field handling, to prevent race conditions
      -- Corrected ARM_SPI_EVENT_DATA_LOST event generation in master mode at high bus speeds
      -- Corrected bus speed configuration
      - USART:
      -- Corrected status bit-field handling, to prevent race conditions
      -- Added RX TimeOut handling
      - USB Device: Corrected transferred size during transfer
      - USB Host:
      -- Added pipe bus error signaling of active pipes on port disconnect
      -- Corrected handling on error transfers
      Updated MDK examples:
      - Boards/Keil/MCBSTM32F400/Blinky
      - USB Device Mass Storage Example

Version 2.4.0: March 20, 2015

Get Pack
      Required PACKs: ARM.CMSIS.4.3.0.pack, Keil.MDK-Middleware.6.3.0.pack, Keil.ARM_Compiler.1.0.0.pack
      Updated devices:
      - added STM32F446 Series
      - removed STM32F411CCUx as it does not exist
      Updated drivers:
      - USB Host: Corrected signaling of STALL handshake
      - USB Device:
      -- Corrected IN ZLP sending
      -- VBUS sensing disabled if ARM_USBD_VBUS_DETECT is not enabled
      - USART: corrected when configured via STM32CubeMX
      - I2C:
      -- includes corrected when configured with STM32CubeMX
      -- corrected slave mode and 10-bit addressing mode, I2C2 SDA pin configuration, Enable_GPIO_Clock() function
      - MCI:
      -- includes corrected when configured with STM32CubeMX
      -- correction required due to device errata
      -- added support for SD high speed bus mode
      - SPI: corrected spi->info->mode handling
      Updated examples:
      - Compiler I/O software component is now used for I/O retargeting
      - Updated Network examples for MCBSTM32F400 V1.2 board with KSZ8081RNA Ethernet PHY
      Updated dependencies:
      - Ethernet does not require CMSIS:RTOS

Version 2.3.0: Dec. 11, 2014

Get Pack
      - USB Host:
      -- corrected interrupt pipe behavior, and PING on high-speed driver, init/deinit and power control
      -- added VBUS Power pin active high/low functionality, overcurrent state functionality (without event) added
      - USB Device: prevent simultaneous IN writes to FIFO
      - USART and SPI: corrected DMA transfer abort
      - MCI: corrected setting of bus width
      - EMAC: implemented function 'GetMacAddress'
      - EMAC, I2C, MCI, USART, SPI and USBD: corrected some basic MISRA 2004 compliances like signedness, boolean operation on logical operators
      Updated RTE_Device.h: added Receive and transmit DMA configuration for SDIO peripheral
      Renamed SDIO component in 'Device::STM32Cube HAL' to 'SD' to match HAL component name
      Updated examples:
      - File_Demo and USB Host MassStorage examples updated due to the new fdelete() API in File System Version 6.2
      - MCBSTM32F400 USB Host Keyboard example (removed USB High-speed usage)
      - STM32F429I-Discovery Board USB Host examples config files and removed USB High-speed usage from Keyboard example

Version 2.2.0: Oct. 16, 2014

Get Pack
      PACK based on STMicroelectronics STM32CubeF4 Firmware Package V1.3.0
      - STD Peripheral Library components removed
      New Device variants introduced matching ST Cube device database
      - e.g. STM32F407IG -> STM32F407IGHx or STM32F407IGTx
      CMSIS Drivers Version 2 (changed Cclass "Drivers" to "CMSIS Driver")
      - Ethernet MAC, USART, I2C, MCI, SPI, USB Device, USB Host
      MDK-ARM Example projects require MDK-Middleware 6.1.1 and CMSIS 4.2.0
      - Board Support uses Board Interface API from MDK-Middleware (header file names changed)
      - Boards: Keil MCBSTM32F400, ST Microelectronics STM32F429I-Discovery, STM32F401C-Discovery, STM32F4-Discovery
      Difference to version 2.1.0:
      - File stm32f4xx_hal_conf.h moved from component Device::STM32Cube HAL:Common into Device::STM32Cube Framework::Classic
      - Updated RTE_Device and USB Device/Host, USART, MCI and SPI drivers
      - Updated LCD board interface driver for STM32F429-I Discovery
      - Updated ADC board interface driver for MCBSTM32F400

Version 2.1.0: Sept. 29, 2014

Get Pack
      PACK Based on STMicroelectronics STM32CubeF4 Firmware Package V1.3.0
      - STD Peripheral Library components removed
      CMSIS Driver using API V2 for:
      - Ethernet MAC, I2C, MCI, SPI, USB Device, USB Host
      Board Support for:
      - Keil MCBSTM32F400, ST Microelectronics STM32F429I-Discovery, STM32F401C-Discovery, STM32F4-Discovery
      Device Support for:
      - STM32F411 Series added
      - STM32F4 Series updated
      - Flash Size for STM32F401xD, STM32F401xE corrected

Version 2.0.0

Get Pack
      Workshop Release not released publicly