Release Notes for STM32CubeF1 Firmware Package

Copyright © <2017> STMicroelectronics

License

This software package is licensed by ST under ST license SLA0048, the “License”; You may not use this package except in compliance with the License. You may obtain a copy of the License at: http://www.st.com/SLA0048.

Purpose

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:

The HAL (Hardware Abstraction Layer) drivers provided within this package supports the following STM32F100xx STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx Series.

Update History

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation.

  • CMSIS updates
    • Improve GCC startup files robustness.
    • Add LSI maximum startup time datasheet value: LSI_STARTUP_TIME.
    • Add atomic register access macros.
    • File “startup_stm32f105xc.s” updated to call static constructors.
  • HAL updates
    • HAL/LL ADC driver
      • Update LL_ADC_DeInit() API to clear missing SQR3 register.
      • Update timeout mechanism to avoid false timeout detection in case of preemption.
    • HAL EXTI driver
      • Update macros using LINE as a macro parameter in order to use EXTI_LINE instead to resolve parameter conflicts with standard C usage.
    • LL GPIO driver
      • Update LL_GPIO_Init() API to configure the Pin Pull only in INPUT mode.
    • HAL/LL RTC driver
      • Correct values assigned to macros LL_RTC_BKP_DR11 to LL_RTC_BKP_DR42 to be inline with actual registers mapping.
      • Update APIs LL_RTC_TIME_Init() and LL_RTC_ALARM_Init() to correctly check the RTC_Format (BIN or BCD).
      • Fix flag clearing operation for HAL_RTC_ALARM_CLEAR_FLAG and HAL_RTC_SECOND_CLEAR_FLAG macros.
    • HAL/LL TIM driver
      • Made TIM_DMADelayPulseCplt callback as a private function.
      • Update HAL_TIMEx_OnePulseN_Start and HAL_TIMEx_OnePulseN_Stop (pooling and IT mode) to take into consideration all OutputChannel parameters.
      • Update input capture measurement in DMA mode to avoid zero return values at high frequencies.
      • Update LL_TIM_GetCounterMode() API to return the correct counter mode.
      • Correct reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse Mode.
    • HAL/LL SPI driver
      • Update LL_SPI_TransmitData8() API to avoid casting the result to 8 bits.
      • Update to fix MISRA-C 2012 Rule-13.2.
    • HAL/LL I2C driver
      • Update to avoid I2C interrupt in endless loop:
        • Update HAL_I2C_Master_Transmit_IT(), HAL_I2C_Master_Receive_IT(), HAL_I2C_Master_Transmit_DMA() and HAL_I2C_Master_Receive_DMA() APIs to unlock the I2C peripheral before generating the start.
      • Update the management of (hi2c->hdmatx!=NULL) & (hi2c->hdmarx!=NULL) check.
      • Update to prevent several calls of Start bit:
        • Update I2C_MemoryTransmit_TXE_BTF() API to increment EventCount.
      • Update to use the right macro to clear I2C ADDR flag inside I2C_Slave_ADDR() API as it’s indicated in the reference manual.
      • Update HAL_I2C_EV_IRQHandler() and I2C_MasterTransmit_BTF() APIs to fix an issue where the transfer of the first few bytes to an I2C memory fails.
    • HAL NAND driver
      • Update functions HAL_NAND_Read_SpareArea_16b() and HAL_NAND_Write_SpareArea_16b() to fix column address calculation issue
      • Update implementation of “HAL_NAND_Write_Page_16b” and “HAL_NAND_Read_Page_16b” APIs implementation to fix an issue with the page calculation of 8 bits memories
    • LL USART driver
      • Remove useless check on maximum BRR value by removing IS_LL_USART_BRR_MAX() macro.
    • HAL UART driver
      • Enhance reception for idle services (ReceptionToIdle):
        • Add a new field (HAL_UART_RxTypeTypeDef) to the UART_HandleTypeDef structure to identify the type of ongoing reception.
        • Add UART Reception Event Callback registration.
        • Add reception specific APIs specific to reception for Idle transfer in different modes:
        • HAL_UARTEx_ReceiveToIdle(): Receive an amount of data in blocking mode until either the expected number of data is received or an IDLE event occurs.
        • HAL_UARTEx_ReceiveToIdle_IT(): Receive an amount of data in interrupt mode until either the expected number of data is received or an IDLE event occurs.
        • HAL_UARTEx_ReceiveToIdle_DMA(): Receive an amount of data in DMA mode until either the expected number of data is received or an IDLE event occurs.
      • Update HAL_UART_Receive(), HAL_UART_Receive_IT() and HAL_UART_Receive_DMA() APIs to support the new enhancement of ReceptionToIdle.
      • Fixe wrong comment related to RX pin configuration within the description section.
      • Correction on UART ReceptionType management in case of ReceptionToIdle API are called from RxEvent callback.
    • HAL SMARTCARD driver
      • Fix typos in the SMARTCARD State definition description.
    • HAL IRDA driver
      • Fix typos in the IRDA State definition description.
    • LL TIM driver
      • Update LL_TIM_GetCounterMode() API to return the correct counter mode.
      • Correct reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse Mode.
    • HAL CAN driver
      • Update HAL_CAN_Init() API to be aligned with reference manual and to avoid timeout error:
      • Update CAN Initialization sequence to set “request initialization” bit before exit from sleep mode.
    • LL UTILS driver
      • Add a new LL_PLL_ConfigSystemClock_PLL2() API to configure system clock with HSE as clock source of the PLL, via PLL2.
    • HAL IWDG driver
      • Update HAL_IWDG_Init() API in order to fix HAL_GetTick() timeout vulnerability issue.
      • Add LSI startup time in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT).
    • LL FMC driver
      • Fix compilation warning with gcc -Wpedantic compiler option.
    • HAL SDMMC driver
      • Update the definition of SDMMC_DATATIMEOUT constant in order to allow the user to redefine it in his proper application
      • SD_FindSCR() updated to resolve an issue with FIFO blocking when reading.
      • Update the definition of SDMMC_DATATIMEOUT constant in order to allow the user to redefine it in his proper application
      • Add the block size settings in the initialization functions and remove it from read/write transactions to avoid repeated and inefficient reconfiguration.
      • Update read/write functions in DMA mode in order to force the DMA direction.
      • Deploy new functions MMC_ReadExtCSD() and SDMMC_CmdSendEXTCSD () that read and check the sectors number of the device in order to resolve the issue of wrongly reading big memory size.
    • HAL USB driver
      • HAL PCD: add fix transfer complete for IN Interrupt transaction in single buffer mode.
      • Race condition in USB PCD control endpoint receive ISR.
  • Projects updates
    • Update examples and applications to avoid clearing DMA using global flag GIFx.

Contents

  • The STM32CubeF1 Firmware package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with pre-configured projects for the main supported toolchains. The exhaustive list of projects is provided in this table STM32CubeProjectsList.html.
  • Projects release notes
    • STM32F103RB-Nucleo
      • Applications [release notes] (Projects32F103RB-Nucleo_Notes.html)
      • Demonstrations [release notes] (Projects32F103RB-Nucleo_Notes.html)
      • Examples [release notes] (Projects32F103RB-Nucleo_Notes.html)
      • Examples_LL [release notes] (Projects32F103RB-Nucleo_LL_Notes.html)
      • Examples_MIX [release notes] (Projects32F103RB-Nucleo_MIX_Notes.html)
      • Templates [release notes] (Projects32F103RB-Nucleo_Notes.html)
      • Templates_LL release notes
    • STM32VL-Discovery
    • STM3210C_EVAL
      • Applications [release notes] (Projects3210C_EVAL_Notes.html)
      • Examples [release notes] (Projects3210C_EVAL_Notes.html)
      • Templates [release notes] (Projects3210C_EVAL_Notes.html)
      • Templates_LL [release notes] (Projects3210C_EVAL_Notes.html)
    • STM3210E_EVAL
      • Applications [release notes] (Projects3210E_EVAL_Notes.html)
      • Examples [release notes] (Projects3210E_EVAL_Notes.html)
      • Examples_LL [release notes] (Projects3210E_EVAL_LL_Notes.html)
      • Examples_MIX [release notes] (Projects3210E_EVAL_MIX_Notes.html)
      • Templates [release notes] (Projects3210E_EVAL_Notes.html)
      • Templates_LL [release notes] (Projects3210E_EVAL_LL_Notes.html)
    Name Version Licence Release note
    STM32F1xx CMSIS V4.3.3 Apache License 2.0 release notes
    STM32F1xx HAL V1.1.8 BSD-3-Clause release notes
    BSP STM3210C_EVAL V7.0.1 BSD-3-Clause release notes

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.40.2+ ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-Link

Maintenance release

Main Changes

  • Patch release of STM32CubeF1 Firmware Package.

  • HAL

    • HAL/LL I2C driver
      • Update to fix hardfault issue with HAL_I2C_Mem_Write_DMA() API:
        • Abort the right ongoing DMA transfer when memory write access request operation failed: fix typo “hdmarx” replaced by “hdmatx”
    • HAL/LL GPIO driver
      • Update LL_GPIO_Init() API to configure correctly the GPIO speed parameter when GPIO alternate function mode is selected.

Contents

Drivers
Name Version Licence Release note
STM32F1xx HAL V1.1.7 BSD-3-Clause release notes

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation

  • HAL
    • HAL/LL ADC driver
      • Update HAL_ADC_Stop_DMA() API to check if DMA state is Busy before calling HAL_DMA_Abort() API to avoid DMA internal error.
      • Update LL_ADC_REG_Init() API to avoid enabling continuous mode and discontinuous mode simultaneously.
    • HAL/LL GPIO driver
      • Update HAL_GPIO_TogglePin() API to allow multi Pin’s toggling.
      • Update LL_GPIO_TogglePin() API to improve robustness: use BSRR register instead of ODR register.
      • Update LL GPIO initialization sequence to avoid unwanted pulse on GPIO Pin’s.
    • HAL/LL I2S driver
      • Update HAL_I2S_DMAStop() API to be more safe
        • Add a check on BSY, TXE and RXNE flags before disabling the I2S
    • HAL/LL SPI driver
      • Update SPI_DMAReceiveCplt() API to handle efficiently the repeated transfers.
        • Disable TX DMA request only in bidirectional receive mode
      • Update HAL_SPI_Init() API
        • To avoid setting the BaudRatePrescaler in case of Slave Motorola Mode
        • Use the bit-mask for SPI configuration
      • Update Transmit/Receive processes in half-duplex mode
        • Disable the SPI instance before setting BDIOE bit
      • Fix wrong timeout management
        • Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled
    • HAL NOR driver
      • Update address calculation in HAL_NOR_ProgramBuffer()
      • Apply adequate commands according to the command set field value
        • command set 1 for Micron JS28F512P33
        • command set 2 for Micron M29W128G and Cypress S29GL128P
      • Add new commands operations:
        • NOR_CMD_READ_ARRAY
        • NOR_CMD_WORD_PROGRAM
        • NOR_CMD_BUFFERED_PROGRAM
        • NOR_CMD_CONFIRM
        • NOR_CMD_BLOCK_ERASE
        • NOR_CMD_BLOCK_UNLOCK
        • NOR_CMD_READ_STATUS_REG
        • NOR_CMD_CLEAR_STATUS_REG
      • Update some APIs in order to be compliant for memories with another command set.
        • HAL_NOR_Init()
        • HAL_NOR_Read_ID()
        • HAL_NOR_ReturnToReadMode()
        • HAL_NOR_Read()
        • HAL_NOR_Program()
        • HAL_NOR_ReadBuffer()
        • HAL_NOR_ProgramBuffer()
        • HAL_NOR_Erase_Block()
        • HAL_NOR_Erase_Chip()
        • HAL_NOR_GetStatus()
    • HAL SRAM driver
      • General update to enhance HAL SRAM driver robustness
        • Update HAL_SRAM_Init() API to avoid activation of burst access for SRAM
    • HAL FSMC driver
      • Update FSMC_NORSRAM_Init() API in order to resolve compilation issue with MS Visual 2017
      • Update FSMC_NORSRAM_Extended_Timing_Init() API in order to manage Bus turnaround phase duration FSMC_BWTR1_BUSTURN availability.
    • LL UTILS driver
      • UTILS_SetFlashLatency() API renamed to LL_SetFlashLatency() and set exportable.
    • HAL/LL IWDG driver
      • Update HAL_IWDG_DEFAULT_TIMEOUT define value to consider LSI value instead of hardcoded value
    • HAL/LL TIM driver
      • Update Encoder interface mode to keep TIM_CCER_CCxNP bits low
        • Add TIM_ENCODERINPUTPOLARITY_RISING and TIM_ENCODERINPUTPOLARITY_FALLING definitions to determine encoder input polarity.
        • Add IS_TIM_ENCODERINPUT_POLARITY() macro to check the encoder input polarity.
        • Update HAL_TIM_Encoder_Init() API
        • Replace IS_TIM_IC_POLARITY() macro by IS_TIM_ENCODERINPUT_POLARITY() macro.
      • Fix bug when using multiple DMA request to different channels of same timer
        • Introduce DMA burst state management mechanism
          • Add a new structure for DMA Burst States definition : HAL_TIM_DMABurstStateTypeDef
          • Update __HAL_TIM_RESET_HANDLE_STATE to support DMABurstState
          • Add a new API HAL_TIM_DMABurstState() to get the actual state of a DMA burst operation
          • Add DMABurstState, the DMA burst operation state, in the TIM_HandleTypeDef structure
          • Add new API TIM_DMAErrorCCxN() for TIM DMA error callback (complementary channel)
          • Add new API TIM_DMADelayPulseNCplt() for TIM DMA Delay Pulse complete callback (complementary channel)
      • Implement TIM channel state management mechanism
        • Add new macro
          • TIM_CHANNEL_STATE_SET_ALL and TIM_CHANNEL_N_STATE_SET_ALL
          • TIM_CHANNEL_STATE_SET and TIM_CHANNEL_N_STATE_SET
          • TIM_CHANNEL_STATE_GET and TIM_CHANNEL_N_STATE_GET
        • Add new API HAL_TIM_GetActiveChannel()
        • Add new API HAL_TIM_GetChannelState() to get actual state of the TIM channel
        • Add a new structure for TIM channel States definition : HAL_TIM_ChannelStateTypeDef
        • Update __HAL_TIM_RESET_HANDLE_STATE to support ChannelState and ChannelNState
        • Add a new element in the TIM_HandleTypeDef structure : ChannelState to manage TIM channel operation state
        • Add a new element in the TIM_HandleTypeDef structure : ChannelNState to manage TIM complementary channel operation state
      • Update HAL_TIMEx_MasterConfigSynchronization() API to avoid functional errors and assert fails when using some TIM instances as input trigger.
        • Replace IS_TIM_SYNCHRO_INSTANCE() macro by IS_TIM_MASTER_INSTANCE() macro.
        • Add IS_TIM_SLAVE_INSTANCE() macro to check on TIM_SMCR_MSM bit.
      • Remove ‘register’ storage class specifier from LL TIM driver.
      • Add new API HAL_TIM_DMABurst_MultiWriteStart() allowing to configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral
      • Add new API HAL_TIM_DMABurst_MultiReadStart() allowing to configure the DMA Burst to transfer Data from the TIM peripheral to the memory
    • HAL/LL UART driver
      • Update UART polling processes to handle efficiently the Lock mechanism
        • Update UART_Transmit_IT(), UART_Receive_IT(), HAL_UART_Transmit() and HAL_UART_Receive() APIs.
      • Update UART polling and interruption processes to fix issues related to accesses out of user specified buffer.
        • Update UART_Transmit_IT and UART_Receive_IT.
      • Update HAL_UART_Transmit and HAL_UART_Receive.
      • Update UART interruption handler to manage correctly the overrun interrupt
        • Add in the HAL_UART_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.
      • Update UART BRR calculation for ROM size gain
    • HAL/LL USART driver
      • Update USART interruption handler to manage correctly the overrun interrupt
        • Add in the HAL_USART_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.
    • HAL SMARTCARD driver
      • Update SMARTCARD interruption handler to manage correctly the overrun interrupt
        • Add in the HAL_SMARTCARD_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.
      • Update SMARTCARD transmission and reception API to handle memory corruption
        • HAL_SMARTCARD_Transmit(), HAL_SMARTCARD_Receive(), HAL_SMARTCARD_Transmit_IT() and HAL_SMARTCARD_Receive_IT().
  • CMSIS
    • All header files
      • Remove unused IS_TIM_SYNCHRO_INSTANCE() assert macro
    • Add missing I2SCFG and I2SPR bits difinitions for STM32F101xE and STM32F101xG
    • Protect Vector table modification following SRAM or FLASH preprocessor directive by a generic preprocessor directive : USER_VECT_TAB_ADDRESS
    • SystemInit(): update to don’t reset RCC registers to its reset values.

Contents

Known Limitations

  • SW4STM32 projects aren’t provided for STM32VL-Discovery board because it embeds STLinv1 version that is not hardware supported by SW4STM32 toolchain.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2+ ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-Link

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation

  • HAL

    • HAL driver
      • Enhance HAL_SetTickFreq() API robustness
        • Restore previous tick frequency when a wrong tick initialization occurs.
    • HAL/LL I2C update
      • Update HAL_I2C_ER_IRQHandler() API to fix acknowledge failure issue with I2C memory IT processes
        • Add stop condition generation when NACK occurs.
      • Update I2C_DMAXferCplt(), I2C_DMAError() and I2C_DMAAbort() APIs to fix hardfault issue when hdmatx and hdmarx parameters in i2c handle aren’t initialized (NULL pointer).
        • Add additional check on hi2c->hdmtx and hi2c->hdmarx before resetting DMA Tx/Rx complete callbacks
      • Update HAL_I2C_ER_IRQHandler() API to fix acknowledge failure issue with I2C memory IT processes
        • Add stop condition generation when NACK occursHAL SMBUS
      • Update HAL_I2C_Init() API to force software reset before setting new I2C configuration.
      • Update HAL I2C processes to report ErrorCode when wrong I2C start condition occurs
        • Add new ErrorCode define: HAL_I2C_WRONG_START
        • Set ErrorCode parameter in I2C handle to HAL_I2C_WRONG_START
      • Update sequential APIs to avoid requesting a START when a STOP condition is not fully treated
        • Wait the end of STOP treatment by polling (with a timeout) the STOP bit on Control register CR1
      • Update I2C_MasterReceiveRXNE() static API to avoid set the STOP bit again after the bit clearing by Hardware during the masking operation
        • Add new API I2C_WaitOnSTOPRequestThroughIT() to wait for stop bit.
    • HAL/LL USB update
      • Bug fix: USB_ReadPMA() and USB_WritePMA() by ensuring 16-bits access to USB PMA memory
      • Bug fix: correct USB RX count calculation
      • Fix USB Bulk transfer double buffer mode
      • Remove register keyword from USB defined macros as no more supported by C++ compiler
      • Minor rework on USBD_Start() and USBD_Stop() APIs: stopping device will be handled by HAL_PCD_DeInit() API.
      • Remove non used API for USB device mode.

Contents

Drivers
Name Version Licence Release note
STM32F1xx HAL V1.1.5 BSD-3-Clause release notes

Maintenance release

Main Changes

  • General updates to fix known defects and enhancements implementation
  • Remove support of TrueSTUDIO tool chain
  • General updates to fix CodeSonar compilation warnings
  • General updates to fix the user manual .chm files
  • Add support of HAL callback registration feature
  • The following changes done on the HAL drivers require an update on the application code based on older HAL versions
    • Add support of HAL callback registration feature
      • The feature disabled by default is available for the following HAL drivers:
        • ADC, CAN, CEC, DAC, ETH, HCD, UART, USART, IRDA, SMARTCARD,
        • MMC, NAND, NOR, PCCARD, PCD, RTC, SD, SRAM, SPI, I2S, TIM and WWDG
      • The feature may be enabled individually per HAL PPP driver by setting the corresponding definition USE_HAL_PPP_REGISTER_CALLBACKS to 1U in stm32f1xx_hal_conf.h project configuration file (template file stm32f1xx_hal_conf_template.h available from Drivers/STM32F1xx_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()
    • For HAL HCD driver add the following USB callback in usbh_conf.c user file to be compliant with latest changes done on USB Host (HAL/Stack)
      • HAL_HCD_PortEnabled_Callback()
      • HAL_HCD_PortDisabled_Callback()
  • Demonstrations binaries are no more delivered within the STM32CubeF1 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.

  • HAL
    • Add support of HAL callback registration feature
    • Add new HAL EXTI driver
    • Here below the new features introduced on HAL drivers
      • Add SPI Abort transfer API’s:
        • HAL_SPI_Abort()
        • HAL_SPI_Abort_IT()
      • Add HAL_SD_ConfigSpeedBusOperation() API to configure the SD card speed bus mode
      • Add new TIM Callbacks API’s:
        • HAL_TIM_PeriodElapsedHalfCpltCallback()
        • HAL_TIM_IC_CaptureHalfCpltCallback()
        • HAL_TIM_PWM_PulseFinishedHalfCpltCallback()
        • HAL_TIM_TriggerHalfCpltCallback()
  • CMSIS
    • Fix known defects and several implementation enhancement
    • Fix wrong initialization value for “SystemCoreClock” in System_stm32f1xx.c file
    • Update gcc linker file template to be aligned with AC6 linker file template
    • Align ErrorStatus typedef to common error handling
  • Middleware
    • Update to use FreeRTOS 10.0.1 ST modified 20190329
    • Update to use STemWin V5.44 ST modified 20180322
    • Update to use USB Device Library V2.5.3
    • Update to use USB Host Library V3.3.3
    • Update to use new version of LwIP V2.0.3
  • Projects
    • Update STemWin applications to be compliant with new STemWin architecture
    • Update USB HOST projects to be compliant with USB Host Stack V3.3.3:
      • Add the following USB callback in usbh_conf.c user file:
        • HAL_HCD_PortEnabled_Callback()
        • HAL_HCD_PortDisabled_Callback()
    • Update USB Device projects for 103xx/107xx devices to be compliant with USB Device 2.5.3
      • USB HS mode isn’t supported by these STM32 devices
    • Update USB device applications by adding a UNUSED() macro in the followings API on file usbd_desc.c files in order to avoid compilation warnings
      • USBD_DFU_DeviceDescriptor()
      • USBD_DFU_LangIDStrDescriptor()
      • USBD_DFU_ManufacturerStrDescriptor()
      • USBD_DFU_SerialStrDescriptor()
    • Remove useless setting of ep0_mps in usbd_conf.c file for USB device applications
      • usbd_conf.h: Optimize USB device string descriptor size (USBD_MAX_STR_DESC_SIZ)
    • Update HID_Standalone application available on STM3210E_EVAL board to be compliant new HAL PCD driver.
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • SW4STM32 projects aren’t provided for STM32VL-Discovery board because it embeds STLinv1 version that is not hardware supported by SW4STM32 toolchain.
  • Register callback feature will be deployed on HAL I2C driver in next release

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2+ ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-Link

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • General update to fix known defects and several implementations enhancement
  • The following changes done on the HAL drivers require an update on the application code based on older HAL versions
    • 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/STM32F1xx_HAL_Driver/Src and Drivers/STM32f1xx_HAL_Driver/Inc folders. It can be enabled through switch HAL_CAN_MODULE_ENABLED in stm32f1xx_hal_conf.h
      • The legacy HAL CAN driver is also present in the release in Drivers/STM32F1xx_HAL_Driver/Src/Legacy and Drivers/STM32F1xx_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 stm32f1xx_hal_conf.h
  • HAL
    • stm32f1xx_hal_conf_template.h: Add switch HAL_CAN_LEGACY_MODULE_ENABLED
    • HAL CAN driver has been redesigned with new APIs.
  • CMSIS
    • Fix known defects and several implementation enhancement
  • Projects
    • Update CAN examples to support new HAL CAN driver.
    • Update stm32f1xx_hal_conf.h by adding switch HAL_CAN_LEGACY_MODULE_ENABLED.
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • SW4STM32 projects aren’t provided for STM32VL-Discovery board because it embeds STLinv1 version that is not hardware supported by SW4STM32 toolchain.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.5.2
  • System Workbench for STM32 (SW4STM32) toolchain V1.13

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix issues in GPIO, RCC, SMARTCARD, I2C and Generic HAL/LL drivers

Contents

Name Version Release note
STM32F1xx HAL V1.1.2 release notes

Maintenance release

Main Changes

  • General update to fix known defects and several implementations enhancement

  • HAL
    • stm32f1xx_hal_conf_template.h fix typo: update to refer to stm32f1xx_hal_mmc.h instead of stm32f4xx_hal_mmc.h
    • stm32f1xx_hal_mmc.c add missing () to fix compilation warning detected with SW4STM32 when extra feature is enabled.
    • stm32f1xx_ll_system.h: fix typo in LL_DBGMCU_APB1_GRP1_I2C1_STOP and LL_DBGMCU_APB1_GRP1_I2C2_STOP literals definition
  • Projects
    • General updates to be compliant with Linux platforms
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • SW4STM32 projects aren’t provided for STM32VL-Discovery board because it embeds STLinv1 version that is not hardware supported by SW4STM32 toolchain.

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.5.2
  • System Workbench for STM32 (SW4STM32) toolchain V1.13

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Add Low Layer drivers under Drivers32F1xx_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 STM32F1xx Reference Manuals
    • Low Layer drivers are available for: ADC, Cortex, CRC, DAC, DMA, EXTI, GPIO, I2C, IWDG, PWR, RCC, RNG, RTC, SPI, TIM, USART, WWDG peripherals and additional Low Level Bus, System and Utilities APIs.
    • Low Layer drivers APIs are implemented as static in-line function in new Inc/stm32f1xx_ll_ppp.h files for PPP peripherals, there is no configuration file and each stm32f1xx_ll_ppp.h file must be included in user code.
    • Refer to [UM1847] (http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00151047.pdf) for Low Layer presentation and [UM1850] (http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00154093.pdf) for API list
  • General update to fix known defects and several implementations enhancement

  • HAL
    • Add Low Layer drivers under Drivers32F1xx_HAL_Driver
    • Add new MMC HAL driver
    • The following changes done on the HAL drivers require an update on the application code based on older HAL versions
      • HAL UART, USART, IRDA, SMARTCARD, SPI, I2C,FMPI2C, QSPI (referenced as PPP here below) drivers
        • Add PPP error management during DMA process. This requires the following updates on user application:
          • Configure and enable the PPP IRQ in HAL_PPP_MspInit() function
          • In stm32f1xx_it.c file, PPP_IRQHandler() function: add a call to HAL_PPP_IRQHandler() function
          • Add customize the Error Callback API: HAL_PPP_ErrorCallback()
      • HAL SD driver:
        • 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 example to identify the changes: BSP example and USB_Device/MSC_Standalone application
      • HAL NAND driver:
        • Modify NAND_AddressTypeDef, NAND_DeviceConfigTypeDef and NAND_HandleTypeDef structures fields
        • Add new HAL_NAND_ConfigDevice API
      • HAL CEC driver: Overall driver rework with compatibility break versus previous HAL version
        • Remove HAL CEC polling Process functions: HAL_CEC_Transmit() and HAL_CEC_Receive()
        • Remove HAL CEC receive interrupt process function HAL_CEC_Receive_IT() and enable the “receive” mode during the Init phase
        • Rename HAL_CEC_GetReceivedFrameSize() funtion to HAL_CEC_GetLastReceivedFrameSize()
        • Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()
        • Remove the ‘InitiatorAddress’ field from the CEC_InitTypeDef structure and manage it as a parameter in the HAL_CEC_Transmit_IT() function
        • Add new parameter ‘RxFrameSize’ in HAL_CEC_RxCpltCallback() function
        • Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure
      • HAL IWDG driver: rework overall driver for better implementation
        • Remove HAL_IWDG_Start(), HAL_IWDG_MspInit() and HAL_IWDG_GetState() APIs
      • HAL WWDG driver: rework overall driver for better implementation?Remove HAL_WWDG_Start(), HAL_WWDG_Start_IT(), HAL_WWDG_MspDeInit() and HAL_WWDG_GetState() APIs
        • Update the HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg, uint32_t counter) function and API by removing the “counter” parameter
  • CMSIS
    • Fix known defects and several implementation enhancement
    • General update to support Low layer drivers (LL)
  • Middleware
    • Update STemWin Library V5.32 with a new build with EWARM V7.80
    • Upgrade to use new version of LwIP V2.0.0
      • Note: Applications based on previous version LwIP V1.4.1 require update to cope with the upgrade to the currently used V2.0.0. For details please refer to its Release Note and to the updated LwIP applications provided by this firmware package.
    • Update to new version of FreeRTOS V9.0.0
    • Update FatFS to implement changes on sd_diskio.c file to be aligned with HAL SD driver and BSP drivers API changes.
  • Projects
    • General updates to fix known defects and enhancements implementation
    • Add Low Layer examples and MIX examples on the STM32F103RB-Nucleo, STM32F10E-EVAL boards
    • Update overall projects to be aligned with latest version of HAL, BSP and Middleware drivers
    • Add HAL_TimeBase RTC examples on all the supported boards
    • Add I2C_TwoBoards_RestartAdvComIT and I2C_TwoBoards_RestartComIT Examples
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.5.2
  • System Workbench for STM32 (SW4STM32) toolchain V1.13

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Maintenance release to fix known defects and several enhancements implementation.

  • HAL
    • HAL RCC
      • Add suffix U for defines equals to 0xFFFFFFFF (fix MISRA error 10.6)
      • Optimization of HAL_RCC_ClockConfig().
      • Replace aAPBAHBPrescTable by APBPrescTable and AHBPrescTable defined inside system_stm32f1xx.c.
      • When using HAL_RCC_OscConfig to activate LSE, if LSE is already ON, it remains in its state ON. Previously, it was turned OFF then ON in all cases.
      • The backup domain is no more reset when changing the RTC clock source from reset value.
      • Correct strange behavior in HAL_RCCEx_PeriphCLKConfig.
    • HAL UART
      • Correct the macro UART_BRR_SAMPLING16
    • HAL SMARTCARD
      • Correct the macro SMARTCARD_BRR
    • HAL IRDA
      • Correct the macro IRDA_BRR
      • EIE bit is no more activated in transmit (this bit only triggers errors in reception)
      • EIE bit is reset at the end of the reception.
    • HAL DMA
      • Add macro __HAL_DMA_GET_COUNTER to get the number of remaining data units in the current channel.
      • HAL FSMC
      • Adapt FSMC_NAND_Init behavior to the others STM32 series by reseting the bit FSMC_PCRx_PBKEN.
  • CMSIS
    • Add _Pos and _Msk defines to be used with _VAL2FLD(field, value) and _FLD2VAL(field, value).
    • The previous naming are kept for backward compatibility.
    • Add APBPrescTable constant to list APB prescalers values.
  • BSP
    • STM32F1xx_Nucleo
      • Add support for 4 Gb sd cards.
    • STM3210E_EVAL
      • Set the NVIC priority to the lowest possible to not interfere with user settings.
    • STM3210C_EVAL
      • Set the NVIC priority to the lowest possible to not interfere with user settings.
  • Middlewares
    • Update to FreeRTOS V8.2.3.
    • Update to STM32 USB Device Library V2.4.2
  • Others
    • Add latest version of STM32CubeUpdater (V4.10.0).

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.5.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix issue in HAL driver:
    • Remove the #if defined(USE_HAL_LEGACY) condition to include Legacy/stm32_hal_legacy.h by default, in stm32f1xx_hal_def.h.

Contents

Name Version Licence Release note
STM32F1xx HAL V1.0.3 BSD-3-Clause release notes

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.5.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Maintenance release to fix known defects and several enhancements implementation.

  • HAL
    • Insure that do {} while(0) are used in in multi statement macros. (hal eth and pcd)
    • Manage simultaneous errors in IRQHandler. (hal uart, smartcard, usart and uart)
    • To ensure the full compatibility of the GPIO interfaces across all the STM32 families, the gpio speed definition have been renamed:
    • GPIO_SPEED_LOW to GPIO_SPEED_FREQ_LOW
    • GPIO_SPEED_MEDIUM to GPIO_SPEED_FREQ_MEDIUM
    • GPIO_SPEED_HIGH to GPIO_SPEED_FREQ_HIGH
    • aliases are created to keep backward compatibility
    • Reduce the default timeout value for the startup of the HSE form 5s to 100ms.
    • Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers.
  • CMSIS
    • Align bit name across all STM32 families (EXTI, WWDG) and keeping backward compatibility with aliases.
  • Middlewares
    • Update to CMSIS V4.5.
  • Projects
    • Update all Keil project from Keil V4 to Keil V5.
    • Update all SW4STM32 projects to version 1.5.0.
  • Others
    • Add latest version of STM32CubeUpdater (V4.10.0).

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.5.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Maintenance release.
  • Fix known defects and several enhancements implementation.

  • Projects
    • Adding new projects to introduce the FreeRTOS V8.2.1
      • FreeRTOS_SignalFromISR (thread signaling from an interrupt)
      • FreeRTOS_Signal (thread signaling)
      • FreeRTOS_Mail (mail queues)
    • Adding new application IAP for STM3210E_EVAL board.
  • FatFs
    • Upgrade to use FatFs R0.11.
    • Add new APIs FATFS_LinkDriverEx() and FATFS_UnLinkDriverEx() to manage USB Key Disk having multi-lun capability. These APIs are equivalent to FATFS_LinkDriver() and FATFS_UnLinkDriver() with “lun” parameter set to 0.
    • ff_conf.h: add new define "_USE_BUFF_WO_ALIGNMENT".
    • Important note:
      • For application code based on previous FatFs version; when moving to R0.11 the changes that need to be done is to update ffconf.h file, taking ffconf_template.h file as reference.
  • CMSIS
    • CMSIS-Core V4.10
      • Corrected: MISRA-C:2004 violations.
      • Corrected: intrinsic functions __DSB, __DMB, __ISB.
      • Corrected: register definitions for ITCMCR register.
      • Corrected: register definitions for CONTROL_Type register.
      • Added: functions SCB_GetFPUType, SCB_InvalidateDCache_by_Addr to core_cm7.h.
      • Added: register definitions for APSR_Type, IPSR_Type, xPSR_Type register.
      • Added: __set_BASEPRI_MAX function to core_cmFunc.h.
      • Added: intrinsic functions __RBIT, __CLZ for Cortex-M0/CortexM0+.
    • CMSIS-DSP V1.4.5
      • Fixed bug in arm_mat_inverse_f32.c and arm_mat_inverse_f64.c. They weren’t properly handling diagonal matrices.
      • arm_cfft_f32.c - help documentation updated
      • Updated documentation to show deprecated functions
    • CMSIS-RTOS V1.02 (unchanged)

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
    • Important note: some of MDK-ARM projects were created with previous version like v4.73. If you are using MDK-ARM v5.10 (and later) you have to install a legacy patch to be able to open projects built with v4.73, here is the download link
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.2.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Add support of System Workbench for STM32 (SW4STM32) toolchain

  • HAL
  • No changes

  • Middlewares
  • No changes

  • BSP
  • No changes

  • Projects
  • Add projects for SW4STM32 toolchain

Contents

Drivers
Name Version Licence Release note
Cortex-M CMSIS V4.2.0 BSD-3-Clause release notes
STM32F1xx CMSIS V4.0.0 BSD-3-Clause release notes
STM32F1xx HAL V1.0.0 BSD-3-Clause release notes
BSP STM3210E_EVAL V6.0.0 BSD-3-Clause release notes
BSP STM3210C_EVAL V6.0.0 BSD-3-Clause release notes
BSP STM32VL-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32F1xx_Nucleo V1.0.1 BSD-3-Clause release notes
BSP Components Common V2.0.0 BSD-3-Clause release notes
BSP Components stmpe811 V2.0.0 BSD-3-Clause release notes
BSP Components spfd5408 V1.1.1 BSD-3-Clause release notes
BSP Components hx8347d V1.1.1 BSD-3-Clause release notes
BSP Components ili9320 V1.2.2 BSD-3-Clause release notes
BSP Components stlm75 V1.0.1 BSD-3-Clause release notes
BSP Components ili9325 V1.2.2 BSD-3-Clause release notes
BSP Components cs43l22 V1.1.0 BSD-3-Clause release notes
BSP Components ak4343 V1.0.0 BSD-3-Clause release notes
BSP Components lis302dl V1.0.2 BSD-3-Clause release notes
BSP Components st7735 V1.1.1 BSD-3-Clause release notes
BSP Adafruit_Shield V1.1.1 BSD-3-Clause release notes
Middlewares
Name Version Licence Release note
STemWin V5.26 SLA0044 release notes
STM32 USB Device Library V2.3.0 SLA0044 release notes
STM32 USB Host Library V3.2.0 SLA0044 release notes
FatFS R0.10b BSD-3-Clause release notes ST modified 20141204 release notes
FreeRTOS V8.1.2 MIT release notes ST modified 20150327 release notes
LwIP V1.4.1 BSD-3-Clause release notes ST modified 20140619 release notes
Utilities
Name Version License Release note
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

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.2.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • First official release of STM32CubeF1 (STM32Cube for STM32F1 Series)

Contents

Drivers
Name Version Licence Release note
Cortex-M CMSIS V4.2.0 BSD-3-Clause release notes
STM32F1xx CMSIS V4.0.0 BSD-3-Clause release notes
STM32F1xx HAL V1.0.0 BSD-3-Clause release notes
BSP STM3210E_EVAL V6.0.0 BSD-3-Clause release notes
BSP STM3210C_EVAL V6.0.0 BSD-3-Clause release notes
BSP STM32VL-Discovery V1.0.0 BSD-3-Clause release notes
BSP STM32F1xx_Nucleo V1.0.1 BSD-3-Clause release notes
BSP Components Common V2.0.0 BSD-3-Clause release notes
BSP Components stmpe811 V2.0.0 BSD-3-Clause release notes
BSP Components spfd5408 V1.1.1 BSD-3-Clause release notes
BSP Components hx8347d V1.1.1 BSD-3-Clause release notes
BSP Components ili9320 V1.2.2 BSD-3-Clause release notes
BSP Components stlm75 V1.0.1 BSD-3-Clause release notes
BSP Components ili9325 V1.2.2 BSD-3-Clause release notes
BSP Components cs43l22 V1.1.0 BSD-3-Clause release notes
BSP Components ak4343 V1.0.0 BSD-3-Clause release notes
BSP Components lis302dl V1.0.2 BSD-3-Clause release notes
BSP Components st7735 V1.1.1 BSD-3-Clause release notes
BSP Adafruit_Shield V1.1.1 BSD-3-Clause release notes
Middlewares
Name Version Licence Release note
STemWin V5.26 SLA0044 release notes
STM32 USB Device Library V2.3.0 SLA0044 release notes
STM32 USB Host Library V3.2.0 SLA0044 release notes
FatFS R0.10b BSD-3-Clause release notes ST modified 20141204 release notes
FreeRTOS V8.1.2 MIT release notes ST modified 20150327 release notes
LwIP V1.4.1 BSD-3-Clause release notes ST modified 20140619 release notes
Utilities
Name Version License Release note
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
STM32Cube_FW_F1 Projects
Board Examples Applications Demonstrations
STM3210E-EVAL 30 8 N/A
STM3210C-EVAL 17 19 N/A
STM32VL-Discovery 16 N/A N/A
NUCLEO-F103RB 24 3 1

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.2.0 + ST-LINK

Supported Devices and EVAL boards

  • STM32F1xx Value, Access, USB, Performance, OTG & Ethernet Lines
  • STM3210E-Eval board RevD
  • STM3210C-Eval board RevC
  • STM32VL-Discovery board RevC
  • STM32F1xx-Nucleo board RevC

Backward Compatibility

  • None

Dependencies

  • None