Back to Release page

# Release Notes for STM32F10x CMSIS

Copyright 2016 STMicroelectronics

## Update History

### V4.1.0 / 29-April-2016

Main Changes

- Add _Pos and _Msk defines to be used with _VAL2FLD(field, value) and _FLD2VAL(field, value).

- The previous naming are kept for backward compatibility.

- RCC: Add define RCC_CFGR_MCOSEL for compatibility across all STM32 series.
- ADC: Add define ADC_MULTIMODE_SUPPORT for devices supporting the ADC multimode feature.
- ADC: Add define ADC_SR_EOS and ADC_SR_JEOS for compatibility accross all STM32 series.
- stm32f1xx.h: Replace __STM32F1xx_CMSIS_DEVICE_VERSION_MAIN by __STM32F1_CMSIS_VERSION_MAIN for MISRA compliancy on define length name.
- Add APBPrescTable constant to list APB prescalers values.
- Add FLASHSIZE_BASE for the FLASH Size register base address.
- Add UID_BASE for the unique device ID register base address.

### V4.0.2 / 18-December-2015

Main Changes

- FLASH: Add FLASH_OBR_DATA0 and FLASH_OBR_DATA1 for FLASH_OBR register.
- WWDG: Align bit name across all STM32 families.

- WWDG_CR_T0 renmaed to WWDG_CR_T_0.
- WWDG_CFR_W0 renamed to WWDG_CFR_W_0.
- WWDG_CFR_WDGTB0 renamed to WWDG_CFR_WDGTB_0.
- WWDG_CFR_WDGTB1 renamed to WWDG_CFR_WDGTB_1.
- Aliases are created for backward compatibilities.

- Interrupt: Add HardFault_IRQn with value -13.
- EXTI:: Align bit name across all STM32 families.

- EXTI_IMR_MR0 renamed to EXTI_IMR_IM0.
- EXTI_EMR_MR0 renamed to EXTI_EMR_EM0.
- EXTI_RTSR_TR0 renamed to EXTI_RTSR_RT0.
- EXTI_FTSR_TR0 renamed to EXTI_FTSR_FT0.
- EXTI_SWIER_SWIER0 renamed to EXTI_SWIER_SWI0.
- EXTI_PR_PR0 renamed to EXTI_PR_PIF0.
- Aliases are created for backward compatibilities.

- USB OTG: Remove USB_OTG_GCCFG_NOVBUSSENS from USB_OTG_GCCFG as this feature is not present in F1 devices.
- USB_OTG: Remove USB_OTG_GCCFG_I2CPADEN from USB_OTG_GCCFG as this feature is not present in F1 devices.
- ADC: Add the notion of common instance for compatibility with other STM32 families.

### V4.0.1 / 31-July-2015

Main Changes

- Remove __IO or __I on constant table declaration (AHBPrescTable in system_stm32f1xx.c) due to issue with mbed C++ code. The table content was filled with random value at initialization phase.
- uint8_t alignment done on CMSIS CRC registers structure.
- Removing definition of FLASH_WRP1_WRP1, FLASH_WRP1_nWRP1, FLASH_WRP2_WRP2, FLASH_WRP2_nWRP2, FLASH_WRP3_WRP3 and FLASH_WRP3_nWRP3 for product STM32F101x6, STM32F102x6 and STM32F103x6. Those defines are not applicable to those products.

### V4.0.0 / 16-December-2014

Main Changes

- Update based on STM32Cube specification
- This version has to be used only with STM32CubeF1 based development

### V3.6.3 / 10-April-2014

Main Changes

- Update startup files for EWARM toolchain to cope with compiler enhancement of the V7.10 version.

### V3.6.2 / 28-February-2013

Main Changes

- stm32f10x.h

- Change #define FLASH_ACR_LATENCY ((uint8_t)0x03) by #define FLASH_ACR_LATENCY ((uint8_t)0x07)
- Remove ',' from #define DMA_CCR7_PSIZE , ((uint16_t)0x0300)

### V3.6.1 / 09-March-2012

Main Changes

- All source files: license disclaimer text update and add link to the License file on ST Internet.

### V3.6.0 / 27-January-2012

Main Changes

- Update directory structure to be compliant with CMSIS V2.1
- All source files: update disclaimer to add reference to the new license agreement
- stm32f10x.h

- Add define for Cortex-M3 revision __CM3_REV
- Allow modification of some constants by the application code, definition of these constants is now bracketed by #if !defined. The concerned constant are HSE_VALUE, HSI_VALUE and HSE_STARTUP_TIMEOUT
- Add missing bits definition for DAC CR register
- Add missing bits definition for FSMC BTR1, BTR2, BTR3, BWTR1, BWTR2, BWTR3 and BWTR4 registers
- Definition for Flash keys moved from stm32f10x_flash.c to stm32f10x.h

- Add startup file for TASKING toolchain
- V3.5.0 (based CMSIS V1.3) vs. V3.6.0 (based on CMSIS V2.1) compatibility update

- Due to the directory structure difference between CMSIS V1.3 and V2.1, when migrating a project based on STM32F10x drivers V3.5.0 to V3.6.0 you need to perform the following update:

- In the compiler preprocessor, remove CortexM3 CMSIS include path. CortexM3 CMSIS files are included by default in your development toolchain
- Remove core_cm3.c file (if it is used). Almost of CortexM3 CMSIS function are provided as intrinsic by the compiler
- In the compiler preprocessor, update path of STM32F10x CMSIS include files from Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x to Libraries\CMSIS\Device\ST\STM32F10x\Include
- In the project settings, update path of startup_stm32f10x_xx.s file from Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\”Compiler” to Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\”Compiler”

where, "Compiler" refer to arm, gcc_ride7, iar, TASKING or TrueSTUDIO

### V3.5.0 / 11-March-2011

Main Changes

- stm32f10x.h and startup_stm32f10x_hd_vl.s files: remove the FSMC interrupt definition for STM32F10x High-density Value line devices.
- system_stm32f10x.c file provided within the CMSIS folder.

### 3.4.0 - 10/15/2010

1. General

- Add support for STM32F10x High-density Value line devices.

2. STM32F10x CMSIS Device Peripheral Access Layer

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h

- Update to support High-density Value line devices

- Add new define STM32F10X_HD_VL
- RCC, AFIO, FSMC bits definition updated

- All STM32 devices definitions are commented by default. User has to select the appropriate device before starting else an error will be signaled on compile time.
- Add new IRQs definitions inside the IRQn_Type enumeration for STM23 High-density Value line devices.
- "bool" type removed.

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c

- "system_stm32f10x.c" moved to to "STM32F10x_StdPeriph_Template" directory. This file is also moved to each example directory under "STM32F10x_StdPeriph_Examples".
- SystemInit_ExtMemCtl() function: update to support High-density Value line devices.
- Add "VECT_TAB_SRAM" inside "system_stm32f10x.c" to select if the user want to place the Vector Table in internal SRAM. An additional define is also to specify the Vector Table offset "VECT_TAB_OFFSET".

- STM32F10x CMSIS startup files:startup_stm32f10x_xx.s

- Add three startup files for STM32 High-density Value line devices: startup_stm32f10x_hd_vl.s

### 3.3.0 - 04/16/2010

1. General

- Add support for STM32F10x XL-density devices.
- Add startup files for TrueSTUDIO toolchain

2. STM32F10x CMSIS Device Peripheral Access Layer

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h

- Update to support XL-density devices

- Add new define STM32F10X_XL

- Add new IRQs for TIM9..14
- Update FLASH_TypeDef structure
- Add new IP instances TIM9..14
- RCC, AFIO, DBGMCU bits definition updated

- Correct IRQs definition for MD-, LD-, MD_VL- and LD_VL-density devices (remove comma "," at the end of enum list)

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c

- SystemInit_ExtMemCtl() function: update to support XL-density devices
- SystemInit() function: swap the order of SetSysClock() and SystemInit_ExtMemCtl() functions.

- STM32F10x CMSIS startup files:

- add three startup files for STM32 XL-density devices: startup_stm32f10x_xl.s
- startup_stm32f10x_md_vl.s for RIDE7: add USART3 IRQ Handler (was missing in previous version)
- Add startup files for TrueSTUDIO toolchain

### 3.2.0 - 03/01/2010

1. General

- STM32F10x CMSIS files updated to CMSIS V1.30 release
- Directory structure updated to be aligned with CMSIS V1.30
- Add support for STM32 Low-density Value line (STM32F100x4/6) and Medium-density Value line (STM32F100x8/B) devices.

2. CMSIS Core Peripheral Access Layer

- Refer to CMSIS changes

3. STM32F10x CMSIS Device Peripheral Access Layer

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer Header File: stm32f10x.h

- Update the stm32f10x.h file to support new Value line devices features: CEC peripheral, new General purpose timers TIM15, TIM16 and TIM17.
- Peripherals Bits definitions updated to be in line with Value line devices available features.
- HSE_Value, HSI_Value and HSEStartup_TimeOut changed to upper case: HSE_VALUE, HSI_VALUE and HSE_STARTUP_TIMEOUT. Old names are kept for legacy purposes.

- STM32F10x CMSIS Cortex-M3 Device Peripheral Access Layer System Files: system_stm32f10x.h and system_stm32f10x.c

- SystemFrequency variable name changed to SystemCoreClock
- Default SystemCoreClock is changed to 24MHz when Value line devices are selected and to 72MHz on other devices.
- All while(1) loop were removed from all clock setting functions. User has to handle the HSE startup failure.
- Additional function void SystemCoreClockUpdate (void) is provided.

- STM32F10x CMSIS Startup files: startup_stm32f10x_xx.s

- Add new startup files for STM32 Low-density Value line devices: startup_stm32f10x_ld_vl.s
- Add new startup files for STM32 Medium-density Value line devices: startup_stm32f10x_md_vl.s
- SystemInit() function is called from startup file (startup_stm32f10x_xx.s) before to branch to application main.
  To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file
- GNU startup file for Low density devices (startup_stm32f10x_ld.s) is updated to fix compilation errors.

## 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:

http://www.st.com/software_license_agreement_liberty_v2
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