Release Notes for STM32CubeF1 Firmware Package

Copyright 2017 STMicroelectronics

 


STMCube is an STMicroelectronics original initiative to ease developers life by reducing development efforts, time and cos
t. STM32Cube covers STM32 portfolio.


STM32Cube Version 1.x includes:
    • The STM32CubeMX, a graphical software configuration tool that allows to generate C initialization code using graphical wizards.
    • A comprehensive embedded software platform, delivered per series (such as STM32CubeF1 for STM32F1 series)
      • The STM32Cube HAL, an STM32 abstraction layer embedded software, ensuring maximized portability across STM32 portfolio
      • A consistent set of middleware components such as RTOS, USB, TCP/IP, Graphics
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 HAL (Hardware Abstraction Layer) drivers provided within this package supports the following STM32F100xx  STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx Series.

  • The STM32CubeF1 firmware package comes with an updater utility, STM32CubeUpdater, that can be configured for automatic or on-demand checks for new firmware package updates (new releases or/and patches).
  • For quick getting started with the STM32CubeF1 firmware package, refer to UM1847 and you can download firmware updates and all the latest documentation from www.st.com/stm32cube
  • Below links to the most useful documents
    • Latest release of STM32CubeF1 Firmware package.
    • UM1847: Getting started with STM32CubeF1 for STM32F1 Series.
    • UM1853: STM32CubeF1 Nucleo demonstration firmware.
    • UM1850: Description of STM32F1xx HAL drivers.
    • UM1734: STM32Cube USB Device library.
    • UM1720: STM32Cube USB host library.
    • UM1721: Developing Applications on STM32Cube with FatFs.
    • UM1722: Developing Applications on STM32Cube with RTOS.
    • UM1713: Developing applications on STM32Cube with LwIP TCP/IP stack.
    • UM1709: STM32Cube Ethernet IAP example.

Update History

V1.6.1 / 09-March-2018

Main Changes

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

Contents

V1.6.0 / 12-May-2017

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


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

Known Limitations

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

V1.5.0 / 14-April-2017

Main Changes

  • Add Low Layer drivers under Drivers\STM32F1xx_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 additionnal Low Level Bus, System and Utilities APIs. 
      • Low Layer drivers APIs are implemented as static inline 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 for Low Layer presentation and UM1850 for API list
  • General update to fix known defects and several implementations enhancement
  • \HAL
    • Add Low Layer drivers under Drivers\STM32F1xx_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


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

Known Limitations

  • None

V1.4.0 / 29-April-2016

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.
  • BSP STM3210E_EVAL
    • Set the NVIC priority to the lowest possible to not interfere with user settings.
  • BSP 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).

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

Known Limitations

  • None

V1.3.1 / 11-January-2016

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

V1.3.0 / 18-December-2015

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

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

Known Limitations

  • None

V1.2.0 / 31-July-2015

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.
  • \STM32 USB Host and STM32 USB Device Library
    • This new versions implements only bug fixes with minor enhancements, it doesn’t impact neither the APIs nor the behavior of applications developed so far.
  • \STemWin
    • Upgrade to use SEGGER emWin version V5.28, for more details about the changes in this version refer to "Revision History" section in STemWin528.pdf document
  • \FreeRTOS
    • No changes in file naming/set of sources files.
    • Align Port.c for CM7, CM4 and CM3  to M0  regarding function “vPortSuppressTicksAndSleep : Same implementation for CM7, CM4 and CM3 as CM0
    • Macros “configPRE_SLEEP_PROCESSING” and  “configPOST_SLEEP_PROCESSING are now passing the parameter ulExpectedIdleTime by pointer
    • Adding implementation for APIs “osSignalSet” and “osSignalWait”.
    • API changes on CMSIS-RTOS (osDelayUntil()).
    • Internal enhancements and bug fixes.
    • CMSIS-DSP V1.4.5
    • CMSIS-RTOS V1.02 (unchanged)

Contents


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

Known Limitations

  • None

V1.1.0 / 05-June-2015

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

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

Known Limitations

  • None

V1.0.0 / 17-December-2014

Main Changes

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

Contents


STM32Cube_FW_F1  Projects (details)

Board

Examples

Applications

Demonstration

STM3210E-EVAL

30

8

N/A

STM3210C-EVAL

17

19

N/A

STM32VL-Discovery

16

N/A

N/A

NUCLEO-F103RB

24

3

1


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

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

Known Limitations

  • None

License

Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at:


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

For complete documentation on STM32 Microcontrollers visit www.st.com/STM32