-
Notifications
You must be signed in to change notification settings - Fork 2
/
Release_Notes.html
478 lines (478 loc) · 16.3 KB
/
Release_Notes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Release Notes for STM32CubeC0 HAL and LL drivers</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="_htmresc/mini-st_2020.css" />
<link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="row">
<div class="col-sm-12 col-lg-4">
<center>
<h1 id="release-notes-for-stm32cubec0-hal-and-ll-drivers">Release Notes
for <mark>STM32CubeC0 HAL and LL drivers</mark></h1>
<p>Copyright © 2022 STMicroelectronics<br />
</p>
<a href="https://www.st.com" class="logo"><img
src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
</center>
<h1 id="purpose">Purpose</h1>
<p>The STM32Cube HAL and LL, an STM32 abstraction layer embedded
software, ensure maximized portability across STM32 portfolio.</p>
<p>The portable APIs layer provides a generic, multi instanced and
simple set of APIs to interact with the upper layer (application,
libraries and stacks). It is composed of native and extended APIs set.
It is directly built around a generic architecture and allows the
build-upon layers, like the middleware layer, to implement its functions
without knowing in-depth the used STM32 device. This improves the
library code reusability and guarantees an easy portability on other
devices and STM32 families.</p>
<p>The Low Layer (LL) drivers are part of the STM32Cube firmware HAL
that provides a basic set of optimized and one-shot services. The Low
layer drivers, contrary to the HAL ones are not fully portable across
the STM32 families; the availability of some functions depends on the
physical availability of the relative features on the product. The Low
Layer (LL) drivers are designed to offer the following features:</p>
<ul>
<li>New set of inline functions for direct and atomic register
access</li>
<li>One-shot operations that can be used by the HAL drivers or from
application level</li>
<li>Full independence from HAL and standalone usage (without HAL
drivers)</li>
<li>Full features coverage of all the supported peripherals</li>
</ul>
</div>
<section id="update-history" class="col-sm-12 col-lg-8">
<h1>Update History</h1>
<div class="collapse">
<input type="checkbox" id="collapse-section5" checked aria-hidden="true">
<label for="collapse-section5" checked aria-hidden="true">V1.3.0 /
30-October-2024</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
<li>Official Release of STM32CubeC0 Firmware package supporting
<strong>STM32C051xx</strong> and <strong>STM32C091/92xx</strong>
devices</li>
<li>General updates to fix known defects and implementation
enhancements</li>
</ul>
<h3 id="hal-drivers-updates"><strong>HAL Drivers updates</strong></h3>
<ul>
<li>HAL generic driver:
<ul>
<li>Update HAL configuration template file</li>
</ul></li>
<li>HAL ADC driver:
<ul>
<li>Add missing callbacks in ADC_HandleTypeDef</li>
<li>Rework of const qualifier to be compliant with MISRA rule 8.13</li>
</ul></li>
<li>HAL DMA driver:
<ul>
<li>Rework of const qualifier to be compliant with MISRA rule 8.13</li>
</ul></li>
<li>HAL FLASH driver:
<ul>
<li>Fix inverted OB_IRH_ENABLE and OB_IRH_DISABLE definitions</li>
</ul></li>
<li>HAL I2C driver:
<ul>
<li>Update function HAL_I2C_IsDeviceReady() to take into account the
number of trials</li>
<li>Move the prefetch process in function HAL_I2C_Slave_Transmit</li>
</ul></li>
<li>HAL PCD driver:
<ul>
<li>Support bulk transfer in double buffer mode</li>
</ul></li>
<li>HAL RCC driver:
<ul>
<li>Update function HAL_RCC_GetClockConfig() to take into account the
RCC_CR_SYSDIV</li>
</ul></li>
<li>HAL SPI driver:
<ul>
<li>Rework of const qualifier to be compliant with MISRA rule 8.13</li>
</ul></li>
<li>HAL UART driver:
<ul>
<li>Correct DMA Rx abort procedure impact on ongoing Tx transfer in
polling mode</li>
</ul></li>
</ul>
<h3 id="ll-drivers-updates"><strong>LL Drivers updates</strong></h3>
<ul>
<li>LL ADC driver:
<ul>
<li>Rework of const qualifier to be compliant with MISRA rule 8.13</li>
</ul></li>
<li>LL DMA driver:
<ul>
<li>Rework of const qualifier to be compliant with MISRA rule 8.13</li>
</ul></li>
<li>LL USB driver:
<ul>
<li>Support bulk transfer in double buffer mode</li>
</ul></li>
</ul>
<p>Note: HAL/LL Backward compatibility ensured by legacy defines.</p>
<h2 id="known-limitations">Known Limitations</h2>
<ul>
<li>None</li>
</ul>
<h2 id="backward-compatibility">Backward Compatibility</h2>
<ul>
<li>Not applicable</li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section4" aria-hidden="true">
<label for="collapse-section4" aria-hidden="true">V1.2.0 /
05-June-2024</label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<ul>
<li>Official Release of STM32CubeC0 Firmware package supporting
<strong>STM32C071xx</strong> devices</li>
<li>General updates to fix known defects and implementation
enhancements</li>
</ul>
<h3 id="hal-drivers-updates-1"><strong>HAL Drivers updates</strong></h3>
<ul>
<li>HAL generic driver:
<ul>
<li>Remove invalid HAL_SYSCFG_EnableIOAnalogSwitchBooster() and
HAL_SYSCFG_DisableIOAnalogSwitchBooster() APIs</li>
<li>Rename __HAL_RCC_APB1_FORCE_RESET and __HAL_RCC_APB2_FORCE_RESET
macros by __HAL_RCC_APB1_GRP1_FORCE_RESET and
__HAL_RCC_APB1_GRP2_FORCE_RESET</li>
<li>Rename __HAL_RCC_APB1_RELEASE_RESET and __HAL_RCC_APB2_RELEASE_RESET
macros by __HAL_RCC_APB1_GRP1_RELEASE_RESET and
__HAL_RCC_APB1_GRP2_RELEASE_RESET</li>
</ul></li>
<li>HAL ADC driver:
<ul>
<li>Update HAL_ADC_IRQHandler by adding checks on ADC Ready flag and End
of Calibration flag</li>
<li>Add HAL_ADC_CalibrationCpltCallback() and HAL_ADC_ADCReadyCallback()
APIs</li>
<li>Add ADC_FLAG_EOCAL ADC End of Calibration interrupt flag</li>
</ul></li>
<li>HAL CORTEX driver:
<ul>
<li>Add HAL_MPU_EnableRegion() and HAL_MPU_DisableRegion() APIs</li>
</ul></li>
<li>HAL FLASH driver:
<ul>
<li>Add OB_USER_HSE_NOT_REMAPPED and OB_USER_SECURE_MUXING_EN
definitions</li>
<li>Update OB_USER_ALL definition</li>
<li>Add OB_HSE_NOT_REMAPPED_ENABLE and OB_HSE_NOT_REMAPPED_DISABLE FLASH
Option Bytes User HSE REMAP enable/disable definitions</li>
<li>Add OB_SECURE_MUXING_ENABLE and OB_SECURE_MUXING_DISABLE Option
Bytes User Multiple-bonding security enable/disable definitions</li>
<li>Update FLASH_PAGE_NB definition to compute the flash pages number
based on the flash size</li>
</ul></li>
<li>HAL I2C driver:
<ul>
<li>Update HAL_I2C_Slave_Transmit to check if the received NACK is the
correct one</li>
<li>Update I2C_WaitOnRXNEFlagUntilTimeout to check I2C_FLAG_AF
independently from I2C_FLAG_RXNE</li>
<li>Remove the unusable code in HAL_I2C_IsDeviceReady() API</li>
<li>Remove unused state defines HAL_I2C_STATE_TIMEOUT and
HAL_I2C_STATE_ERROR in HAL_I2C_StateTypeDef</li>
<li>Update I2C_WaitOnFlagUntilTimeout to handle error case.</li>
<li>Update HAL_I2C_Master_Abort_IT to support memory abort
transfer.</li>
</ul></li>
<li>HAL I2S driver:
<ul>
<li>Update HAL I2S driver to fix misplaced __HAL_LOCK and remove ‘go to’
instruction</li>
</ul></li>
<li>HAL SPI driver:
<ul>
<li>Update IT API to enable interrupts after process unlock</li>
<li>Update driver to keep state in case of error and set
HAL_SPI_STATE_READY only in case of HAL_TIMEOUT</li>
<li>Update HAL_SPI_TransmitReceive API to set the bit CRCNEXT in case of
one byte transaction</li>
</ul></li>
<li>HAL SMBUS driver:
<ul>
<li>Update SMBUS_ITErrorHandler to flash TXDR only in case of error</li>
<li>Remove unused state defines HAL_SMBUS_STATE_TIMEOUT and
HAL_SMBUS_STATE_ERROR in HAL_I2C_StateTypeDef</li>
</ul></li>
<li>HAL RCC driver:
<ul>
<li>Update HAL_RCC_GetHCLKFreq() to Compute SystemCoreClock value</li>
</ul></li>
<li>HAL RTC driver:
<ul>
<li>Remove RTC_FLAG_ITSF and RTC_CLEAR_ITSF to be aligned with reference
manual</li>
<li>Remove meaningless __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE,
__HAL_RTC_INTERNAL_TIMESTAMP_DISABLE,
__HAL_RTC_INTERNAL_TIMESTAMP_GET_FLAG and
__HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG macros</li>
<li>Update RTC_EXTI_LINE_TIMESTAMP_EVENT definition</li>
<li>Remove extra HAL_RTCEx_SetInternalTimeStamp() and
HAL_RTCEx_DeactivateInternalTimeStamp() definitions</li>
</ul></li>
<li>HAL TIM driver:
<ul>
<li>Add the possibility to configure the break inputs in bidirectional
mode for lite timers</li>
<li>Added system break interrupt handling in IRQ handler</li>
<li>Update interrupt flag to be cleared when the update event is
generated by software</li>
<li>Fixed some typos in code comments</li>
<li>Made HAL_TIMEx_OCN_Stop_IT and HAL_TIMEx_PWMN_Stop_IT more
generic</li>
<li>Improved HAL_TIMEx_ConfigBreakDeadTime() function
implementation</li>
<li>Improved CH4N support handling</li>
<li>Fix typo in PWM symmetric mode related constants names</li>
</ul></li>
<li>HAL USART driver:
<ul>
<li>Fixed some typos in code comments</li>
</ul></li>
<li>HAL UART driver:
<ul>
<li>Fixed some typos in code comments</li>
<li>Remove __HAL_LOCK() from
HAL_xxx_RegisterCallback()/HAL_xxx_UnRegisterCallback()</li>
<li>Fix incorrect gState check in
HAL_UART_RegisterRxEventCallback/HAL_UART_UnRegisterRxEventCallback to
allow user Rx Event Callback registration when a transmit is
ongoing</li>
<li>Update driver to avoid RTOF flag to be cleared by a transmit process
in polling mode</li>
<li>Ensure UART Rx buffer is not written beyond boundaries in case of RX
FIFO reception in Interrupt mode</li>
</ul></li>
</ul>
<h3 id="ll-drivers-updates-1"><strong>LL Drivers updates</strong></h3>
<ul>
<li>LL ADC driver:
<ul>
<li>Fixed some typos in code comments</li>
</ul></li>
<li>LL DMA driver:
<ul>
<li>Add missing LL_DMAMUX_SYNC_DMAMUX_CH3, LL_DMAMUX_REQ_GEN_DMAMUX_CH3
and LL_DMAMUX_SYNC_TIM14_OC definitions</li>
</ul></li>
<li>LL GPIO driver:
<ul>
<li>Update LL_GPIO_Init() to avoid causing quick switch to low level on
the pins</li>
</ul></li>
<li>LL RCC driver:
<ul>
<li>Remove meaningless RCC_PLL_GetFreqDomain_SYS(),
RCC_PLL_GetFreqDomain_ADC() and RCC_PLL_GetFreqDomain_I2S1() APIs
definitions</li>
</ul></li>
<li>LL TIM driver:
<ul>
<li>Removed meaningless LL_TIM_ReArmBRK() and LL_TIM_ReArmBRK2()
functions</li>
<li>Fixed some typos in code comments</li>
<li>Improve LL_TIM_BDTR_Init() implementation consistency</li>
<li>Configure complementary channels only when supported</li>
<li>Fix typo in PWM symmetric mode related constants names</li>
<li>Added LL_TIM_CC_IsEnabledPreload() API</li>
</ul></li>
<li>LL I2C driver:
<ul>
<li>Update LL_I2C_HandleTranfer function to prevent undefined behavior
of volatile usage before updating the CR2 register.</li>
</ul></li>
<li>LL SYSTEM driver:
<ul>
<li>Correct LL_SYSCFG_IsActiveFlag_CLK_CTRL() and
LL_SYSCFG_IsActiveFlag_WWDG() implementation</li>
</ul></li>
<li>LL UTILS driver:
<ul>
<li>Remove IS_LL_UTILS_SYSCLK_DIV, IS_LL_UTILS_APB1_DIV,
IS_LL_UTILS_HSI_DIV, IS_LL_UTILS_HSIKER_DIV IS_LL_UTILS_HSE_BYPASS and
IS_LL_UTILS_HSE_FREQUENCY macros</li>
<li>Remove useless LL_UTILS_ClkInitTypeDef structure</li>
<li>Correct LL_UTILS_PACKAGETYPE naming</li>
<li>Remove UTILS_HSE_FREQUENCY_MIN and UTILS_HSE_FREQUENCY_MAX
definitions</li>
</ul></li>
</ul>
<p>Note: HAL/LL Backward compatibility ensured by legacy defines.</p>
<h2 id="known-limitations-1">Known Limitations</h2>
<ul>
<li>None</li>
</ul>
<h2 id="backward-compatibility-1">Backward Compatibility</h2>
<ul>
<li>Not applicable</li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section3" aria-hidden="true">
<label for="collapse-section3" aria-hidden="true">V1.1.0 /
07-June-2023</label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<ul>
<li>Maintenance Release of STM32CubeC0 Firmware Package</li>
</ul>
<p><strong>HAL/LL Drivers</strong> updates</p>
<ul>
<li>HAL and LL drivers Maintenance Release for STM32C011xx / STM32C031xx
devices</li>
</ul>
<p>– <strong>HAL Drivers</strong> updates</p>
<ul>
<li><strong>HAL RCC</strong> driver
<ul>
<li>Rename the following defines:
<ul>
<li>HSE_TIMEOUT_VALUE to RCC_HSE_TIMEOUT_VALUE</li>
<li>HSI_TIMEOUT_VALUE to RCC_HSI_TIMEOUT_VALUE</li>
<li>LSI_TIMEOUT_VALUE to RCC_LSI_TIMEOUT_VALUE</li>
<li>CLOCKSWITCH_TIMEOUT_VALUE to RCC_CLOCKSWITCH_TIMEOUT_VALUE</li>
</ul></li>
</ul></li>
<li><strong>HAL RTC</strong> driver
<ul>
<li>Add __HAL_RTC_IS_CALENDAR_INITIALIZED macro</li>
</ul></li>
<li><strong>HAL TIM</strong> driver
<ul>
<li>Add __HAL_TIM_SELECT_CCDMAREQUEST macro</li>
</ul></li>
<li><strong>HAL UART</strong> driver
<ul>
<li>Add (HAL_UART_RxEventTypeTypeDef RxEventType) to the
__UART_HandleTypeDef structure</li>
<li>Add following defines:
<ul>
<li>HAL_UART_RXEVENT_TC (Transfer Complete event)</li>
<li>HAL_UART_RXEVENT_HT (Half Transfer event)</li>
<li>HAL_UART_RXEVENT_IDLE (IDLE event)</li>
</ul></li>
<li>Add HAL_UARTEx_GetRxEventType() API to provide Rx Event type (to be
called within the user implementation of Rx Event Callback)</li>
</ul></li>
<li><strong>HAL</strong> driver
<ul>
<li>Update HAL_SYSCFG_SetPinBinding() to handle properly setting of a
pin biding (w/o overwriting existing pins binding settings).</li>
<li>Update HAL_SYSCFG_GetPinBinding() to get a pin biding setting.</li>
</ul></li>
</ul>
<p>– <strong>LL Drivers</strong> updates</p>
<ul>
<li><strong>LL SYSTEM</strong> driver
<ul>
<li>Add SYSTEM_LL_PINMUX_SOURCE following defines:
<ul>
<li>LL_PINMUX_SO8_PIN1, LL_PINMUX_SO8_PIN4, LL_PINMUX_SO8_PIN5,
LL_PINMUX_SO8_PIN8, LL_PINMUX_WLCSP12_PINE2, LL_PINMUX_WLCSP12_PINF1 in
case of device <strong>STM32C011xx</strong> device</li>
<li>LL_PINMUX_WLCSP14_PINF2, LL_PINMUX_WLCSP14_PING3,
LL_PINMUX_WLCSP14_PINJ1, LL_PINMUX_WLCSP14_PINH2,
LL_PINMUX_WLCSP14_PING1, LL_PINMUX_WLCSP14_PINJ3 in case of device
<strong>STM32C031xx</strong> device</li>
</ul></li>
<li>Update LL_SYSCFG_ConfigPinMux() and LL_SYSCFG_GetConfigPinMux()
functions</li>
<li>LL_SYSCFG_ConfigPinMux() API updated to handle properly setting of a
pin binding (w/o overwriting existing pins biding settings).</li>
<li>LL_SYSCFG_GetConfigPinMux() API updated to get a pin biding
setting.</li>
</ul></li>
</ul>
<h2 id="known-limitations-2">Known Limitations</h2>
<p>N/A</p>
<h2 id="backward-compatibility-2">Backward Compatibility</h2>
<ul>
<li>HAL_SYSCFG_GetPinBinding() and LL_SYSCFG_GetConfigPinMux() are
updated.</li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true">
<label for="collapse-section2" checked aria-hidden="true">V1.0.1 /
12-January-2023</label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<ul>
<li><p>Patch Release of STM32CubeC0 Firmware Package</p></li>
<li><p>Update ADC HAL driver with proper internal sensor calibration
implementation:</p>
<ul>
<li>Helper macro “__LL_ADC_CALC_TEMPERATURE()” is not available and
macro “__LL_ADC_CALC_TEMPERATURE_TYP_PARAMS()” must be used.</li>
</ul></li>
<li><p>Update RCC LL driver by adding missing AHB Prescaler.</p></li>
</ul>
<h2 id="known-limitations-3">Known Limitations</h2>
<p>N/A</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1" aria-hidden="true">
<label for="collapse-section1" checked aria-hidden="true">V1.0.0 /
09-February-2022</label>
<div>
<h2 id="main-changes-4">Main Changes</h2>
<p>First official release of HAL and LL drivers for STM32C031xx /
STM32C011xx devices</p>
<h2 id="known-limitations-4">Known Limitations</h2>
<p>N/A</p>
</div>
</div>
</section>
</div>
<footer class="sticky">
<p>For complete documentation on STM32 Microcontrollers </mark> , visit:
<span style="font-color: blue;"><a
href="http://www.st.com/stm32">www.st.com/stm32</a></span></p>
This release note uses up to date web standards and, for this reason,
should not be opened with Internet Explorer but preferably with popular
browsers such as Google Chrome, Mozilla Firefox, Opera or Microsoft
Edge.
</footer>
</body>
</html>