blob: 84eb80d6c3c846dcb61cb69489cdf8df53842004 [file] [log] [blame]
<!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 STM32G0xx HAL Drivers Package</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="_htmresc/mini-st.css" />
<!--[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">
<div class="card fluid">
<div class="sectione dark">
<center>
<h1 id="release-notes-forstm32g0xx-hal-drivers"><small>Release Notes for</small><mark>STM32G0xx HAL Drivers</mark></h1>
<p>Copyright © 2018 STMicroelectronics</p>
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo.png" alt="ST logo" /></a>
</center>
</div>
</div>
<h1 id="license">License</h1>
<p>This software component is licensed by ST under BSD 3-Clause license, the “License”; You may not use this component except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="https://opensource.org/licenses/BSD-3-Clause">https://opensource.org/licenses/BSD-3-Clause</a></p>
<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 provide 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 depend 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 function 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>Fully Independant from HAL and can be used in standalone usage (without HAL drivers)</li>
<li>Full features coverage of the all the supported peripherals.</li>
</ul>
</div>
<div class="col-sm-12 col-lg-8">
<h1 id="update-history">Update History</h1>
<div class="collapse">
<input type="checkbox" id="collapse-section3" checked aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.2.0 / 05-April-2019</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<h3 id="maintenance-release-and-product-update">Maintenance release and product update</h3>
<p>First release of HAL and Low layers drivers to introduce support of <strong>STM32G041xx/STM32G031xx/STM32G030xx devices</strong>.</p>
<p>Maintenance release of HAL and Low layers drivers supporting STM32G081xx/STM32G071xx/STM32G070xx devices.</p>
<table>
<caption>Additional features<br />
</caption>
<thead>
<tr class="header">
<th style="text-align: left;">Headline</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">HAL, LL Drivers update to support STM32G041xx, STM32G031xx, STM32G030xx</td>
</tr>
</tbody>
</table>
<table>
<caption>Fixed bugs list</caption>
<thead>
<tr class="header">
<th style="text-align: left;">Headline</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">[HAL] Correct possible issue within HAL_SetTickFreq()function</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL RCC] Use variable uwTickPrio instead TICK_INT_PRIORITY to not overwrite Tick priority</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL RCC] Use LL macro __LL_RCC_CALC_PCLK1_FREQ() in HAL_RCC_GetPCLK1Freq() to solve misra c 2012 issues</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL ADC] LL function LL_ADC_SetCommonFrequencyMode() is useless in STM32G0, kept for legacy purpose.</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL DAC] Rename HAL_DAC_MSP_INIT_CB_ID/HAL_DAC_MSP_DEINIT_CB_ID in HAL_DAC_MSPINIT_CB_ID/HAL_DAC_MSPDEINIT_CB_ID</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL DAC] Internal function DAC_DMAConvCpltCh1(), DAC_DMAErrorCh1(), DAC_DMAHalfConvCpltCh1() moved to hal_dac_ex.c</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL DAC] Use DAC driver define instead of CMSIS bit to check if software trigger enabled in HAL_DAC_Start()</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL FLASH] HAL flash driver improvement : typo, comments correction, add U suffix, used CMSIS define instead of harcoded value, use HAL macro instead of direct register access</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL FLASH] Clear FLASH_IT_ECCC flag when disabling End of Operation and Error interrupts in HAL_FLASH_IRQHandler()</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL GPIO] Correct compilation warning with new IAR 8.30.1 in IS_GPIO_PIN() macro</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL GPIO] Enhance reentrancy robustness for HAL_GPIO_TogglePin() API</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL PWR] Correct definition of LL_PWR_MODE_STOP0 and LL_PWR_MODE_STOP1</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL PWR] Correct definition of registers address-based accesses, which MUST be volatile</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL RTC] Add management of INITF flag rising occurrence too early when entering init mode</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL RTC] Correct WUTWF flag management in HAL_RTCEx_SetWakeUpTimer() API</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL RTC] Rename RTC_IT_MASK into RTC_FLAG_MASK</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL RTC] Replace hardcoded values by CMSIS _Pos definition</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL TIM] Align DMA Burst defines with the reference manual: Add TIM_DMABASE_TISEL definition</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL TIM] Remove parenthesis on REG parameter in LL_LPTIM_WriteReg() and LL_LPTIM_ReadReg() to avoid compilation failure after MISRA correction</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL DMA] Add clean of Callbacks in HAL_DMA_DeInit() and remove it from HAL_DMA_Init()</td>
</tr>
</tbody>
</table>
<p><br />
</p>
<h2 id="development-toolchains-and-compilers">Development Toolchains and Compilers</h2>
<ul>
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.20.2</li>
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.25</li>
<li>System Workbench STM32 (SW4STM32) toolchain V2.7.2</li>
</ul>
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32G081xx, STM32G071xx, STM32G070xx</li>
<li><strong>STM32G041xx, STM32G031xx, STM32G030xx</strong></li>
</ul>
<h2 id="backward-compatibility">Backward Compatibility</h2>
<p>This release is compatible with the previous versions.</p>
<h2 id="dependencies">Dependencies</h2>
<p>This software release is compatible with:</p>
<p>STM32CubeMX V5.2.0</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.1.0 / 06-February-2019</label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<h3 id="maintenance-release-and-product-update-1">Maintenance release and product update</h3>
<p>Maintenance release of HAL and Low layers drivers to support STM32G071xx/STM32G081xx/STM32G070xx devices.</p>
<table>
<caption>Additional features<br />
</caption>
<thead>
<tr class="header">
<th style="text-align: left;">Headline</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">MISRAC2012 implementation in CEC/CRYP/WWDG/RNG/I2S/SPI/UTILS/IWDG/USART/UART/I2C</td>
</tr>
</tbody>
</table>
<table>
<caption>Fixed bugs list</caption>
<thead>
<tr class="header">
<th style="text-align: left;">Headline</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">[LL ADC] compilation warning in stm32g0xx_ll_adc.h with MDK-ARM</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL ADC] Wrong commentary in stm32g0xx_ll_adc.h</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL ADC] missing to fill ADC_CFGR2_CKMODE in LL_ADC_Init ()</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL ADC] redefinition of registers address MUST be volatile (_IO)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL ADC] Potential infinite wait in while loop of LL_ADC_DeInit()</td>
</tr>
<tr class="even">
<td style="text-align: left;">[ADC] Embedded SW code comments or document must use ‘’Peripheral’’ rather than ‘’IP’’</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL COMP] redefinition of registers address MUST be volatile (_IO)</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL CYRP] Support several call to decrypt API without initialize Key and IVR - <strong>API update</strong></td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL CRYP] Add possibility to not set key in HAL CRYP interface</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL DMA] IS_LL_DMA_PERIPHREQUEST macro is not aligned with the max number of request</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[FLASH][MISRAC2012-Rule-8.5_b] Multiple declarations of externally-linked object</td>
</tr>
<tr class="even">
<td style="text-align: left;">[FLASH]Program DoubleWord fails (PGAERR) when using STRD assembly instruction</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[I2C][MISRAC2012] MISRAC2012-Rule-2.2c and 17.8 when ITFlags is modified</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL I2C] Issue using HAL_I2C_Slave_Sequential_Receive_DMA, STOPF arrives too early versus DMA cplt message</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL RCC] Correct EXTERNAL_CLOCK_VALUE</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL RCC][CodeSonar] HAL_RCCEx_GetPeriphCLKFreq - Useless Assignment</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[HAL RCC] MCU hangs after some stop/wakeup cycles</td>
</tr>
<tr class="even">
<td style="text-align: left;">[HAL RCC] __HAL_RCC_PLLxx_CONFIG() macros shall preserve output clock(s) enable state</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL UART][CodeSonar] Cast alter value (LL_LPUART_ReceiveData8)</td>
</tr>
<tr class="even">
<td style="text-align: left;">[LL UART][CodeSonar] Uninitialized Variable (LL_LPUART_GetBaudRate)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">[LL USART][CodeSonar] Cast alter value (LL_USART_ReceiveData8)</td>
</tr>
</tbody>
</table>
<p><br />
</p>
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32G0<strong>81</strong>xx</li>
<li>STM32G0<strong>71</strong>xx</li>
<li>STM32G0<strong>70</strong>xx</li>
</ul>
<h2 id="backward-compatibility-1">Backward Compatibility</h2>
<p>This release is compatible with the previous versions.</p>
<h2 id="dependencies-1">Dependencies</h2>
<p>This software release is compatible with:</p>
<p>STM32CubeMX V5.1.0</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.0.0 / 26-October-2018</label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<h3 id="first-release">First release</h3>
<p>First official release of HAL and Low layers drivers to support STM32G071xx/STM32G081xx/STM32G070xx</p>
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32G0<strong>81</strong>xx</li>
<li>STM32G0<strong>71</strong>xx</li>
<li>STM32G0<strong>70</strong>xx</li>
</ul>
<h2 id="dependencies-2">Dependencies</h2>
<p>This software release is compatible with:</p>
<p>STM32CubeMX V5.0.0</p>
</div>
</div>
</div>
</div>
<footer class="sticky">
<p>For complete documentation on <strong>STM32 Microcontrollers</strong>, visit: <a href="http://www.st.com/STM32">http://www.st.com/STM32</a></p>
<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.</p>
</footer>
</body>
</html>