comments to be 80-character long and correct typos.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Move
constants RTC_IT_TAMP. from hal_rtc.h to hal_rtc_ex.h.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Gather
all instructions related to exiting the init mode into new function
in TAMPCR register in one single access instead of two.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Deactivate
issue using HAL MEM interface through FreeRTOS.</span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">I2C_IsErrorOccurred does not return error if timeout is detected.</span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">The ADDRF flag is cleared too early when the restart is received but the direction has changed.<br></span></li></ul><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: rgb(17, 17, 17);"lang="EN-US">NOR HAL</span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="disc"><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">FMC_WRITE_OPERATION_DISABLE
for NOR cause Hardfault for Read operations.</span></li></ul><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: rgb(17, 17, 17);"lang="EN-US">UART HAL</span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="disc"><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Removal of HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs.</span></li></ul><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: rgb(17, 17, 17);"lang="EN-US">SDMMC HAL</span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="disc"><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">SDIO_PowerState_ON()
API call moved after __HAL_MMC_ENABLE() to ensure MMC clock is enabled
before the call to HAL_Delay() from within SDIO_PowerState_ON().</span></li></ul><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: rgb(17, 17, 17);"lang="EN-US">USB OTG HAL</span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="disc"><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">PCD:
add handling of USB OUT Endpoint disable interrupt.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">PCD:
fix device IN endpoint isoc incomplete transfer interrupt handling.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">PCD:
fix USB device Isoc OUT Endpoint incomplete transfer interrupt handling.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Fix
handling of ODDFRM bit in OTG_HCCHARx for HCD isochronous IN transactions.</span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US"><o:p></o:p></span></li><liclass="MsoNormal"style="color: rgb(0, 32, 82);"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: windowtext;"lang="EN-US">Fix
received data length counting when DMA is enabled.</span><spanstyle="color: windowtext;"lang="EN-US"></span><spanstyle="font-size: 10pt; font-family: "Arial",sans-serif;"lang="EN-US"><o:p></o:p></span></li></ul></ul>
API to force software reset before setting new I2C configuration</span><spanstyle="font-size: 12pt; font-family: "Times New Roman",serif;"lang="EN-US"><o:p></o:p></span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Update
HAL I2C processes to report ErrorCode when wrong I2C start condition
<ulstyle="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; margin-top: 0cm; margin-bottom: 0in; word-spacing: 0px; white-space: normal;"type="square"><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL ADC </span>Update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add "ADC_INTERNAL_NONE" channel to disable the VBAT & TSVREFE channel.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL DCMI </span>update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add DCMI_SyncUnmaskTypeDef structure and HAL_DCMI_ConfigSyncUnmask() API to manage embedded synchronization delimiters unmasks</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL EXTI</span> update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">General update to enhance HAL EXTI driver robustness </span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add additional assert check on EXTI config lines</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update to compute EXTI line mask before read/write access to EXTI registers</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update EXTI callbacks management to be compliant with reference manual: only one PR register for rising and falling interrupts.</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update
parameters in EXTI_HandleTypeDef structure: merge HAL EXTI
RisingCallback and FallingCallback in only one PendingCallback.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Remove HAL_EXTI_RISING_CB_ID and HAL_EXTI_FALLING_CB_ID values from EXTI_CallbackIDTypeDef enumeration.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update HAL_EXTI_IRQHandler() API to serve interrupts correctly.</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update to compute EXTI line mask before handle EXTI interrupt.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update to support GPIO port interrupts:</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add new "GPIOSel" parameter in EXTI_ConfigTypeDef structure</span></li></ul></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL HASH </span>update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanclass="MsoNormal"style="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;"></span></span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;"></span>Null pointer on handler "hhash" is now checked before accessing structure member "hhash->Init.DataType" in the following API:</span></li></ul><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_Init()</span></li></ul></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Following <spanstyle="font-weight: bold;">interrupt-based</span>
APIs have been added. Interrupt mode could allow the MCU to enter
"Sleep" mode while a data block is being processed. Please refer to the
"##### How to use this driver #####" section for details about their
use.</span></li></ul><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_SHA1_Accmlt_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_MD5_Accmlt_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA224_Accmlt_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA256_Accmlt_IT()</span></li></ul></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Following <spanstyle="font-weight: bold;">aliases</span> have been added (just <spanstyle="font-weight: bold;">for clarity sake</span>) as they shall be used at the <spanstyle="font-weight: bold;">end</span> of the computation of a multi-buffers message and not at the start:</span></li></ul><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_SHA1_Accmlt_End() to be used instead of HAL_HASH_SHA1_Start()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_MD5_Accmlt_End() to be used instead of HAL_HASH_MD5_Start()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_SHA1_Accmlt_End_IT() to be used instead of HAL_HASH_SHA1_Start_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_MD5_Accmlt_End_IT() to be used instead of HAL_HASH_MD5_Start_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA224_Accmlt_End() to be used instead of HAL_HASHEx_SHA224_Start()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA256_Accmlt_End() to be used instead of HAL_HASHEx_SHA256_Start()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA224_Accmlt_End_IT() to be used instead of HAL_HASHEx_SHA224_Start_IT()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA256_Accmlt_End_IT() to be used instead of HAL_HASHEx_SHA256_Start_IT()</span></li></ul></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">MISRAC-2012
rule R.5.1 (identifiers shall be distinct in the first 31 characters)
constrained the naming of the above listed aliases (e.g.
HAL_HASHEx_SHA256_<spanstyle="font-weight: bold;">Accmlt</span>_End() could not be named HAL_HASHEx_SHA256_<spanstyle="font-weight: bold;">Accumulate</span>_End(). Otherwise the name would have conflicted with HAL_HASHEx_SHA256_<spanstyle="font-weight: bold;">Accumulate</span>_End_IT()). In order to have aligned names following APIs have been renamed:</span></li></ul><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_MD5_Accumulate() renamed HAL_HASH_MD5_Accmlt()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_SHA1_Accumulate() renamed HAL_HASH_SHA1_Accmlt()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA224_Accumulate() renamed HAL_HASHEx_SHA224_Accmlt()</span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASHEx_SHA256_Accumulate() renamed HAL_HASHEx_SHA256_Accmlt()</span></li></ul></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HASH <spanstyle="font-weight: bold;">handler</span> state is <spanstyle="font-weight: bold;">no more</span> reset to HAL_HASH_STATE_READY <spanstyle="font-weight: bold;">once DMA has been started</span> in the following APIs:</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_MD5_Start_DMA()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HMAC_MD5_Start_DMA()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HASH_SHA1_Start_DMA()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_HMAC_SHA1_Start_DMA()</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HASH <spanstyle="font-weight: bold;">phase</span> state is now set to HAL_HASH_PHASE_READY<spanstyle="font-weight: bold;"> once the digest has been read</span> in the following APIs:</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HASH_IT()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HMAC_Processing()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HASH_Start()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HASH_Finish()</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Case of a large buffer scattered around in memory each piece of which is <spanstyle="fon
section "##### How to use this driver #####", sub-section "*** Remarks
on message length ***" added to provide recommendations to follow in
such case.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">No modification of the driver as the root-cause is at design-level.<br></span></li></ul></ul></ul><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"></span><ulstyle="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; margin-top: 0cm; margin-bottom: 0in; word-spacing: 0px; white-space: normal;"type="square"><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-weight: bold;"></span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;"><spanstyle="font-weight: bold;">HAL SDMMC </span></span>update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Fix typo in "FileFormatGroup" parameter in the HAL_MMC_CardCSDTypeDef and HAL_SD_CardCSDTypeDef structures.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Fix an improve handle state and error management</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Rename the defined MMC card capacity type to be more meaningful:</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update <spanstyle="font-weight: bold;">MMC_HIGH_VOLTAGE_CARD</span> to <spanstyle="font-weight: bold;">MMC LOW_CAPACITY_CARD</span></span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update <spanstyle="font-weight: bold;">MMC_DUAL_VOLTAGE_CRAD</span> to <spanstyle="font-weight: bold;">MMC_HIGH_CAPACITY_CARD</span></span></li></ul></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL QSPI </span>update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Remove Lock mechanism from HAL_QSPI_Init() and HAL_QSPI_DeInit() APIs</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><bstyle="color: rgb(0, 0, 0); font-family: "Times New Roman",serif; font-size: 16px; font-style: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><spanstyle="font-size: 10pt; font-family: Verdana,sans-serif;">HAL LPTIM<span> </span></span></b><spanstyle="color: rgb(0, 0, 0); font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: 10pt; font-family: Verdana,sans-serif;">update</span></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; font-family: Verdana,sans-serif;">Add a polling mechanism to check on </span><spanstyle="font-size: 10pt; font-family: Verdana,sans-serif;"lang="EN-US">LPTIM_FLAG_XXOK</span><spanstyle="font-size: 10pt; font-family: Verdana,sans-serif;"><span> </span>flags in different API </span><spanstyle="font-size:10pt;font-family:Verdana,sans-ser
HAL_TIMEx_MasterConfigSynchronization() API to avoid functional errors
and assert fails when using some TIM instances as input trigger.<o:p></o:p></span></li></ul></ul><ulstyle="margin-top: 0cm;"type="disc"><ulstyle="margin-top: 0cm;"type="disc"><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">Replace IS_TIM_SYNCHRO_INSTANCE()
mecanism to check whether the update interrupt flag (UIF) copy is
set or not <o:p></o:p></span></li></ul><ulstyle="margin-top: 0cm;"type="disc"><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">Add the
__HAL_TIM_GET_UIFCPY() macro in the HAL driver<o:p></o:p></span></li></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">Add
LL_TIM_IsActiveUIFCPY() API in the LL driver<o:p></o:p></span></li></ul></ul></ul><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">Add new macro
to check on the Update Interrupt Flag Remap mode<o:p></o:p></span></li></ul></ul><ulstyle="margin-top: 0cm;"type="disc"><ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">IS_TIM_UIFREMAP_MODE()<o:p></o:p></span></li></ul></ul></ul><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">Remove usseless
define in the LL driver <o:p></o:p></span></li></ul><ulstyle="margin-top: 0cm;"type="disc"><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">TIMx_AF1_BKINE
HAL_RCC_GetPCLK2Freq() macros from the USART_DIV_SAMPLING8() macro</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; line-height: 106%; font-family: "Verdana",sans-serif;">Support Stop Mode functionalities in the USART
driver </span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; line-height: 106%; font-family: "Verdana",sans-serif;">Add definition of USART_ISR_REACK USART,
receive enable acknowledge flag in the HAL driver</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; line-height: 106%; font-family: "Verdana",sans-serif;">Add new flag definition in the LL driver </span></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Add new API in LL driver to support stop mode</span></p></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_EnableInStopMode() to enable the USART in stop mode</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_DisableInStopMode() to disable the USART in stop mode</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_IsEnabledInStopMode() to check if the USART is enabled or not
in the stop mode</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_EnableClockInStopMode() to enable the USART clock in the stop
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_DisableClockInStopMode() to disable the USART clock in the stop
mode</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_IsClockEnabledInStopMode() to check whether USART clock are
enabled or not in the stop mode</span></p></li></ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Add new API in LL driver to manage event relisted to Wake UP Interrupt
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_SetWKUPType() to select the event type for Wake UP Interrupt
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_GetWKUPType() to get the event type for Wake UP Interrupt
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_IsActiveFlag_WKUP() to Check if the USART Wake Up from stop
mode Flag is set or not</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_IsActiveFlag_REACK() to Check if the USART Receive Enable
Acknowledge Flag is set or not</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_ClearFlag_WKUP() Clear Wake Up from stop mode Flag</span></p></li></ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Add new API in LL driver to manage wake up from stop interruption</span></p></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_EnableIT_WKUP() to Enable Wake Up from Stop Mode Interrupt</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;">
<pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_DisableIT_WKUP() to Disable Wake Up from Stop Mode Interrupt</span></p></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><pclass="MsoNormal"style="margin: 2pt 0cm 2pt 18pt; text-indent: -18pt; line-height: normal;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_USART_IsEnabledIT_WKUP() to Check if the USART Wake Up from Stop Mode
Interrupt is enabled or not</span></p></li></ul></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">HAL/LL USB </span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;">update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"> Add handling USB host babble error interrupt</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"> Fix Enabling ULPI interface for platforms that integrates USB HS PHY</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"> Fix Host data toggling for IN Iso transfers</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"> Ensure to disable USB EP during endpoint deactivation</span></li></ul></ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">General updates to fix SW4STM32 compilation errors under Linux</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">General updates to fix the user manual .chm files</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add support of HAL callback registration feature</span></li>
<liclass="MsoNormal"style="margin: 4.5pt 0in; color: black; font-family: "Times New Roman",serif; font-size: 12pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new<spanclass="Apple-converted-space"></span><spanstyle="font-weight: bold;">HAL EXTI</span><spanclass="Apple-converted-space"></span>driver</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; color: black; font-family: "Times New Roman",serif; font-size: 12pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"><spanstyle="font-weight: bold;">The following changes done on the HAL drivers require an update on the application code based on older HAL versions</span></span></li><ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana; font-size: 10pt;">Rework of HAL CRYP driver<spanstyle="font-weight: bold;"> (compatibility break) </span></span><br><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US"></span></li>
<ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL CRYP driver has been redesigned with new API'</span><spanstyle="font-family: Verdana; font-size: 10pt;">s, to bypass limitations on data Encryption/Decryption management present with previous HAL CRYP driver version.</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; color: black; font-family: "Times New Roman",serif; font-size: 12pt;"><spanstyle="font-family: Verdana; font-size: 10pt;">The
new HAL CRYP driver is the recommended version. It is located as usual
in Drivers/STM32F7xx_HAL_Driver/Src and
Drivers/STM32f7xx_HAL_Driver/Inc folders. It can be enabled through
switch HAL_CRYP_MODULE_ENABLED in stm32f7xx_hal_conf.h</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; color: black; font-family: "Times New Roman",serif; font-size: 12pt;"><spanstyle="font-family: Verdana; font-size: 10pt;">The legacy HAL CRYP driver is no longer supported.</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">The CRYP_InitTypeDef </span>is no more supported, changed by <spanstyle="font-weight: bold;">CRYP_ConfigTypedef</span> to allow changing parameters <br>
using HAL_CRYP_setConfig() API without reinitialize the CRYP IP using the HAL_CRYP_Init() API</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">New parameters added in the <spanstyle="font-weight: bold;">CRYP_ConfigTypeDef</span> structure: <spanstyle="font-weight: bold;">B0</span> and <spanstyle="font-weight: bold;">DataWidthUnit</span></span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Input data size parameter is added in the <spanstyle="font-weight: bold;">CRYP_HandleTypeDef</span> structure<spanstyle="font-weight: bold;"></span></span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add new APIs to manage the CRYP configuration:</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"> </span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_CRYP_SetConfig()</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_CRYP_GetConfig()</span></li></ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update LL_RCC_GetSAIClockFreq() API to return the right frequency according to the SAI clock source</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"><spanstyle="font-weight: bold;">Note</span>: For STM32F72/F73 the issue will be fixed in next release<br>
</span></li>
</ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_ADC_Start(), </span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_ADC_Start_IT() and </span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">HAL_ADC_Start_DMA() update to prevention from starting ADC2 or ADC3 once multimode is enabled</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">General updates to be compliant with DFSDM bits naming used in CMSIS files.</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update possible values list for FilterActivation parameter in CAN_FilterTypeDef structure</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update parameters type in JPEG_ConfTypeDef structure to be aligned with 32-bits<br>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li>
</ul>
<ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add the following new macros:</span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"></span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li>
</ul>
<ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add the following new macros:</span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"></span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">I2S</span><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">_CHECK_FLAG()</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li>
</ul>
<ul>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Add the following UART API's in stm32f7xx_hal_uart_ex.c:</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Rework USB interrupt handler and improve HS DMA support in Device mode</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Fix BCD handling for OTG instance in device mode</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">cleanup reference to low speed in device mode</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">allow writing TX FIFO in case of transfer length is equal to available space in the TX FIFO</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Fix Toggle OUT interrupt channel in host mode</span></li>
<liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: "Verdana","sans-serif"; font-size: 10pt;">Update LL inline macros to use IWDGx parameter instead of IWDG instance defined in CMSIS device</span></li>
new HAL CAN driver is the recommended version. It is located as usual
in Drivers/STM32F7xx_HAL_Driver/Src and
Drivers/STM32f7xx_HAL_Driver/Inc folders. It can be enabled through
switch HAL_CAN_MODULE_ENABLED in stm32f7xx_hal_conf.h</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; font-family: Verdana;">The
legacy HAL CAN driver is also present in the release in
Drivers/STM32F7xx_HAL_Driver/Src/Legacy and
Drivers/STM32F7xx_HAL_Driver/Inc/Legacy folders for software
compatibility reasons. Its usage is not recommended as deprecated. It
can however be enabled through switch HAL_CAN_LEGACY_MODULE_ENABLED in
stm32f7xx_hal_conf.h</span></li></ul></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL </span>update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL driver to allow user to change systick period to 1ms , 10 ms or 100 ms :</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add the following API's : </span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_GetTickPrio() : Returns a tick priority.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_SetTickFreq() : Sets new tick </span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">frequency.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_GetTickFreq() : Returns tick frequency.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add HAL_TickFreqTypeDef enumeration for the different Tick Frequencies : 10 Hz , 100 Hz and 1KHz (default).</span></li></ul></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL CAN </span>update</span></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">Fields of CAN_InitTypeDef structure are reworked:</span></li><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: "Times New Roman",serif; color: black;"><spanstyle="font-size: 10pt; font-family: Verdana;">SJW
to SyncJumpWidth, BS1 to TimeSeg1, BS2 to TimeSeg2, TTCM to
TimeTriggeredMode, ABOM to AutoBusOff, AWUM to AutoWakeUp, NART to
AutoRetransmission (inversed), RFLM to ReceiveFifoLocked and TXFP to
TransmitFifoPriority</span></li></ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Init() is split into both HAL_CAN_Init() and HAL_CAN_Start() API's</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Transmit()
is replaced by HAL_CAN_AddTxMessage() to place Tx Request, then
HAL_CAN_GetTxMailboxesFreeLevel() for polling until completion.</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Transmit_IT()
is replaced by HAL_CAN_ActivateNotification() to enable transmit IT, then
HAL_CAN_</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">AddTxMessage</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">() for place Tx request.</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US"></span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Receive()
is replaced by HAL_CAN_GetRxFifoFillLevel() for polling until
reception, then HAL_CAN_GetRxMessage() <br>to get Rx message.</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Receive_IT()
is replaced by HAL_CAN_</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">ActivateNotification</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">() </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">to enable receive IT, then
HAL_CAN</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">_GetRxMessage()<br></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US"> in the receivecallback to get Rx message</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_Slepp() is renamed as HAL_CAN_RequestSleep()</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_TxCpltCallback() is split into HAL_CAN_TxMailbox0CompleteCallback(), </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_TxMailbox1CompleteCallback() and </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_TxMailbox2CompleteCallback().</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_RxCpltCallback is split into HAL_CAN_RxFifo0MsgPendingCallback() and </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_CAN_RxFifo1MsgPendingCallback().</span></li></ul><ul><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">More complete "How to use the new driver" is detailed in the driver header section itself.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">HAL RCC </span></b><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">update</span><spanstyle="font-size: 12pt; font-family: "Times New Roman",serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="square"><ulstyle="margin-top: 0cm;"type="square"><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Add new LL macro </span><spanstyle="font-size: 12pt; font-family: "Times New Roman",serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="square"><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">LL_RCC_PLL_SetMainSource()
allowing to configure PLL clock source</span><spanstyle="font-size: 12pt; font-family: "Times New Roman",serif;"lang="EN-US"><o:p></o:p></span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Add new HAL macros</span><spanstyle="font-size: 12pt; font-family: "Times New Roman",serif;"lang="EN-US"><o:p></o:p></span></li><ulstyle="margin-top: 0cm;"type="square"><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">__HAL_RCC_GET_RTC_SOURCE()
allowing to get the RTC clock source<o:p></o:p></span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">__HAL_RCC_GET_RTC_HSE_PRESCALER()
allowing to get the HSE clock divider for RTC peripheral<o:p></o:p></span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Ensure reset of CIR and CSR
lost issue with specific sequence of transmit requests.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Handle
transmission failure with error callback, when NART is enabled.</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif; color: black;"lang="EN-US">Add __HAL_CAN_CANCEL_TRANSMIT() call to abort transmission when
USART, WWDG peripherals and additionnal Low Level Bus, System and
Utilities APIs.</span></li><liclass="MsoNormal"style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><spanstyle="font-size: 10pt; font-family: Verdana;">Low Layer drivers APIs are implemented as static inline function in new<spanclass="Apple-converted-space"> </span><spanstyle="font-style: italic;">Inc/stm32f7xx_ll_ppp.h</span><spanclass="Apple-converted-space"> </span>files for PPP peripherals, there is no configuration file and each<spanclass="Apple-converted-space"> </span></span><spanstyle="font-size: 10pt; font-family: Verdana;"><spanstyle="font-style: italic;">stm32f7xx_ll_ppp.h</span><spanclass="Apple-converted-space"> </span>file must be included in user code.</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">General updates
to fix known defects and enhancements implementation</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new HAL <spanstyle="font-weight: bold;">MMC</span> and <spanstyle="font-weight: bold;">SMBUS</span> drivers</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL Cortex</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Move HAL_MPU_Disable() and HAL_MPU_Enable() from stm32f7xx_hal_cortex.h to stm32f7xx_hal_cortex.c</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Clear the whole MPU control register in </span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_MPU_Disable() API</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL CRYP</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add support of AES</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL DMA</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add a check on DMA stream instance in HAL_DMA_DeInit() API</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL ETH</span> update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Fix wrong definitions in driver header file stm32f7_hal_eth.h</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL FLASH</span> update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Support OTP program operation</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add the support of PCROP feature</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update the clearing of error flags</span></li></ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL I2C</span> update</span></li><ul><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Align driver source code with other STM32 families<br></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL JPEG</span> update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family:Verdana,sans-serif;font-size:
application code based on older HAL versions</span></span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL SD</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Modify initialization API and structures</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Modify Read / Write sequences: separate transfer process and SD Cards state management </span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Adding interrupt mode for Read / Write operations</span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Update the HAL_SD_IRQHandler function by optimizing the management of interrupt errors<br></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Refer to the following example to identify the changes: BSP example and USB_Device/MSC_Standalone application</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL TIM</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new AutoReloadPreload field in TIM_Base_InitTypeDef structure</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Refer to the TIM examples to identify the changes</span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;"> </span></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL NAND</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Modify NAND_AddressTypeDef, NAND_DeviceConfigTypeDef and NAND_HandleTypeDef structures fields</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new HAL_NAND_ConfigDevice API<br></span></li></ul></ul></ul><bstyle="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;"><spanstyle="font-family: Verdana; color: black; font-size: 10pt;"></span></b><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><h3style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 200px;"><spanstyle="font-size: 10pt; font-family: Arial; color: white;">V1.1.1 / 01-July-2016</span></h3>
<ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update to avoid waiting on </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">STOPF/BTF/AF flag under DMA ISR by using the </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">PPP end of transfer interrupt in the </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">DMA transfer process.</span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"> This requires the following updates on </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">user application</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable
the PPP IRQ in HAL_PPP_MspInit() function<br></span></li></ul></ul>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new HAL APIs: HAL_CEC_SetDeviceAddress() and
HAL_CEC_ChangeRxBuffer()</span>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Remove the <span></span>'InitiatorAddress' field from the CEC_InitTypeDef
structure and manage it as a parameter in the HAL_CEC_Transmit_IT() function</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new parameter 'RxFrameSize' in HAL_CEC_RxCpltCallback() function</span>
CEC_InitTypeDef structure</span></li></ul></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL CAN</span> update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add the support of CAN3</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL CEC</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall driver rework with break of compatibility with HAL
V1.0.4<br></span></li></ul><ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Remove the HAL CEC polling Process: HAL_CEC_Transmit() and HAL_CEC_Receive()</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span></li></ul></ul></ul>
<ulstyle="margin-top: 0cm;"type="disc"><ulstyle="margin-top: 0cm;"type="circle"><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Remove the HAL CEC receive interrupt process (HAL_CEC_Receive_IT()) and manage the "Receive" mode enable within the Init phase</span>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Rename HAL_CEC_GetReceivedFrameSize() function to HAL_CEC_GetLastReceivedFrameSize() function<br></span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new HAL APIs: HAL_CEC_SetDeviceAddress() and
HAL_CEC_ChangeRxBuffer()</span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Remove the <span></span>'InitiatorAddress' field from the CEC_InitTypeDef
structure and manage it as a parameter in the HAL_CEC_Transmit_IT() function</span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"></span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new parameter 'RxFrameSize' in HAL_CEC_RxCpltCallback() function</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to
information related to Rx Operations</span></li></ul><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Rename "state"
field in CEC_HandleTypeDef structure to "gstate": CEC </span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">state information
related to global Handle management and Tx Operations</span>
new APIs HAL_DMA_RegisterCallback() and HAL_DMA_UnRegisterCallback to
register/unregister the different callbacks identified by
the enum typedef HAL_DMA_CallbackIDTypeDef</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new API HAL_DMA_Abort_IT() to abort DMA transfer under interrupt context<br></span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">The new registered Abort callback is called when DMA transfer abortion is completed</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add the check of
compatibility between FIFO threshold level and size of the memory burst in the
HAL_DMA_ERROR_NOT_SUPPORTED</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Remove all DMA states
related to MEM0/MEM1 in HAL_DMA_StateTypeDef</span><spanstyle="font-family: 'Helvetica',sans-serif; color: rgb(98, 98, 98); font-size: 9.5pt;"lang="EN-US"><o:p></o:p></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL DMA2D</span> update </span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update the
HAL_DMA2D_DeInit() function to:</span>
<ulstyle="margin-bottom: 0in;"><listyle="margin: 4.5pt 0in; list-style-type: square; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Abort transfer in case
of ongoing DMA2D transfer</span></li></ul>
<ul><li><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Reset DMA2D control
function to abort the DMA2D CLUT loading</span></li></ul><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_DMA2D_CLUTLoading_Suspend()
function to suspend the DMA2D CLUT loading</span></li></ul><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_DMA2D_CLUTLoading_Resume()
function to resume the DMA2D CLUT loading</span></li></ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new DMA2D dead time
function to enable DMA2D dead time feature</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_DMA2D_DisableDeadTime()
function to disable DMA2D dead time feature</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_DMA2D_ConfigDeadTime()
function to configure dead time</span></li></ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update the name of
DMA2D Input/Output color mode defines to be more clear for user (DMA2D_INPUT_XXX
for input layers Colors, DMA2D_OUTPUT_XXX for output framebuffer
<ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add the support of I2C fast mode plus (FM+)</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Update </span><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">Polling management:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-size: 10pt; font-family: "Verdana",sans-serif;"lang="EN-US">The Timeout value must be estimated for the overall process duration: the Timeout measurement is cumulative<br></span></li></ul></ul>
<ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add the management of Abort service: Abort DMA transfer through interrupt</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">In the case of Master Abort IT transfer usage:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new user HAL_I2C_AbortCpltCallback() to inform user of the end of abort process</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">A new abort state is defined in the </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_I2C_StateTypeDef </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">structure</span></li></ul></ul></ul>
<ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add the management of I2C peripheral errors, ACK
failure and STOP condition detection during DMA process. This requires the following updates
on user application:</span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the I2C IRQ in HAL_I2C_MspInit() function</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">In stm32f7xx_it.c file, I2C_IRQHandler() function: add a call to HAL_I2C_IRQHandler() function</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add and customize the Error Callback API: HAL_I2C_ErrorCallback()</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Refer to the I2C_EEPROM or I2C_TwoBoards_ComDMA project examples usage of the API<br></span></li></ul></ul><ul><li><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add the support of I2C repeated start feature:</span>
<ul><li><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">With the following new APIs<br></span></li></ul>
<ul><li><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new user callbacks:</span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"><br></span></li></ul>
updates on HAL I2C driver to implement the new I2C state machine: </span>
<ul><li><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add new API to get the </span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"></span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">I2C mode:
</li><li><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update </span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"></span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">I2C process to
manage the new </span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"></span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">I2C states</span></li></ul></li></ul>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL IWDG</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Overall rework of the driver for a more efficient implementation</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Remove the following APIs:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_IWDG_Start()</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_IWDG_MspInit()</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_IWDG_GetState()</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Update implementation:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_IWDG_Init() : this function insures the configuration and the start of the IWDG counter</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_IWDG_Refresh() : this function insures the reload of the IWDG counter</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Refer to the following example to identify the changes: IWDG_Example<br></span></li></ul></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL LPTIM </span>update</span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;"></span></span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">Update </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_LPTIM_TimeOut_Start_IT() and HAL_LPTIM_Counter_Start_IT( ) APIs
to configure WakeUp Timer EXTI interrupt to be able to wakeup MCU from low power
mode by </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">pressing the EXTI line </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US"></span>
</li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">Update </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"lang="EN-US">HAL_LPTIM_TimeOut_Stop_IT() and HAL_LPTIM_Counter_Stop_IT( ) APIs to
Variant functions with <20>_NoReload<61> post fix allows to set the LTDC
configuration/settings without immediate reload. This is useful in case
when the program requires to modify several LTDC settings (on one or
both layers) then applying (reload) these settings in one shot by
calling the function <20>HAL_LTDC_Reload<61><br></span></li></ul></li></ul></ul>
<ulstyle="margin-top: 0cm;"type="square"><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL NOR</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Update NOR_ADDR_SHIFT macro implementation</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL PCD</span> update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL_PCD_IRQHandler() to get HCLK frequency before setting TRDT value</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL QSPI </span>update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update to manage QSPI error management during DMA process</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Improve the DMA transmit process by using QSPI TC interrupt instead of waiting loop on TC flag under DMA ISR</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">These two improvements require the following updates on user application:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the QSPI IRQ in HAL_QSPI_MspInit() function</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">In stm32f7xx_it.c file, QSPI_IRQHandler() function: add a call to HAL_QSPI_IRQHandler() function</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add and customize the Error Callback API: HAL_QSPI_ErrorCallback()</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add
the management of non-blocking transfer abort service: HAL_QSPI_Abort_IT(). In
this case the user must:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add new callback HAL_QSPI_AbortCpltCallback() to inform user at the end of abort process</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">A new value of State in the HAL_QSPI_StateTypeDef provides the current state during the abort phase</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Polling management update:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">The Timeout value user must be estimated for the overall process duration: the Timeout measurement is cumulative. </span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Refer to the following examples, which describe the changes:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">QSPI_ReadWrite_DMA</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">QSPI_MemoryMapped</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">QSPI_ExecuteInPlace<br></span></li></ul></ul></ul><ulstyle="margin-top: 0cm;"type="square"><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add two new APIs for the QSPI fifo threshold:</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span>
<ulstyle="margin-top: 0cm;"type="circle"><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_QSPI_SetFifoThreshold(): configure the FIFO threshold of
the QSPI</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL_QSPI_GetFifoThreshold(): give the current FIFO
threshold</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span></li></ul>
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Fix wrong data size management in HAL_QSPI_Receive_DMA()</span><spanstyle="font-family: 'Times New Roman',serif; font-size: 12pt;"lang="EN-US"><o:p></o:p></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL RCC </span>update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL_RCC_PeriphCLKConfig() function to adjust the SystemCoreClock</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Optimize HAL_RCC_ClockConfig() function code</span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">O</span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">ptimize internal oscillators and PLL startup times</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL RTC </span>update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL_RTC_GetTime() with proper 'SubSeconds' and 'SecondFraction' management</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL SAI </span>update </span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update SAI state in case of TIMEOUT error within the </span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">HAL_SAI_Transmit() / HAL_SAI_Receive()</span>
<ulstyle="margin-top: 0cm;"type="square"><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL SPDIFRX </span>update</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Overall driver update for wait on flag management optimization <br></span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL SPI </span>update</span><b><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US"></span></b></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Overall driver optimization to improve performance in polling/interrupt mode to reach maximum peripheral frequency</span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Polling mode:</span>
</li><ul><li><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Replace the use of SPI_WaitOnFlagUnitTimeout() function by "if"
statement to check on RXNE/TXE flage while transferring
</li></ul></ul><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">All modes:</span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add the USE_SPI_CRC switch to minimize the number of statements when CRC calculation is disabled</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update timeout management to check on global processes</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update error code management in all processes</span></li></ul></ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update DMA process:<o:p></o:p></span>
<ulstyle="margin-bottom: 0in;"><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add the management of SPI peripheral errors during DMA process. This requires the following updates in
the user application:</span></li><ul><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Configure and enable the SPI IRQ in HAL_SPI_MspInit() function</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">In stm32f7xx_it.c file, SPI_IRQHandler() function: add a call to HAL_SPI_IRQHandler() function</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Add and customize the Error Callback API: HAL_SPI_ErrorCallback()</span></li><listyle="margin: 4.5pt 0in; font-family: 'Times New Roman',serif; color: black; font-size: 12pt;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Refer to the following example which describe the changes: SPI_FullDuplex_ComDMA<br></span></li></ul></ul>
</li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL TIM </span>update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL_TIM_ConfigOCrefClear() function for proper configuration of the SMCR register</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new function HAL_TIMEx_ConfigBreakInput() to configure the break input source</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><b><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">HAL UART, USART, SMARTCARD and IRDA </span></b><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"><spanstyle="font-style: italic;"></span></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"><spanstyle="font-style: italic;"></span>(referenced as <spanstyle="font-style: italic;">PPP</span> here below)<spanstyle="font-style: italic;"></span></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"><spanstyle="font-style: italic;"></span></span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">update<b><o:p></o:p></b></span>
</li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Update Polling management:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">The user Timeout value must be estimated for the overall process duration: the Timeout measurement is cumulative</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update DMA process:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"></span><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;">Update the m</span><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">anagement of PPP peripheral errors during DMA process. This requires the following updates in user application:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Configure and enable the PPP IRQ in HAL_PPP_MspInit() function</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">In stm32f7xx_it.c file, PPP_IRQHandler() function: add a call to HAL_PPP_IRQHandler() function</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana',sans-serif; font-size: 10pt;"lang="EN-US">Add and customize the Error Callback API: HAL_PPP_ErrorCallback()<br></span></li></ul></ul></ul></ul><ulstyle="margin-top: 0cm;"type="square"><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;">HAL WWDG </span>update </span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Overall rework of the driver for more efficient implementation</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Remove the following APIs:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_WWDG_Start()</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_WWDG_Start_IT()</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_WWDG_MspDeInit()</span></li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_WWDG_GetState()</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update implementation:</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">HAL_WWDG_Init()</span></li><ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">A new parameter in the Init Structure: EWIMode</span></li></ul><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family:'Verdana','sans-serif';font-s
to fix known defects and enhancements implementation</span><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><spanstyle="font-weight: bold;"></span></span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana,sans-serif; font-size: 10pt;"><spanstyle="font-weight: bold;">One change done on the HAL CRYP requires an update on
the application code based on HAL V1.0.2</span></span>
HASH_DMAXferCplt() and HASHEx_DMAXferCplt() functions to properly
configure the number of valid bits in last word of the message</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana; font-size: 10pt;">update HAL_HASH_SHA1_Accumulate() function to check on the length of the input buffer</span></li><liclass="MsoNormal"style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><spanstyle="font-family: Verdana; font-size: 10pt;">update
</li><listyle="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;"class="MsoNormal"><spanstyle="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update to use local
variable in USB Host channel re-activation</span></li></ul></ul>