]> begriffs open source - cmsis-dfp-stm32f4/blob - Release_Notes.html
[CMSIS] Allow redefinition of the macro 'VECT_TAB_OFFSET' externally from the IDE...
[cmsis-dfp-stm32f4] / Release_Notes.html
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3 <head>
4   <meta charset="utf-8" />
5   <meta name="generator" content="pandoc" />
6   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7   <title>Release Notes for STM32F4xx CMSIS</title>
8   <style type="text/css">
9       code{white-space: pre-wrap;}
10       span.smallcaps{font-variant: small-caps;}
11       span.underline{text-decoration: underline;}
12       div.column{display: inline-block; vertical-align: top; width: 50%;}
13   </style>
14   <link rel="stylesheet" href="_htmresc/mini-st_2020.css" />
15   <!--[if lt IE 9]>
16     <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
17   <![endif]-->
18   <link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
19 </head>
20 <body>
21 <div class="row">
22 <div class="col-sm-12 col-lg-4">
23 <center>
24 <h1 id="release-notes-for">Release Notes for</h1>
25 <h1 id="stm32f4xx-cmsis"><mark>STM32F4xx CMSIS</mark></h1>
26 <p>Copyright © 2017 STMicroelectronics<br />
27 </p>
28 <a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
29 </center>
30 <h1 id="purpose">Purpose</h1>
31 <p>This driver provides the CMSIS device for the stm32f4xx products.</p>
32 </div>
33 <div class="col-sm-12 col-lg-8">
34 <h1 id="update-history">Update History</h1>
35 <div class="collapse">
36 <input type="checkbox" id="collapse-section32" checked aria-hidden="true"> <label for="collapse-section32" aria-hidden="true">V2.6.10 / 31-May-2024</label>
37 <div>
38 <h2 id="main-changes">Main Changes</h2>
39 <ul>
40 <li>Add MCO2PRE[2:0] and MCO2[1:0] bits definition within CMSIS files.</li>
41 </ul>
42 </div>
43 </div>
44 <div class="collapse">
45 <input type="checkbox" id="collapse-section31" aria-hidden="true"> <label for="collapse-section31" aria-hidden="true">V2.6.9 / 22-September-2022</label>
46 <div>
47 <h2 id="main-changes-1">Main Changes</h2>
48 <ul>
49 <li>Added new atomic register access macros in stm32f4xx.h file.</li>
50 <li>Update FLASH_SCALE2_LATENCY4_FREQ value to 120MHz instead of 12MHz.</li>
51 <li>Update the GCC startup file to be aligned to IAR/Keil IDE.</li>
52 <li>STM32F410/412/413/423:
53 <ul>
54 <li>Fix wrong defined value for wake-up pin 3 (PWR_CSR_EWUP3).</li>
55 </ul></li>
56 </ul>
57 </div>
58 </div>
59 <div class="collapse">
60 <input type="checkbox" id="collapse-section30" aria-hidden="true"> <label for="collapse-section30" aria-hidden="true">V2.6.8 / 11-Fabruary-2022</label>
61 <div>
62 <h2 id="main-changes-2">Main Changes</h2>
63 <ul>
64 <li>All source files: update disclaimer to add reference to the new license agreement.</li>
65 <li>Correct ETH bits definitions to be in line with naming used in the STM32F4 reference manual documents.</li>
66 </ul>
67 </div>
68 </div>
69 <div class="collapse">
70 <input type="checkbox" id="collapse-section29" aria-hidden="true"> <label for="collapse-section29" aria-hidden="true">V2.6.7 / 16-July-2021</label>
71 <div>
72 <h2 id="main-changes-3">Main Changes</h2>
73 <ul>
74 <li>Add missing definition FLASH_CR_ERRIE to the CMSIS header file.</li>
75 <li>Remove unsupported “GPIOF_BASE” and “GPIOG_BASE” defines from STM32F412Vx device.</li>
76 <li>Add new atomic register access macros in stm32f4xx.h file.</li>
77 <li>Add LSI maximum startup time datasheet value: LSI_STARTUP_TIME.</li>
78 <li>Fix a typo in CMSIS STM32F4xx version macro (__STM32F4xx_CMSIS_VERSION).</li>
79 </ul>
80 </div>
81 </div>
82 <div class="collapse">
83 <input type="checkbox" id="collapse-section28" aria-hidden="true"> <label for="collapse-section28" aria-hidden="true">V2.6.6 / 12-Fabruary-2021</label>
84 <div>
85 <h2 id="main-changes-4">Main Changes</h2>
86 <ul>
87 <li>system_stm32f4xx.c:
88 <ul>
89 <li>Protect Vector table modification following SRAM or FLASH preprocessor directive by a generic preprocessor directive : USER_VECT_TAB_ADDRESS</li>
90 <li>Update SystemInit_ExtMemCtl() API to initialize the tmpreg variable before each time out loop condition.</li>
91 </ul></li>
92 <li>Add License.md and Readme.md files required for GitHub publication</li>
93 <li>Improve GCC startup files robustness.</li>
94 <li>Fix wrong value for GPIO_MODER_MODE8_Msk and GPIO_MODER_MODE2_Pos.</li>
95 <li>Update max number of host channels in FS for STM32F446:
96 <ul>
97 <li>Update USB_OTG_FS_HOST_MAX_CHANNEL_NBR value from 8 to 12.</li>
98 </ul></li>
99 <li>Add SMBDEN and SMBHEN bit definition for STM32F410Tx device.</li>
100 </ul>
101 </div>
102 </div>
103 <div class="collapse">
104 <input type="checkbox" id="collapse-section27" aria-hidden="true"> <label for="collapse-section27" aria-hidden="true">V2.6.5 / 10-Fabruary-2020</label>
105 <div>
106 <h2 id="main-changes-5">Main Changes</h2>
107 <ul>
108 <li>All header files
109 <ul>
110 <li>Update to use new BSD License format</li>
111 </ul></li>
112 <li>MDK-ARM startup files
113 <ul>
114 <li>Update to fix invalid config wizard annotations</li>
115 </ul></li>
116 </ul>
117 </div>
118 </div>
119 <div class="collapse">
120 <input type="checkbox" id="collapse-section26" aria-hidden="true"> <label for="collapse-section26" aria-hidden="true">V2.6.4 / 06-December-2019</label>
121 <div>
122 <h2 id="main-changes-6">Main Changes</h2>
123 <ul>
124 <li>stm32f446xx.h file
125 <ul>
126 <li>Update to support HW flow control on UART4 and UART5 instances</li>
127 </ul></li>
128 <li>stm32f412xx.h, stm32f413xx.h and stm32f423xx.h files
129 <ul>
130 <li>Remove unused IS_USB_ALL_INSTANCE() assert macro</li>
131 </ul></li>
132 <li>All header files
133 <ul>
134 <li>Remove unused IS_TIM_SYNCHRO_INSTANCE() assert macro</li>
135 </ul></li>
136 <li>system_stm32f4xx.c file
137 <ul>
138 <li>Update SystemInit() API to don’t reset RCC registers to its reset values</li>
139 </ul></li>
140 </ul>
141 </div>
142 </div>
143 <div class="collapse">
144 <input type="checkbox" id="collapse-section25" aria-hidden="true"> <label for="collapse-section25" aria-hidden="true">V2.6.3 / 08-Fabruary-2019</label>
145 <div>
146 <h2 id="main-changes-7">Main Changes</h2>
147 <ul>
148 <li>CRYP:
149 <ul>
150 <li>Update CMSIS devices with correct CRYP data input register name: DIN instead of DR</li>
151 <li>Add Bits definition for CRYP CR ALGOMODE AES GCM/CCM</li>
152 </ul></li>
153 <li>HASH:
154 <ul>
155 <li>Update HASH_DIGEST_TypeDef structure: resize the HR register</li>
156 <li>Remove MDMAT Bits definition</li>
157 </ul></li>
158 <li>TIM:
159 <ul>
160 <li>Add requires TIM assert macros:</li>
161 <li>IS_TIM_SYNCHRO_INSTANCE()</li>
162 <li>IS_TIM_CLOCKSOURCE_TIX_INSTANCE()</li>
163 <li>IS_TIM_CLOCKSOURCE_ITRX_INSTANCE()</li>
164 </ul></li>
165 <li>RCC
166 <ul>
167 <li>Add RCC_CSR_BORRSTF bits definition</li>
168 </ul></li>
169 <li>GPIO
170 <ul>
171 <li>Fix GPIO BRR bits definition</li>
172 <li>Adjust the GPIO present on STM32F412 devices</li>
173 </ul></li>
174 <li>SAI
175 <ul>
176 <li>Fix frame length in SAI_xFRCR_FSALL &amp; SAI_xFRCR_FRL bits description</li>
177 </ul></li>
178 <li>USB:
179 <ul>
180 <li>Add missing Bits Definitions in USB_OTG_DOEPMSK register</li>
181 <li>USB_OTG_DOEPMSK_AHBERRM</li>
182 <li>USB_OTG_DOEPMSK_OTEPSPRM</li>
183 <li>USB_OTG_DOEPMSK_BERRM</li>
184 <li>USB_OTG_DOEPMSK_NAKM</li>
185 <li>USB_OTG_DOEPMSK_NYETM</li>
186 <li>Add missing Bits Definitions in USB_OTG_DIEPINT register</li>
187 <li>USB_OTG_DIEPINT_INEPNM</li>
188 <li>USB_OTG_DIEPINT_AHBERR</li>
189 <li>USB_OTG_DOEPINT_OUTPKTERR</li>
190 <li>USB_OTG_DOEPINT_NAK</li>
191 <li>USB_OTG_DOEPINT_STPKTRX</li>
192 <li>Add missing Bits Definitions in USB_OTG_DCFG register</li>
193 <li>USB_OTG_DCFG_XCVRDLY</li>
194 <li>USB_OTG_DCFG_ERRATIM</li>
195 <li>Update USB OTG max number of endpoints (6 FS and 9 HS instead of 5 and 8)</li>
196 </ul></li>
197 <li>I2C/FMPI2C
198 <ul>
199 <li>Align Bit naming for FMPI2C_CR1 register: FMPI2C_CR1_DFN–&gt; FMPI2C_CR1_DNF</li>
200 <li>Add IS_SMBUS_ALL_INSTANCE() define</li>
201 </ul></li>
202 <li>DFSDM
203 <ul>
204 <li>Align Bit naming for DFSDM_FLTICR register: DFSDM_FLTICR_CLRSCSDF–&gt; DFSDM_FLTICR_CLRSCDF</li>
205 </ul></li>
206 <li>PWR
207 <ul>
208 <li>Remove PWR_CSR_WUPP define: feature not available on STM32F469xx/479xx devices</li>
209 </ul></li>
210 </ul>
211 </div>
212 </div>
213 <div class="collapse">
214 <input type="checkbox" id="collapse-section24" aria-hidden="true"> <label for="collapse-section24" aria-hidden="true">V2.6.2 / 06-October-2017</label>
215 <div>
216 <h2 id="main-changes-8">Main Changes</h2>
217 <ul>
218 <li>Remove Date and Version from all header files</li>
219 <li>USB_OTG register clean up: remove duplicated bits definitions</li>
220 <li>stm32f401xc.h, stm32f401xe.h, stm32f411xe.h files
221 <ul>
222 <li>Remove BKPSRAM_BASE define: feature not available</li>
223 </ul></li>
224 <li>stm32f405xx.h, stm32f407xx.h files
225 <ul>
226 <li>Rename HASH_RNG_IRQn to RNG_IRQn: HASH instance not available</li>
227 </ul></li>
228 <li>stm32f410xx.h, stm32f412xx.h, stm32f413xx.h, stm32f423xx.h files
229 <ul>
230 <li>Add missing wake-up pins defines</li>
231 </ul></li>
232 <li>stm32f412cx.h files
233 <ul>
234 <li>Add support of USART3 instance</li>
235 </ul></li>
236 </ul>
237 </div>
238 </div>
239 <div class="collapse">
240 <input type="checkbox" id="collapse-section23" aria-hidden="true"> <label for="collapse-section23" aria-hidden="true">V2.6.1 / 14-Fabruary-2017</label>
241 <div>
242 <h2 id="main-changes-9">Main Changes</h2>
243 <ul>
244 <li>General updates in header files to support LL drivers
245 <ul>
246 <li>Align Bit naming for RCC_CSR register (ex: RCC_CSR_PADRSTF –&gt; RCC_CSR_PINRSTF)</li>
247 <li>Add new defines for RCC features support:</li>
248 <li>RCC PLLI2S and RCC PLLSAI support</li>
249 <li>RCC PLLR I2S clock source and RCC PLLR system clock support</li>
250 <li>RCC SAI1A PLL source and RCC SAI1B PLL source support</li>
251 <li>RCC AHB2 support</li>
252 <li>Add RCC_DCKCFGR_PLLI2SDIVQ_X and RCC_DCKCFGR_PLLSAIDIVQ_X bits definition</li>
253 <li>Add new defines for RCC_PLLI2SCFGR_RST_VALUE, RCC_PLLSAICFGR_RST_VALUE and RCC_PLLCFGR_RST_VALUE</li>
254 <li>Add new defines for RTC features support:</li>
255 <li>RTC Tamper 2 support</li>
256 <li>RTC AF2 mapping support</li>
257 <li>Align Bit naming for RTC_CR and RTC_TAFCR registers (ex: RTC_CR_BCK –&gt; RTC_CR_BKP)</li>
258 <li>Add new define to manage RTC backup register number: RTC_BKP_NUMBER</li>
259 <li>Rename IS_UART_INSTANCE() macro to IS_UART_HALFDUPLEX_INSTANCE()</li>
260 <li>Add new defines to check LIN instance: IS_UART_LIN_INSTANCE</li>
261 <li>Remove USART6 instance from STM32F410Tx header file</li>
262 <li>Rename IS_I2S_ALL_INSTANCE_EXT() macro to IS_I2S_EXT_ALL_INSTANCEE()</li>
263 <li>Add IS_I2S_APB1_INSTANCE() macro to check if I2S instance mapping: API1 or APB2</li>
264 <li>Remove SPI_I2S_SUPPORT define for SPI I2S features support: I2S feature is available on all STM32F4xx devices</li>
265 <li>Add SPI_I2S_FULLDUPLEX_SUPPORT define for STM32F413xx/423xx devices</li>
266 <li>Align SPI_I2SCFGR bit naming: SPI_I2SCFGR_ASTRTEN bit is missing for STM32F412xx devices</li>
267 <li>Add new I2S_APB1_APB2_FEATURE define for STM32F4xx devices where I2S IP’s are splited between RCC APB1 and APB2 interfaces</li>
268 <li>Add new FLASH_SR_RDERR define in FLASH_SR register</li>
269 <li>Add FLASH_OTP_BASE and FLASH_OTP_END defnes to manage FLASH OPT area</li>
270 <li>Add bit definitions for ETH_MACDBGR register</li>
271 <li>Add new defines ADC1_COMMON_BASE and ADC123_COMMON_BASE to replace ADC_BASE define</li>
272 <li>Add new defines ADC1_COMMON and ADC123_COMMON to replace ADC define</li>
273 <li>Add new ADC macros: IS_ADC_COMMON_INSTANCE() and IS_ADC_MULTIMODE_MASTER_INSTANCE()</li>
274 <li>Add new defines for ADC multi mode features support</li>
275 <li>Add new ADC aliases ADC_CDR_RDATA_MST and ADC_CDR_RDATA_SLV for compatibilities with all STM32 Families</li>
276 <li>Update TIM CNT and ARR register mask on 32-bits</li>
277 <li>Add new TIM_OR_TI1_RMP define in TIM_OR register</li>
278 <li>Add new TIM macros to check TIM feature instance support:</li>
279 <li>IS_TIM_COUNTER_MODE_SELECT_INSTANCE()</li>
280 <li>IS_TIM_CLOCK_DIVISION_INSTANCE()</li>
281 <li>IS_TIM_COMMUTATION_EVENT_INSTANCE()</li>
282 <li>IS_TIM_OCXREF_CLEAR_INSTANCE()</li>
283 <li>IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE()</li>
284 <li>IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE()</li>
285 <li>IS_TIM_REPETITION_COUNTER_INSTANCE()</li>
286 <li>IS_TIM_ENCODER_INTERFACE_INSTANCE()</li>
287 <li>IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE()</li>
288 <li>IS_TIM_BREAK_INSTANCE()</li>
289 </ul></li>
290 <li>CAN_IER register clean up: remove duplicated bit definitions</li>
291 <li>USB_OTG register: fix the wrong defined values for USB_OTG_GAHBCFG bits</li>
292 </ul>
293 </div>
294 </div>
295 <div class="collapse">
296 <input type="checkbox" id="collapse-section22" aria-hidden="true"> <label for="collapse-section22" aria-hidden="true">V2.6.0 / 04-November-2016</label>
297 <div>
298 <h2 id="main-changes-10">Main Changes</h2>
299 <ul>
300 <li>Add support of STM32F413xx and STM32F423xx devices
301 <ul>
302 <li>Add “stm32f413xx.h” and “stm32f423xx.h” files</li>
303 <li>Add startup files “startup_stm32f413xx.s” and “startup_stm32f423xx.s” for EWARM, MDK-ARM and SW4STM32 toolchains</li>
304 <li>Add Linker files “stm32f413xx_flash.icf”, “stm32f413xx_sram.icf”, “stm32f423xx_flash.icf” and “stm32f423xx_sram.icf” used within EWARM Workspaces</li>
305 </ul></li>
306 <li>All header files
307 <ul>
308 <li>Use _Pos and _Mask macro for all Bit Definitions</li>
309 <li>Update LPTIM_OR Bit Definition</li>
310 <li>Update the defined frequencies by scale for USB exported constants</li>
311 <li>Add UID_BASE, FLASHSIZE_BASE and PACKAGE_BASE defines</li>
312 <li>Add new define DAC_CHANNEL2_SUPPORT to manage DAC channel2 support</li>
313 <li>Use new DAC1 naming</li>
314 <li>Rename PWR_CSR_UDSWRDY define to PWR_CSR_UDRDY in PWR_CSR register</li>
315 <li>Align Bit naming for EXTI_IMR and EXTI_EMR registers (ex: EXTI_IMR_MR0 –&gt; EXTI_IMR_IM0)</li>
316 <li>Add new EXTI_IMR_IM define in EXTI_IMR register</li>
317 <li>Add missing DMA registers definition</li>
318 <li>Add macro to check SMBUS instance support</li>
319 </ul></li>
320 <li>stm32f412cx.h, stm32f412zx.h, stm32f412vx.h, stm32f412rx.h files
321 <ul>
322 <li>Add missing SYSCFG register: CFGR2</li>
323 </ul></li>
324 <li>stm32f405xx.h, stm32f407xx.h, stm32f427xx.h, stm32f429xx.h files
325 <ul>
326 <li>Remove HASH_RNG_IRQn in IRQn_Type enumeration</li>
327 </ul></li>
328 <li>stm32f405xx.h, stm32f407xx.h, stm32f415xx.h, stm32f417xx.h files
329 <ul>
330 <li>Remove I2C FLTR register as not supported</li>
331 </ul></li>
332 <li>stm32f407xx.h, stm32f417xx.h, stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h, stm32f469xx.h, stm32f479xx.h files
333 <ul>
334 <li>Add missing Bit Definition of ETH_MACDBGR register</li>
335 </ul></li>
336 <li>system_stm32f4xx.c file
337 <ul>
338 <li>Add APBPrescTable declaration</li>
339 </ul></li>
340 </ul>
341 </div>
342 </div>
343 <div class="collapse">
344 <input type="checkbox" id="collapse-section21" aria-hidden="true"> <label for="collapse-section21" aria-hidden="true">V2.5.1 / 28-June-2016</label>
345 <div>
346 <h2 id="main-changes-11">Main Changes</h2>
347 <ul>
348 <li>stm32f412rx.h, stm32f412vx.h and stm32f412zx.h files:
349 <ul>
350 <li>Add QSPI1_V2_1L define to manage the QSPI DMA2 limitation</li>
351 </ul></li>
352 </ul>
353 </div>
354 </div>
355 <div class="collapse">
356 <input type="checkbox" id="collapse-section20" aria-hidden="true"> <label for="collapse-section20" aria-hidden="true">V2.5.0 / 22-April-2016</label>
357 <div>
358 <h2 id="main-changes-12">Main Changes</h2>
359 <ul>
360 <li>Add support of STM32F412Cx, STM32F412Rx, STM32F412Vx and STM32F412Zx devices
361 <ul>
362 <li>Add “stm32f412Cx.h”, “stm32f412Rx.h”, “stm32f412Vx.h” and “stm32f412Zx.h” files</li>
363 <li>Add startup files “startup_stm32f412cx.s”, “startup_stm32f412rx.s”, “startup_stm32f412vx.s” and “startup_stm32f412zx.s” for EWARM, MDK-ARM and SW4STM32 toolchains</li>
364 <li>Add Linker files “stm32f412cx_flash.icf”, “stm32f412cx_sram.icf”, “stm32f412rx_flash.icf”, “stm32f412rx_sram.icf”, “stm32f412vx_flash.icf”, “stm32f412vx_sram.icf”, “stm32f412zx_flash.icf” and “stm32f412zx_sram.icf” used within EWARM Workspaces</li>
365 </ul></li>
366 <li>Header files for all STM32 devices
367 <ul>
368 <li>Remove uint32_t cast and keep only Misra Cast (U) to avoid two types cast duplication</li>
369 <li>Correct some bits definition to be in line with naming used in the Reference Manual</li>
370 <li>WWDG_CR_Tx changed to WWDG_CR_T_x</li>
371 <li>WWDG_CFR_Wx changed to WWDG_CFR_W_x</li>
372 <li>WWDG_CFR_WDGTBx changed to WWDG_CFR_WDGTB_x</li>
373 </ul></li>
374 <li>stm32f407xx.h, stm32f417xx.h, stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h, stm32f446xx.h, stm32f469xx.h, stm32f479xx.h files
375 <ul>
376 <li>Correct some bits definition to be in line with naming used in the Reference Manual</li>
377 <li>DCMI_RISR_x changed to DCMI_RIS_x</li>
378 <li>DCMI_RISR_OVF_RIS changed to DCMI_RIS_OVR_RIS</li>
379 <li>DCMI_IER_OVF_IE changed to DCMI_IER_OVR_IE</li>
380 </ul></li>
381 <li>stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h, stm32f469xx.h, stm32f479xx.h, stm32f446xx.h files
382 <ul>
383 <li>Correct some bits definition to be in line with naming used in the Reference Manual</li>
384 <li>SAI_xFRCR_FSPO changed to SAI_xFRCR_FSPOL</li>
385 <li>Rename IS_SAI_BLOCK_PERIPH to IS_SAI_ALL_INSTANCE</li>
386 </ul></li>
387 <li>stm32f410cx.h, stm32f410rx.h, stm32f410tx.h files and stm32f446xx.h
388 <ul>
389 <li>Remove FMPI2C_CR1_SWRST and FMPI2C_CR1_WUPEN Bit definition for I2C_CR1 register</li>
390 </ul></li>
391 <li>stm32f407xx.h, stm32f417xx.h, stm32f427xx.h, stm32f437xx.h, stm32f439xx.h, stm32f469xx.h, stm32f479xx.h files
392 <ul>
393 <li>Add missing bits definitions for DMA2D_CR, DMA2D_FGPFCCR, DMA2D_BGPFCCR, DMA2D_OPFCCR registers</li>
394 </ul></li>
395 <li>stm32f401xc.h, stm32f401xe.h, stm32f411xe.h files
396 <ul>
397 <li>Add missing RCC_DCKCFGR register in RCC_TypeDef structure</li>
398 <li>Add missing Bit definition for RCC_DCKCFGR register</li>
399 </ul></li>
400 <li>system_stm32f4xx.c
401 <ul>
402 <li>Update SystemInit_ExtMemCtl() API to fix delay optimization problem with GCC compiler: index variable is declared as volatile</li>
403 </ul></li>
404 <li>stm32f4xx.h
405 <ul>
406 <li>Rename __STM32F4xx_CMSIS_DEVICE_VERSION_xx defines to __STM32F4_CMSIS_VERSION_xx (MISRA-C 2004 rule 5.1)</li>
407 </ul></li>
408 </ul>
409 </div>
410 </div>
411 <div class="collapse">
412 <input type="checkbox" id="collapse-section19" aria-hidden="true"> <label for="collapse-section19" aria-hidden="true">V2.4.3 / 29-January-2016</label>
413 <div>
414 <h2 id="main-changes-13">Main Changes</h2>
415 <ul>
416 <li>Header file for all STM32 devices
417 <ul>
418 <li>Rename ADC overrun flags definitions : ADC_CSR_DOVR1, ADC_CSR_DOVR2 and ADC_CSR_DOVR3 are replaced respectively by ADC_CSR_OVR1, ADC_CSR_OVR2 and ADC_CSR_OVR3 to be aligned with reference manuals</li>
419 <li>Add missing bits definitions for DAC : DAC_CR_DMAUDRIE1 and DAC_CR_DMAUDRIE2</li>
420 <li>Update CMSIS driver to be compliant with MISRA C 2004 rule 10.6</li>
421 <li>Remove the double definition of USB_OTG_HS_MAX_IN_ENDPOINTS and add a new one for USB_OTG_HS_MAX_OUT_ENDPOINTS</li>
422 </ul></li>
423 <li>stm32f446xx.h, stm32f469xx.h, stm32f479xx.h files
424 <ul>
425 <li>Change the bit definition value of QUADSPI_CR_FTHRES</li>
426 </ul></li>
427 <li>stm32f446xx.h, stm32f469xx.h, stm32f479xx.h, stm32f429xx.h, stm32f439xx.h files
428 <ul>
429 <li>Rename the LTDC_GCR_DTEN to LTDC_GCR_DEN in order to be aligned with the reference manual</li>
430 <li>Rename DCMI_MISR bit definitions to DCMI_MIS</li>
431 <li>Rename DCMI_ICR_OVF_ISC to DCMI_ICR_OVR_ISC</li>
432 <li>Add missing bits definitions for DCMI_ESCR, DCMI_ESUR, DCMI_CWSTRT, DCMI_CWSIZE, DCMI_DR registers</li>
433 </ul></li>
434 <li>stm32f407xx.h, stm32f417xx.h, stm32f427xx.h, stm32f437xx.h files
435 <ul>
436 <li>Rename DCMI_MISR bit definitions to DCMI_MIS</li>
437 <li>Rename DCMI_ICR_OVF_ISC to DCMI_ICR_OVR_ISC</li>
438 <li>Add missing bits definitions for DCMI_ESCR, DCMI_ESUR, DCMI_CWSTRT, DCMI_CWSIZE, DCMI_DR registers</li>
439 </ul></li>
440 <li>stm32f410cx.h, stm32f410rx.h, stm32f410tx.h files
441 <ul>
442 <li>Update the LPTIM SNGSTRT defined value</li>
443 </ul></li>
444 <li>stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h, stm32f469xx.h, stm32f479xx.h files
445 <ul>
446 <li>Rename the DMA2D_IFSR bit definitions to DMA2D_IFCR</li>
447 </ul></li>
448 <li>stm32f427xx.h, stm32f429xx.h, stm32f437xx.h, stm32f439xx.h, stm32f469xx.h, stm32f479xx.h, stm32f446xx.h files
449 <ul>
450 <li>Correct a wrong value of SAI_xCR2_CPL definition bit</li>
451 </ul></li>
452 </ul>
453 </div>
454 </div>
455 <div class="collapse">
456 <input type="checkbox" id="collapse-section18" aria-hidden="true"> <label for="collapse-section18" aria-hidden="true">V2.4.2 / 13-November-2015</label>
457 <div>
458 <h2 id="main-changes-14">Main Changes</h2>
459 <ul>
460 <li>system_stm32f4xx.c file
461 <ul>
462 <li>update SystemInit_ExtMemCtl() function implementation to allow the possibility of simultaneous use of DATA_IN_ExtSRAM and DATA_IN_ExtSDRAM</li>
463 </ul></li>
464 <li>stm32f4xx.h file
465 <ul>
466 <li>add symbols for STM32F411xC devices</li>
467 </ul></li>
468 <li>stm32f405xx.h, stm32f407xx.h, stm32f415xx.h, stm32f417xx.h files
469 <ul>
470 <li>add FSMC_BCRx_CPSIZE bits definitions</li>
471 <li>remove FSMC_BWTRx_CLKDIV and FSMC_BWTRx_DATLAT bits definitions</li>
472 </ul></li>
473 <li>stm32f429xx.h, stm32f427xx.h, stm32f437xx.h files
474 <ul>
475 <li>add FMC_BCRx_CPSIZE bits definitions</li>
476 <li>remove FMC_BWTRx_CLKDIV and FMC_BWTRx_DATLAT bits definitions</li>
477 </ul></li>
478 <li>stm32f446xx.h, stm32f469xx.h and stm32f479xx.h
479 <ul>
480 <li>update USB_OTG_GlobalTypeDef registers structure to remove ADP control registers</li>
481 <li>add USB_OTG_DOEPMSK_OTEPSPRM and USB_OTG_DOEPINT_OTEPSPR bits definitions</li>
482 <li>Remove ADP related bits definitions</li>
483 <li>add IS_PCD_ALL_INSTANCE() and IS_HCD_ALL_INSTANCE() macros</li>
484 </ul></li>
485 </ul>
486 </div>
487 </div>
488 <div class="collapse">
489 <input type="checkbox" id="collapse-section17" aria-hidden="true"> <label for="collapse-section17" aria-hidden="true">V2.4.1 / 09-October-2015</label>
490 <div>
491 <h2 id="main-changes-15">Main Changes</h2>
492 <ul>
493 <li>“stm32f469xx.h”, “stm32f479xx.h”
494 <ul>
495 <li>Update bits definition for DSI_WPCR and DSI_TCCR registers</li>
496 </ul></li>
497 </ul>
498 </div>
499 </div>
500 <div class="collapse">
501 <input type="checkbox" id="collapse-section16" aria-hidden="true"> <label for="collapse-section16" aria-hidden="true">V2.4.0 / 14-August-2015</label>
502 <div>
503 <h2 id="main-changes-16">Main Changes</h2>
504 <ul>
505 <li>Add support of STM32F469xx and STM32F479xx devices
506 <ul>
507 <li>Add “stm32f469xx.h” and “stm32f479xx.h” files</li>
508 <li>Add startup files “startup_stm32f469xx.s” and “startup_stm32f479xx.s” for EWARM, MDK-ARM and SW4STM32 toolchains</li>
509 <li>Add Linker files “stm32f469xx_flash.icf”, “stm32f469xx_sram.icf”, “stm32f479xx_flash.icf” and “stm32f479xx_sram.icf” used within EWARM Workspaces</li>
510 </ul></li>
511 <li>Add support of STM32F410xx devices
512 <ul>
513 <li>Add “stm32f410cx.h”, “stm32f410tx.h” and “stm32f410rx.h” files</li>
514 <li>Add startup files “startup_stm32f410cx.s”, “startup_stm32f410rx.s” and “startup_stm32f410tx.s” for EWARM, MDK-ARM and SW4STM32 toolchains</li>
515 <li>Add Linker files “stm32f410cx_flash.icf”, “stm32f410cx_sram.icf”, “stm32f410rx_flash.icf”, “stm32f410tx_sram.icf”, “stm32f410tx_flash.icf”, and “stm32f410rx_sram.icf” used within EWARM Workspaces</li>
516 </ul></li>
517 </ul>
518 </div>
519 </div>
520 <div class="collapse">
521 <input type="checkbox" id="collapse-section15" aria-hidden="true"> <label for="collapse-section15" aria-hidden="true">V2.3.2 / 26-June-2015</label>
522 <div>
523 <h2 id="main-changes-17">Main Changes</h2>
524 <ul>
525 <li>“stm32f405xx.h”, “stm32f407xx.h”, “stm32f415xx.h” and “stm32f417xx.h”
526 <ul>
527 <li>Update FSMC_BTRx_DATAST and FSMC_BWTRx_DATAST (where x can be 1, 2, 3 and 4) mask on 8bits instead of 4bits</li>
528 </ul></li>
529 <li>“stm32f427xx.h”, “stm32f437xx.h”, “stm32f429xx.h” and “stm32f439xx.h”
530 <ul>
531 <li>Update the defined mask value for SAI_xSR_FLVL_2</li>
532 </ul></li>
533 <li>“stm32f415xx.h”, “stm32f417xx.h”, “stm32f437xx.h” and “stm32f439xx.h”
534 <ul>
535 <li>HASH alignement with bits namming used in documentation</li>
536 <li>Rename HASH_IMR_DINIM to HASH_IMR_DINIE</li>
537 <li>Rename HASH_IMR_DCIM to HASH_IMR_DCIE</li>
538 <li>Rename HASH_STR_NBW to HASH_STR_NBW</li>
539 </ul></li>
540 <li>system_stm32f4xx.c
541 <ul>
542 <li>Remove __IO on constant table declaration</li>
543 <li>Implement workaround to cover RCC limitation regarding peripheral enable delay</li>
544 <li>SystemInit_ExtMemCtl() update GPIO configuration when external SDRAM is used</li>
545 </ul></li>
546 </ul>
547 </div>
548 </div>
549 <div class="collapse">
550 <input type="checkbox" id="collapse-section14" aria-hidden="true"> <label for="collapse-section14" aria-hidden="true">V2.3.1 / 03-April-2015</label>
551 <div>
552 <h2 id="main-changes-18">Main Changes</h2>
553 <ul>
554 <li>Header file for all STM32 devices
555 <ul>
556 <li>Update SRAM2, SRAM3 and BKPSRAM Bit-Banding base address defined values</li>
557 <li>Keep reference to SRAM3 only for STM32F42xx and STM32F43xx devices</li>
558 <li>Remove CCMDATARAM_BB_BASE: the CCM Data RAM region is not accessible via Bit-Banding</li>
559 <li>Update the RTC_PRER_PREDIV_S defined value to 0x00007FFF instead of 0x00001FFF</li>
560 </ul></li>
561 </ul>
562 </div>
563 </div>
564 <div class="collapse">
565 <input type="checkbox" id="collapse-section13" aria-hidden="true"> <label for="collapse-section13" aria-hidden="true">V2.3.0 / 02-March-2015</label>
566 <div>
567 <h2 id="main-changes-19">Main Changes</h2>
568 <ul>
569 <li>Add support of STM32F446xx devices
570 <ul>
571 <li>Add “stm32f446xx.h” file</li>
572 <li>Add startup file “startup_stm32f446xx.s” for EWARM, MDK-ARM and TrueSTUDIO toolchains</li>
573 <li>Add Linker files “stm32f446xx_flash.icf” and “stm32f446xx_sram.icf” used within EWARM Workspaces</li>
574 </ul></li>
575 <li>Header file for all STM32 devices
576 <ul>
577 <li>Add missing bits definition in the EXTI IMR, EMR, RTSR, FTSR, SWIER and PR registers</li>
578 <li>Update RCC_AHB1RSTR_OTGHRST bit definition</li>
579 <li>Update PWR_CR_VOS bits definition for STM32F40xx and STM32F41xx devices</li>
580 <li>update SAI_xCR1_MCKDIV bit definition</li>
581 </ul></li>
582 </ul>
583 </div>
584 </div>
585 <div class="collapse">
586 <input type="checkbox" id="collapse-section12" aria-hidden="true"> <label for="collapse-section12" aria-hidden="true">V2.2.0 / 15-December-2014</label>
587 <div>
588 <h2 id="main-changes-20">Main Changes</h2>
589 <ul>
590 <li>stm32f4xx.h
591 <ul>
592 <li>Add new constant definition STM32F4</li>
593 </ul></li>
594 <li>system_stm32f4xx.c
595 <ul>
596 <li>Fix SDRAM configuration in SystemInit_ExtMemCtl(): change RowBitsNumber from 11 to 12 (for MT48LC4M32B2 available on STM324x9I_EVAL board)</li>
597 </ul></li>
598 <li>Header file for all STM32 devices
599 <ul>
600 <li>Add missing bits definition for CAN, FMC and USB peripherals</li>
601 <li>GPIO_TypeDef: change the BSRR register definition, the two 16-bits definition BSRRH and BSRRL are merged in a single 32-bits definition BSRR</li>
602 </ul></li>
603 </ul>
604 </div>
605 </div>
606 <div class="collapse">
607 <input type="checkbox" id="collapse-section11" aria-hidden="true"> <label for="collapse-section11" aria-hidden="true">V2.1.0 / 19-June-2014</label>
608 <div>
609 <h2 id="main-changes-21">Main Changes</h2>
610 <ul>
611 <li>Add support of STM32F411xExx devices
612 <ul>
613 <li>Add “stm32f411xe.h” file</li>
614 <li>Add startup file “startup_stm32f411xx.s” for EWARM, MDK-ARM and TrueSTUDIO toolchains</li>
615 </ul></li>
616 <li>All header files
617 <ul>
618 <li>Add missing defines for GPIO LCKR Register</li>
619 <li>Add defines for memories base and end addresses: FLASH, SRAM, BKPSRAM and CCMRAM.</li>
620 <li>Add the following aliases for IRQ number and handler definition to ensure compatibility across the product lines of STM32F4 Series;
621 <ul>
622 <li><p>example for STM32F405xx.h</p>
623 <p>#define FMC_IRQn FSMC_IRQn #define FMC_IRQHandler FSMC_IRQHandler</p></li>
624 <li><p>and for STM32F427xx.h</p>
625 <p>#define FSMC_IRQn FMC_IRQn #define FSMC_IRQHandler FMC_IRQHandler</p></li>
626 </ul></li>
627 </ul></li>
628 <li>“stm32f401xc.h” and “stm32f401xe.h”: update to be in line with latest version of the Reference manual
629 <ul>
630 <li>Remove RNG registers structures and the corresponding bit definitions</li>
631 <li>Remove any occurrence to RNG (clock enable, clock reset,…)</li>
632 <li>Add the following bit definition for PWR CR registerAdd the following bit definition for PWR CR register
633 <ul>
634 <li>#define PWR_CR_ADCDC1 ((uint32_t)0x00002000)</li>
635 <li>#define PWR_CR_LPLVDS ((uint32_t)0x00000400)</li>
636 <li>#define PWR_CR_MRLVDS ((uint32_t)0x00000800)</li>
637 </ul></li>
638 </ul></li>
639 <li>“stm32f427xx.h”, “stm32f437xx.h”, “stm32f429xx.h” and “stm32f439xx.h”
640 <ul>
641 <li>Add a new legacy bit definition for PWR to be in line with latest version of the Reference manual
642 <ul>
643 <li>#define PWR_CR_LPUDS PWR_CR_LPLVDS</li>
644 <li>#define PWR_CR_MRUDS PWR_CR_MRLVDS</li>
645 </ul></li>
646 </ul></li>
647 <li>Update startup files for EWARM toolchain to cope with compiler enhancement of the V7.10 version</li>
648 <li>system_stm32f4xx.c
649 <ul>
650 <li>Remove dependency vs. the HAL, to allow using this file without the need to have the HAL drivers
651 <ul>
652 <li>Include stm32f4xx.h instead of stm32f4xx_hal.h</li>
653 <li>Add definition of HSE_VALUE and HSI_VALUE, if they are not yet defined in the compilation scope (these values are defined in stm32f4xx_hal_conf).</li>
654 </ul></li>
655 <li>Use “__IO const” instead of “__I”, to avoid any compilation issue when __cplusplus switch is defined</li>
656 </ul></li>
657 </ul>
658 </div>
659 </div>
660 <div class="collapse">
661 <input type="checkbox" id="collapse-section10" aria-hidden="true"> <label for="collapse-section10" aria-hidden="true">V2.0.0 / 18-Fabruary-2014</label>
662 <div>
663 <h2 id="main-changes-22">Main Changes</h2>
664 <ul>
665 <li>Update based on STM32Cube specification</li>
666 <li>This version and later has to be used only with STM32CubeF4 based development</li>
667 </ul>
668 </div>
669 </div>
670 <div class="collapse">
671 <input type="checkbox" id="collapse-section9" aria-hidden="true"> <label for="collapse-section9" aria-hidden="true">V1.3.0 / 08-November-2013</label>
672 <div>
673 <h2 id="main-changes-23">Main Changes</h2>
674 <ul>
675 <li>Add support of STM32F401xExx devices</li>
676 <li>Update startup files “startup_stm32f401xx.s” for EWARM, MDK-ARM, TrueSTUDIO and Ride toolchains: Add SPI4 interrupt handler entry in the vector table</li>
677 </ul>
678 </div>
679 </div>
680 <div class="collapse">
681 <input type="checkbox" id="collapse-section8" aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">V1.2.1 / 19-September-2013</label>
682 <div>
683 <h2 id="main-changes-24">Main Changes</h2>
684 <ul>
685 <li>system_stm32f4xx.c : Update FMC SDRAM configuration (RBURST mode activation)</li>
686 <li>Update startup files “startup_stm32f427_437xx.s” and “startup_stm32f429_439xx.s” for TrueSTUDIO and Ride toolchains and maintain the old name of startup files for legacy purpose</li>
687 </ul>
688 </div>
689 </div>
690 <div class="collapse">
691 <input type="checkbox" id="collapse-section7" aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">V1.2.0 / 11-September-2013</label>
692 <div>
693 <h2 id="main-changes-25">Main Changes</h2>
694 <ul>
695 <li>Add support of STM32F429/439xx and STM32F401xCxx devices</li>
696 <li>Update definition of STM32F427/437xx devices : extension of the features to include system clock up to 180MHz, dual bank Flash, reduced STOP Mode current, SAI, PCROP, SDRAM and DMA2D</li>
697 <li>stm32f4xx.h
698 <ul>
699 <li>Add the following device defines :
700 <ul>
701 <li>“#define STM32F40_41xxx” for all STM32405/415/407/417xx devices</li>
702 <li>“#define STM32F427_437xx” for all STM32F427/437xx devices</li>
703 <li>“#define STM32F429_439xx” for all STM32F429/439xx devices</li>
704 <li>“#define STM32F401xx” for all STM32F401xx devices</li>
705 </ul></li>
706 <li>Maintain the old device define for legacy purpose</li>
707 <li>Update IRQ handler enumeration structure to support all STM32F4xx Family devices.</li>
708 </ul></li>
709 <li>Add new startup files “startup_stm32f40_41xxx.s”,“startup_stm32f427_437xx.s”, “startup_stm32f429_439xx.s” and “startup_stm32f401xx.s” for all toolchains and maintain the old name for startup files for legacy purpose</li>
710 <li>system_stm32f4xx.c
711 <ul>
712 <li>Update the system configuration to support all STM32F4xx Family devices.</li>
713 </ul></li>
714 </ul>
715 </div>
716 </div>
717 <div class="collapse">
718 <input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true">V1.1.0 / 11-January-2013</label>
719 <div>
720 <h2 id="main-changes-26">Main Changes</h2>
721 <ul>
722 <li>Official release for STM32F427x/437x devices.</li>
723 <li>stm32f4xx.h
724 <ul>
725 <li>Update product define: replace “#define STM32F4XX” by “#define STM32F40XX” for STM32F40x/41x devices</li>
726 <li>Add new product define: “#define STM32F427X” for STM32F427x/437x devices.</li>
727 </ul></li>
728 <li>Add new startup files “startup_stm32f427x.s” for all toolchains</li>
729 <li>rename startup files “startup_stm32f4xx.s” by “startup_stm32f40xx.s” for all toolchains</li>
730 <li>system_stm32f4xx.c
731 <ul>
732 <li>Prefetch Buffer enabled</li>
733 <li>Add reference to STM32F427x/437x devices and STM324x7I_EVAL board</li>
734 <li>SystemInit_ExtMemCtl() function
735 <ul>
736 <li>Add configuration of missing FSMC address and data lines</li>
737 <li>Change memory type to SRAM instead of PSRAM (PSRAM is available only on STM324xG-EVAL RevA) and update timing values</li>
738 </ul></li>
739 </ul></li>
740 </ul>
741 </div>
742 </div>
743 <div class="collapse">
744 <input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true">V1.0.2 / 05-March-2012</label>
745 <div>
746 <h2 id="main-changes-27">Main Changes</h2>
747 <ul>
748 <li>All source files: license disclaimer text update and add link to the License file on ST Internet.</li>
749 </ul>
750 </div>
751 </div>
752 <div class="collapse">
753 <input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true">V1.0.1 / 28-December-2011</label>
754 <div>
755 <h2 id="main-changes-28">Main Changes</h2>
756 <ul>
757 <li>All source files: update disclaimer to add reference to the new license agreement</li>
758 <li>stm32f4xx.h
759 <ul>
760 <li>Correct bit definition: RCC_AHB2RSTR_HSAHRST changed to RCC_AHB2RSTR_HASHRST</li>
761 </ul></li>
762 </ul>
763 </div>
764 </div>
765 <div class="collapse">
766 <input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.0.0 / 30-September-2011</label>
767 <div>
768 <h2 id="main-changes-29">Main Changes</h2>
769 <ul>
770 <li>First official release for STM32F40x/41x devices</li>
771 <li>Add startup file for TASKING toolchain</li>
772 <li>system_stm32f4xx.c: driver’s comments update</li>
773 </ul>
774 </div>
775 </div>
776 <div class="collapse">
777 <input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.0.0RC2 / 26-September-2011</label>
778 <div>
779 <h2 id="main-changes-30">Main Changes</h2>
780 <ul>
781 <li>Official version (V1.0.0) Release Candidate2 for STM32F40x/41x devices</li>
782 <li>stm32f4xx.h
783 <ul>
784 <li>Add define for Cortex-M4 revision __CM4_REV</li>
785 <li>Correct RCC_CFGR_PPRE2_DIV16 bit (in RCC_CFGR register) value to 0x0000E000</li>
786 <li>Correct some bits definition to be in line with naming used in the Reference Manual (RM0090)
787 <ul>
788 <li>GPIO_OTYPER_IDR_x changed to GPIO_IDR_IDR_x</li>
789 <li>GPIO_OTYPER_ODR_x changed to GPIO_ODR_ODR_x</li>
790 <li>SYSCFG_PMC_MII_RMII changed to SYSCFG_PMC_MII_RMII_SEL</li>
791 <li>RCC_APB2RSTR_SPI1 changed to RCC_APB2RSTR_SPI1RST</li>
792 <li>DBGMCU_APB1_FZ_DBG_IWDEG_STOP changed to DBGMCU_APB1_FZ_DBG_IWDG_STOP</li>
793 <li>PWR_CR_PMODE changed to PWR_CR_VOS</li>
794 <li>PWR_CSR_REGRDY changed to PWR_CSR_VOSRDY</li>
795 <li>Add new define RCC_AHB1ENR_CCMDATARAMEN</li>
796 <li>Add new defines SRAM2_BASE, CCMDATARAM_BASE and BKPSRAM_BASE</li>
797 </ul></li>
798 <li>GPIO_TypeDef structure: in the comment change AFR[2] address mapping to 0x20-0x24 instead of 0x24-0x28</li>
799 </ul></li>
800 <li>system_stm32f4xx.c
801 <ul>
802 <li>SystemInit(): add code to enable the FPU</li>
803 <li>SetSysClock(): change PWR_CR_PMODE by PWR_CR_VOS</li>
804 <li>SystemInit_ExtMemCtl(): remove commented values</li>
805 </ul></li>
806 <li>startup (for all compilers)
807 <ul>
808 <li>Delete code used to enable the FPU (moved to system_stm32f4xx.c file)</li>
809 <li>File’s header updated</li>
810 </ul></li>
811 </ul>
812 </div>
813 </div>
814 <div class="collapse">
815 <input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.0.0RC1 / 25-August-2011</label>
816 <div>
817 <h2 id="main-changes-31">Main Changes</h2>
818 <ul>
819 <li>Official version (V1.0.0) Release Candidate1 for STM32F4xx devices</li>
820 </ul>
821 </div>
822 </div>
823 </div>
824 </div>
825 <footer class="sticky">
826 For complete documentation on <mark>STM32 Microcontrollers</mark> , visit: <a href="http://www.st.com/STM32">http://www.st.com/STM32</a>
827 </footer>
828 </body>
829 </html>