Release v1.8.0
diff --git a/Inc/Legacy/stm32_hal_legacy.h b/Inc/Legacy/stm32_hal_legacy.h
index ae83378..1cfd19b 100644
--- a/Inc/Legacy/stm32_hal_legacy.h
+++ b/Inc/Legacy/stm32_hal_legacy.h
@@ -7,13 +7,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2021 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -105,6 +104,12 @@
 #if defined(STM32H7)
 #define ADC_CHANNEL_VBAT_DIV4           ADC_CHANNEL_VBAT
 #endif /* STM32H7 */
+
+#if defined(STM32U5)
+#define ADC_SAMPLETIME_5CYCLE           ADC_SAMPLETIME_5CYCLES
+#define ADC_SAMPLETIME_391CYCLES_5      ADC_SAMPLETIME_391CYCLES
+#define ADC4_SAMPLETIME_160CYCLES_5     ADC4_SAMPLETIME_814CYCLES_5
+#endif /* STM32U5 */
 /**
   * @}
   */
@@ -214,10 +219,20 @@
   * @{
   */
 #define __HAL_CORTEX_SYSTICKCLK_CONFIG HAL_SYSTICK_CLKSourceConfig
+#if defined(STM32U5)
+#define  MPU_DEVICE_nGnRnE          MPU_DEVICE_NGNRNE
+#define  MPU_DEVICE_nGnRE           MPU_DEVICE_NGNRE
+#define  MPU_DEVICE_nGRE            MPU_DEVICE_NGRE
+#endif /* STM32U5 */
 /**
   * @}
   */
 
+/** @defgroup CRC_Aliases CRC API aliases
+  * @{
+  */
+#define HAL_CRC_Input_Data_Reverse   HAL_CRCEx_Input_Data_Reverse    /*!< Aliased to HAL_CRCEx_Input_Data_Reverse for inter STM32 series compatibility  */
+#define HAL_CRC_Output_Data_Reverse  HAL_CRCEx_Output_Data_Reverse   /*!< Aliased to HAL_CRCEx_Output_Data_Reverse for inter STM32 series compatibility */
 /**
   * @}
   */
@@ -252,6 +267,13 @@
 #define DAC_CHIPCONNECT_ENABLE        DAC_CHIPCONNECT_INTERNAL
 #endif
 
+#if defined(STM32U5)
+#define DAC_TRIGGER_STOP_LPTIM1_OUT  DAC_TRIGGER_STOP_LPTIM1_CH1
+#define DAC_TRIGGER_STOP_LPTIM3_OUT  DAC_TRIGGER_STOP_LPTIM3_CH1
+#define DAC_TRIGGER_LPTIM1_OUT       DAC_TRIGGER_LPTIM1_CH1
+#define DAC_TRIGGER_LPTIM3_OUT       DAC_TRIGGER_LPTIM3_CH1
+#endif
+
 #if defined(STM32L1) || defined(STM32L4) || defined(STM32G0) || defined(STM32L5) || defined(STM32H7) || defined(STM32F4) || defined(STM32G4)
 #define HAL_DAC_MSP_INIT_CB_ID       HAL_DAC_MSPINIT_CB_ID
 #define HAL_DAC_MSP_DEINIT_CB_ID     HAL_DAC_MSPDEINIT_CB_ID
@@ -394,6 +416,10 @@
 #define DAC_TRIGGER_LP2_OUT                        DAC_TRIGGER_LPTIM2_OUT
 
 #endif /* STM32H7 */
+
+#if defined(STM32U5)
+#define GPDMA1_REQUEST_DCMI                        GPDMA1_REQUEST_DCMI_PSSI
+#endif /* STM32U5 */
 /**
   * @}
   */
@@ -542,6 +568,7 @@
 #define HAL_SYSCFG_DisableIOAnalogSwitchVDD       HAL_SYSCFG_DisableIOSwitchVDD
 #endif /* STM32G4 */
 
+
 /**
   * @}
   */
@@ -637,6 +664,20 @@
 #endif /* STM32F0 || STM32F3 || STM32F1 */
 
 #define GPIO_AF6_DFSDM                            GPIO_AF6_DFSDM1
+
+#if defined(STM32U5)
+#define GPIO_AF0_RTC_50Hz                         GPIO_AF0_RTC_50HZ
+#endif /* STM32U5 */
+/**
+  * @}
+  */
+
+/** @defgroup HAL_GTZC_Aliased_Defines HAL GTZC Aliased Defines maintained for legacy purpose
+  * @{
+  */
+#if defined(STM32U5)
+#define GTZC_PERIPH_DCMI                      GTZC_PERIPH_DCMI_PSSI
+#endif /* STM32U5 */
 /**
   * @}
   */
@@ -874,9 +915,19 @@
 #define LPTIM_TRIGSAMPLETIME_4TRANSITION        LPTIM_TRIGSAMPLETIME_4TRANSITIONS
 #define LPTIM_TRIGSAMPLETIME_8TRANSITION        LPTIM_TRIGSAMPLETIME_8TRANSITIONS
 
+
+/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose
+  * @{
+  */
+#define HAL_LPTIM_ReadCompare      HAL_LPTIM_ReadCapturedValue
+/**
+  * @}
+  */
+
 #if defined(STM32U5)
 #define LPTIM_ISR_CC1        LPTIM_ISR_CC1IF
 #define LPTIM_ISR_CC2        LPTIM_ISR_CC2IF
+#define LPTIM_CHANNEL_ALL    0x00000000U
 #endif /* STM32U5 */
 /**
   * @}
@@ -1216,6 +1267,10 @@
 #define TIM_TIM3_TI1_COMP1COMP2_OUT   TIM_TIM3_TI1_COMP1_COMP2
 #endif
 
+#if defined(STM32U5) || defined(STM32MP2)
+#define OCREF_CLEAR_SELECT_Pos       OCREF_CLEAR_SELECT_POS
+#define OCREF_CLEAR_SELECT_Msk       OCREF_CLEAR_SELECT_MSK
+#endif
 /**
   * @}
   */
@@ -1646,6 +1701,79 @@
 
 #define PWR_MODE_EVT                                  PWR_PVD_MODE_NORMAL
 
+#if defined (STM32U5)
+#define PWR_SRAM1_PAGE1_STOP_RETENTION                PWR_SRAM1_PAGE1_STOP
+#define PWR_SRAM1_PAGE2_STOP_RETENTION                PWR_SRAM1_PAGE2_STOP
+#define PWR_SRAM1_PAGE3_STOP_RETENTION                PWR_SRAM1_PAGE3_STOP
+#define PWR_SRAM1_PAGE4_STOP_RETENTION                PWR_SRAM1_PAGE4_STOP
+#define PWR_SRAM1_PAGE5_STOP_RETENTION                PWR_SRAM1_PAGE5_STOP
+#define PWR_SRAM1_PAGE6_STOP_RETENTION                PWR_SRAM1_PAGE6_STOP
+#define PWR_SRAM1_PAGE7_STOP_RETENTION                PWR_SRAM1_PAGE7_STOP
+#define PWR_SRAM1_PAGE8_STOP_RETENTION                PWR_SRAM1_PAGE8_STOP
+#define PWR_SRAM1_PAGE9_STOP_RETENTION                PWR_SRAM1_PAGE9_STOP
+#define PWR_SRAM1_PAGE10_STOP_RETENTION               PWR_SRAM1_PAGE10_STOP
+#define PWR_SRAM1_PAGE11_STOP_RETENTION               PWR_SRAM1_PAGE11_STOP
+#define PWR_SRAM1_PAGE12_STOP_RETENTION               PWR_SRAM1_PAGE12_STOP
+#define PWR_SRAM1_FULL_STOP_RETENTION                 PWR_SRAM1_FULL_STOP
+
+#define PWR_SRAM2_PAGE1_STOP_RETENTION                PWR_SRAM2_PAGE1_STOP
+#define PWR_SRAM2_PAGE2_STOP_RETENTION                PWR_SRAM2_PAGE2_STOP
+#define PWR_SRAM2_FULL_STOP_RETENTION                 PWR_SRAM2_FULL_STOP
+
+#define PWR_SRAM3_PAGE1_STOP_RETENTION                PWR_SRAM3_PAGE1_STOP
+#define PWR_SRAM3_PAGE2_STOP_RETENTION                PWR_SRAM3_PAGE2_STOP
+#define PWR_SRAM3_PAGE3_STOP_RETENTION                PWR_SRAM3_PAGE3_STOP
+#define PWR_SRAM3_PAGE4_STOP_RETENTION                PWR_SRAM3_PAGE4_STOP
+#define PWR_SRAM3_PAGE5_STOP_RETENTION                PWR_SRAM3_PAGE5_STOP
+#define PWR_SRAM3_PAGE6_STOP_RETENTION                PWR_SRAM3_PAGE6_STOP
+#define PWR_SRAM3_PAGE7_STOP_RETENTION                PWR_SRAM3_PAGE7_STOP
+#define PWR_SRAM3_PAGE8_STOP_RETENTION                PWR_SRAM3_PAGE8_STOP
+#define PWR_SRAM3_PAGE9_STOP_RETENTION                PWR_SRAM3_PAGE9_STOP
+#define PWR_SRAM3_PAGE10_STOP_RETENTION               PWR_SRAM3_PAGE10_STOP
+#define PWR_SRAM3_PAGE11_STOP_RETENTION               PWR_SRAM3_PAGE11_STOP
+#define PWR_SRAM3_PAGE12_STOP_RETENTION               PWR_SRAM3_PAGE12_STOP
+#define PWR_SRAM3_PAGE13_STOP_RETENTION               PWR_SRAM3_PAGE13_STOP
+#define PWR_SRAM3_FULL_STOP_RETENTION                 PWR_SRAM3_FULL_STOP
+
+#define PWR_SRAM4_FULL_STOP_RETENTION                 PWR_SRAM4_FULL_STOP
+
+#define PWR_SRAM5_PAGE1_STOP_RETENTION                PWR_SRAM5_PAGE1_STOP
+#define PWR_SRAM5_PAGE2_STOP_RETENTION                PWR_SRAM5_PAGE2_STOP
+#define PWR_SRAM5_PAGE3_STOP_RETENTION                PWR_SRAM5_PAGE3_STOP
+#define PWR_SRAM5_PAGE4_STOP_RETENTION                PWR_SRAM5_PAGE4_STOP
+#define PWR_SRAM5_PAGE5_STOP_RETENTION                PWR_SRAM5_PAGE5_STOP
+#define PWR_SRAM5_PAGE6_STOP_RETENTION                PWR_SRAM5_PAGE6_STOP
+#define PWR_SRAM5_PAGE7_STOP_RETENTION                PWR_SRAM5_PAGE7_STOP
+#define PWR_SRAM5_PAGE8_STOP_RETENTION                PWR_SRAM5_PAGE8_STOP
+#define PWR_SRAM5_PAGE9_STOP_RETENTION                PWR_SRAM5_PAGE9_STOP
+#define PWR_SRAM5_PAGE10_STOP_RETENTION               PWR_SRAM5_PAGE10_STOP
+#define PWR_SRAM5_PAGE11_STOP_RETENTION               PWR_SRAM5_PAGE11_STOP
+#define PWR_SRAM5_PAGE12_STOP_RETENTION               PWR_SRAM5_PAGE12_STOP
+#define PWR_SRAM5_PAGE13_STOP_RETENTION               PWR_SRAM5_PAGE13_STOP
+#define PWR_SRAM5_FULL_STOP_RETENTION                 PWR_SRAM5_FULL_STOP
+
+#define PWR_ICACHE_FULL_STOP_RETENTION                PWR_ICACHE_FULL_STOP
+#define PWR_DCACHE1_FULL_STOP_RETENTION               PWR_DCACHE1_FULL_STOP
+#define PWR_DCACHE2_FULL_STOP_RETENTION               PWR_DCACHE2_FULL_STOP
+#define PWR_DMA2DRAM_FULL_STOP_RETENTION              PWR_DMA2DRAM_FULL_STOP
+#define PWR_PERIPHRAM_FULL_STOP_RETENTION             PWR_PERIPHRAM_FULL_STOP
+#define PWR_PKA32RAM_FULL_STOP_RETENTION              PWR_PKA32RAM_FULL_STOP
+#define PWR_GRAPHICPRAM_FULL_STOP_RETENTION           PWR_GRAPHICPRAM_FULL_STOP
+#define PWR_DSIRAM_FULL_STOP_RETENTION                PWR_DSIRAM_FULL_STOP
+
+#define PWR_SRAM2_PAGE1_STANDBY_RETENTION             PWR_SRAM2_PAGE1_STANDBY
+#define PWR_SRAM2_PAGE2_STANDBY_RETENTION             PWR_SRAM2_PAGE2_STANDBY
+#define PWR_SRAM2_FULL_STANDBY_RETENTION              PWR_SRAM2_FULL_STANDBY
+
+#define PWR_SRAM1_FULL_RUN_RETENTION                  PWR_SRAM1_FULL_RUN
+#define PWR_SRAM2_FULL_RUN_RETENTION                  PWR_SRAM2_FULL_RUN
+#define PWR_SRAM3_FULL_RUN_RETENTION                  PWR_SRAM3_FULL_RUN
+#define PWR_SRAM4_FULL_RUN_RETENTION                  PWR_SRAM4_FULL_RUN
+#define PWR_SRAM5_FULL_RUN_RETENTION                  PWR_SRAM5_FULL_RUN
+
+#define PWR_ALL_RAM_RUN_RETENTION_MASK                PWR_ALL_RAM_RUN_MASK
+#endif
+
 /**
   * @}
  */
@@ -3404,7 +3532,21 @@
 #define __HAL_RCC_APB2_CLK_Disable_Clear      __HAL_RCC_APB2_CLK_ENABLE
 #define __HAL_RCC_APB3_CLK_Disable_Clear      __HAL_RCC_APB3_CLK_ENABLE
 #define IS_RCC_MSIPLLModeSelection            IS_RCC_MSIPLLMODE_SELECT
+#define RCC_PERIPHCLK_CLK48                   RCC_PERIPHCLK_ICLK
+#define RCC_CLK48CLKSOURCE_HSI48              RCC_ICLK_CLKSOURCE_HSI48
+#define RCC_CLK48CLKSOURCE_PLL2               RCC_ICLK_CLKSOURCE_PLL2
+#define RCC_CLK48CLKSOURCE_PLL1               RCC_ICLK_CLKSOURCE_PLL1
+#define RCC_CLK48CLKSOURCE_MSIK               RCC_ICLK_CLKSOURCE_MSIK
+#define __HAL_RCC_ADC1_CLK_ENABLE            __HAL_RCC_ADC12_CLK_ENABLE
+#define __HAL_RCC_ADC1_CLK_DISABLE          __HAL_RCC_ADC12_CLK_DISABLE
+#define __HAL_RCC_ADC1_IS_CLK_ENABLED       __HAL_RCC_ADC12_IS_CLK_ENABLED
+#define __HAL_RCC_ADC1_IS_CLK_DISABLED      __HAL_RCC_ADC12_IS_CLK_DISABLED
+#define __HAL_RCC_ADC1_FORCE_RESET          __HAL_RCC_ADC12_FORCE_RESET
+#define __HAL_RCC_ADC1_RELEASE_RESET        __HAL_RCC_ADC12_RELEASE_RESET
+#define __HAL_RCC_ADC1_CLK_SLEEP_ENABLE     __HAL_RCC_ADC12_CLK_SLEEP_ENABLE
+#define __HAL_RCC_ADC1_CLK_SLEEP_DISABLE    __HAL_RCC_ADC12_CLK_SLEEP_DISABLE
 #endif
+
 /**
   * @}
   */
@@ -3474,6 +3616,7 @@
 #define __RTC_WRITEPROTECTION_ENABLE  __HAL_RTC_WRITEPROTECTION_ENABLE
 #define __RTC_WRITEPROTECTION_DISABLE  __HAL_RTC_WRITEPROTECTION_DISABLE
 
+
 /**
   * @}
   */
@@ -3836,5 +3979,4 @@
 
 #endif /* STM32_HAL_LEGACY */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 
diff --git a/Inc/Legacy/stm32f4xx_hal_can_legacy.h b/Inc/Legacy/stm32f4xx_hal_can_legacy.h
index aacf0f0..e4d774b 100644
--- a/Inc/Legacy/stm32f4xx_hal_can_legacy.h
+++ b/Inc/Legacy/stm32f4xx_hal_can_legacy.h
@@ -6,29 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -780,6 +763,3 @@
 #endif
 
 #endif /* __STM32F4xx_HAL_CAN_LEGACY_H */
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/Legacy/stm32f4xx_hal_eth_legacy.h b/Inc/Legacy/stm32f4xx_hal_eth_legacy.h
new file mode 100644
index 0000000..ab84a46
--- /dev/null
+++ b/Inc/Legacy/stm32f4xx_hal_eth_legacy.h
@@ -0,0 +1,2209 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_eth_legacy.h
+  * @author  MCD Application Team
+  * @brief   Header file of ETH HAL module.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_HAL_ETH_LEGACY_H
+#define __STM32F4xx_HAL_ETH_LEGACY_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
+    defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx)
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal_def.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @addtogroup ETH
+  * @{
+  */
+
+/** @addtogroup ETH_Private_Macros
+  * @{
+  */
+#define IS_ETH_PHY_ADDRESS(ADDRESS) ((ADDRESS) <= 0x20U)
+#define IS_ETH_AUTONEGOTIATION(CMD) (((CMD) == ETH_AUTONEGOTIATION_ENABLE) || \
+                                     ((CMD) == ETH_AUTONEGOTIATION_DISABLE))
+#define IS_ETH_SPEED(SPEED) (((SPEED) == ETH_SPEED_10M) || \
+                             ((SPEED) == ETH_SPEED_100M))
+#define IS_ETH_DUPLEX_MODE(MODE)  (((MODE) == ETH_MODE_FULLDUPLEX) || \
+                                  ((MODE) == ETH_MODE_HALFDUPLEX))
+#define IS_ETH_RX_MODE(MODE)    (((MODE) == ETH_RXPOLLING_MODE) || \
+                                 ((MODE) == ETH_RXINTERRUPT_MODE))
+#define IS_ETH_CHECKSUM_MODE(MODE)    (((MODE) == ETH_CHECKSUM_BY_HARDWARE) || \
+                                      ((MODE) == ETH_CHECKSUM_BY_SOFTWARE))
+#define IS_ETH_MEDIA_INTERFACE(MODE)         (((MODE) == ETH_MEDIA_INTERFACE_MII) || \
+                                              ((MODE) == ETH_MEDIA_INTERFACE_RMII))
+#define IS_ETH_WATCHDOG(CMD) (((CMD) == ETH_WATCHDOG_ENABLE) || \
+                              ((CMD) == ETH_WATCHDOG_DISABLE))
+#define IS_ETH_JABBER(CMD) (((CMD) == ETH_JABBER_ENABLE) || \
+                            ((CMD) == ETH_JABBER_DISABLE))
+#define IS_ETH_INTER_FRAME_GAP(GAP) (((GAP) == ETH_INTERFRAMEGAP_96BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_88BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_80BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_72BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_64BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_56BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_48BIT) || \
+                                     ((GAP) == ETH_INTERFRAMEGAP_40BIT))
+#define IS_ETH_CARRIER_SENSE(CMD) (((CMD) == ETH_CARRIERSENCE_ENABLE) || \
+                                   ((CMD) == ETH_CARRIERSENCE_DISABLE))
+#define IS_ETH_RECEIVE_OWN(CMD) (((CMD) == ETH_RECEIVEOWN_ENABLE) || \
+                                 ((CMD) == ETH_RECEIVEOWN_DISABLE))
+#define IS_ETH_LOOPBACK_MODE(CMD) (((CMD) == ETH_LOOPBACKMODE_ENABLE) || \
+                                   ((CMD) == ETH_LOOPBACKMODE_DISABLE))
+#define IS_ETH_CHECKSUM_OFFLOAD(CMD) (((CMD) == ETH_CHECKSUMOFFLAOD_ENABLE) || \
+                                      ((CMD) == ETH_CHECKSUMOFFLAOD_DISABLE))
+#define IS_ETH_RETRY_TRANSMISSION(CMD) (((CMD) == ETH_RETRYTRANSMISSION_ENABLE) || \
+                                        ((CMD) == ETH_RETRYTRANSMISSION_DISABLE))
+#define IS_ETH_AUTOMATIC_PADCRC_STRIP(CMD) (((CMD) == ETH_AUTOMATICPADCRCSTRIP_ENABLE) || \
+                                            ((CMD) == ETH_AUTOMATICPADCRCSTRIP_DISABLE))
+#define IS_ETH_BACKOFF_LIMIT(LIMIT) (((LIMIT) == ETH_BACKOFFLIMIT_10) || \
+                                     ((LIMIT) == ETH_BACKOFFLIMIT_8) || \
+                                     ((LIMIT) == ETH_BACKOFFLIMIT_4) || \
+                                     ((LIMIT) == ETH_BACKOFFLIMIT_1))
+#define IS_ETH_DEFERRAL_CHECK(CMD) (((CMD) == ETH_DEFFERRALCHECK_ENABLE) || \
+                                    ((CMD) == ETH_DEFFERRALCHECK_DISABLE))
+#define IS_ETH_RECEIVE_ALL(CMD) (((CMD) == ETH_RECEIVEALL_ENABLE) || \
+                                 ((CMD) == ETH_RECEIVEAll_DISABLE))
+#define IS_ETH_SOURCE_ADDR_FILTER(CMD) (((CMD) == ETH_SOURCEADDRFILTER_NORMAL_ENABLE) || \
+                                        ((CMD) == ETH_SOURCEADDRFILTER_INVERSE_ENABLE) || \
+                                        ((CMD) == ETH_SOURCEADDRFILTER_DISABLE))
+#define IS_ETH_CONTROL_FRAMES(PASS) (((PASS) == ETH_PASSCONTROLFRAMES_BLOCKALL) || \
+                                     ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDALL) || \
+                                     ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER))
+#define IS_ETH_BROADCAST_FRAMES_RECEPTION(CMD) (((CMD) == ETH_BROADCASTFRAMESRECEPTION_ENABLE) || \
+                                                ((CMD) == ETH_BROADCASTFRAMESRECEPTION_DISABLE))
+#define IS_ETH_DESTINATION_ADDR_FILTER(FILTER) (((FILTER) == ETH_DESTINATIONADDRFILTER_NORMAL) || \
+                                                ((FILTER) == ETH_DESTINATIONADDRFILTER_INVERSE))
+#define IS_ETH_PROMISCUOUS_MODE(CMD) (((CMD) == ETH_PROMISCUOUS_MODE_ENABLE) || \
+                                      ((CMD) == ETH_PROMISCUOUS_MODE_DISABLE))
+#define IS_ETH_MULTICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE) || \
+                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_HASHTABLE) || \
+                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECT) || \
+                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_NONE))
+#define IS_ETH_UNICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE) || \
+                                              ((FILTER) == ETH_UNICASTFRAMESFILTER_HASHTABLE) || \
+                                              ((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECT))
+#define IS_ETH_PAUSE_TIME(TIME) ((TIME) <= 0xFFFFU)
+#define IS_ETH_ZEROQUANTA_PAUSE(CMD)   (((CMD) == ETH_ZEROQUANTAPAUSE_ENABLE) || \
+                                        ((CMD) == ETH_ZEROQUANTAPAUSE_DISABLE))
+#define IS_ETH_PAUSE_LOW_THRESHOLD(THRESHOLD) (((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS4) || \
+                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS28) || \
+                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS144) || \
+                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS256))
+#define IS_ETH_UNICAST_PAUSE_FRAME_DETECT(CMD) (((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_ENABLE) || \
+                                                ((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_DISABLE))
+#define IS_ETH_RECEIVE_FLOWCONTROL(CMD) (((CMD) == ETH_RECEIVEFLOWCONTROL_ENABLE) || \
+                                         ((CMD) == ETH_RECEIVEFLOWCONTROL_DISABLE))
+#define IS_ETH_TRANSMIT_FLOWCONTROL(CMD) (((CMD) == ETH_TRANSMITFLOWCONTROL_ENABLE) || \
+                                          ((CMD) == ETH_TRANSMITFLOWCONTROL_DISABLE))
+#define IS_ETH_VLAN_TAG_COMPARISON(COMPARISON) (((COMPARISON) == ETH_VLANTAGCOMPARISON_12BIT) || \
+                                                ((COMPARISON) == ETH_VLANTAGCOMPARISON_16BIT))
+#define IS_ETH_VLAN_TAG_IDENTIFIER(IDENTIFIER) ((IDENTIFIER) <= 0xFFFFU)
+#define IS_ETH_MAC_ADDRESS0123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS0) || \
+                                         ((ADDRESS) == ETH_MAC_ADDRESS1) || \
+                                         ((ADDRESS) == ETH_MAC_ADDRESS2) || \
+                                         ((ADDRESS) == ETH_MAC_ADDRESS3))
+#define IS_ETH_MAC_ADDRESS123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS1) || \
+                                        ((ADDRESS) == ETH_MAC_ADDRESS2) || \
+                                        ((ADDRESS) == ETH_MAC_ADDRESS3))
+#define IS_ETH_MAC_ADDRESS_FILTER(FILTER) (((FILTER) == ETH_MAC_ADDRESSFILTER_SA) || \
+                                           ((FILTER) == ETH_MAC_ADDRESSFILTER_DA))
+#define IS_ETH_MAC_ADDRESS_MASK(MASK) (((MASK) == ETH_MAC_ADDRESSMASK_BYTE6) || \
+                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE5) || \
+                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE4) || \
+                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE3) || \
+                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE2) || \
+                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE1))
+#define IS_ETH_DROP_TCPIP_CHECKSUM_FRAME(CMD) (((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE) || \
+                                               ((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE))
+#define IS_ETH_RECEIVE_STORE_FORWARD(CMD) (((CMD) == ETH_RECEIVESTOREFORWARD_ENABLE) || \
+                                           ((CMD) == ETH_RECEIVESTOREFORWARD_DISABLE))
+#define IS_ETH_FLUSH_RECEIVE_FRAME(CMD) (((CMD) == ETH_FLUSHRECEIVEDFRAME_ENABLE) || \
+                                         ((CMD) == ETH_FLUSHRECEIVEDFRAME_DISABLE))
+#define IS_ETH_TRANSMIT_STORE_FORWARD(CMD) (((CMD) == ETH_TRANSMITSTOREFORWARD_ENABLE) || \
+                                            ((CMD) == ETH_TRANSMITSTOREFORWARD_DISABLE))
+#define IS_ETH_TRANSMIT_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_64BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_128BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_192BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_256BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_40BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_32BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_24BYTES) || \
+                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_16BYTES))
+#define IS_ETH_FORWARD_ERROR_FRAMES(CMD) (((CMD) == ETH_FORWARDERRORFRAMES_ENABLE) || \
+                                          ((CMD) == ETH_FORWARDERRORFRAMES_DISABLE))
+#define IS_ETH_FORWARD_UNDERSIZED_GOOD_FRAMES(CMD) (((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE) || \
+                                                    ((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE))
+#define IS_ETH_RECEIVE_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES) || \
+                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES) || \
+                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES) || \
+                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES))
+#define IS_ETH_SECOND_FRAME_OPERATE(CMD) (((CMD) == ETH_SECONDFRAMEOPERARTE_ENABLE) || \
+                                          ((CMD) == ETH_SECONDFRAMEOPERARTE_DISABLE))
+#define IS_ETH_ADDRESS_ALIGNED_BEATS(CMD) (((CMD) == ETH_ADDRESSALIGNEDBEATS_ENABLE) || \
+                                           ((CMD) == ETH_ADDRESSALIGNEDBEATS_DISABLE))
+#define IS_ETH_FIXED_BURST(CMD) (((CMD) == ETH_FIXEDBURST_ENABLE) || \
+                                 ((CMD) == ETH_FIXEDBURST_DISABLE))
+#define IS_ETH_RXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_RXDMABURSTLENGTH_1BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_2BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_8BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_16BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_32BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_4BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_8BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_16BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_32BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_64BEAT) || \
+                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_128BEAT))
+#define IS_ETH_TXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_TXDMABURSTLENGTH_1BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_2BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_8BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_16BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_32BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_4BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_8BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_16BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_32BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_64BEAT) || \
+                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_128BEAT))
+#define IS_ETH_DMA_DESC_SKIP_LENGTH(LENGTH) ((LENGTH) <= 0x1FU)
+#define IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(RATIO) (((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1) || \
+                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1) || \
+                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1) || \
+                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1) || \
+                                                       ((RATIO) == ETH_DMAARBITRATION_RXPRIORTX))
+#define IS_ETH_DMATXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMATXDESC_OWN) || \
+                                         ((FLAG) == ETH_DMATXDESC_IC) || \
+                                         ((FLAG) == ETH_DMATXDESC_LS) || \
+                                         ((FLAG) == ETH_DMATXDESC_FS) || \
+                                         ((FLAG) == ETH_DMATXDESC_DC) || \
+                                         ((FLAG) == ETH_DMATXDESC_DP) || \
+                                         ((FLAG) == ETH_DMATXDESC_TTSE) || \
+                                         ((FLAG) == ETH_DMATXDESC_TER) || \
+                                         ((FLAG) == ETH_DMATXDESC_TCH) || \
+                                         ((FLAG) == ETH_DMATXDESC_TTSS) || \
+                                         ((FLAG) == ETH_DMATXDESC_IHE) || \
+                                         ((FLAG) == ETH_DMATXDESC_ES) || \
+                                         ((FLAG) == ETH_DMATXDESC_JT) || \
+                                         ((FLAG) == ETH_DMATXDESC_FF) || \
+                                         ((FLAG) == ETH_DMATXDESC_PCE) || \
+                                         ((FLAG) == ETH_DMATXDESC_LCA) || \
+                                         ((FLAG) == ETH_DMATXDESC_NC) || \
+                                         ((FLAG) == ETH_DMATXDESC_LCO) || \
+                                         ((FLAG) == ETH_DMATXDESC_EC) || \
+                                         ((FLAG) == ETH_DMATXDESC_VF) || \
+                                         ((FLAG) == ETH_DMATXDESC_CC) || \
+                                         ((FLAG) == ETH_DMATXDESC_ED) || \
+                                         ((FLAG) == ETH_DMATXDESC_UF) || \
+                                         ((FLAG) == ETH_DMATXDESC_DB))
+#define IS_ETH_DMA_TXDESC_SEGMENT(SEGMENT) (((SEGMENT) == ETH_DMATXDESC_LASTSEGMENTS) || \
+                                            ((SEGMENT) == ETH_DMATXDESC_FIRSTSEGMENT))
+#define IS_ETH_DMA_TXDESC_CHECKSUM(CHECKSUM) (((CHECKSUM) == ETH_DMATXDESC_CHECKSUMBYPASS) || \
+                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMIPV4HEADER) || \
+                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT) || \
+                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL))
+#define IS_ETH_DMATXDESC_BUFFER_SIZE(SIZE) ((SIZE) <= 0x1FFFU)
+#define IS_ETH_DMARXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMARXDESC_OWN) || \
+                                         ((FLAG) == ETH_DMARXDESC_AFM) || \
+                                         ((FLAG) == ETH_DMARXDESC_ES) || \
+                                         ((FLAG) == ETH_DMARXDESC_DE) || \
+                                         ((FLAG) == ETH_DMARXDESC_SAF) || \
+                                         ((FLAG) == ETH_DMARXDESC_LE) || \
+                                         ((FLAG) == ETH_DMARXDESC_OE) || \
+                                         ((FLAG) == ETH_DMARXDESC_VLAN) || \
+                                         ((FLAG) == ETH_DMARXDESC_FS) || \
+                                         ((FLAG) == ETH_DMARXDESC_LS) || \
+                                         ((FLAG) == ETH_DMARXDESC_IPV4HCE) || \
+                                         ((FLAG) == ETH_DMARXDESC_LC) || \
+                                         ((FLAG) == ETH_DMARXDESC_FT) || \
+                                         ((FLAG) == ETH_DMARXDESC_RWT) || \
+                                         ((FLAG) == ETH_DMARXDESC_RE) || \
+                                         ((FLAG) == ETH_DMARXDESC_DBE) || \
+                                         ((FLAG) == ETH_DMARXDESC_CE) || \
+                                         ((FLAG) == ETH_DMARXDESC_MAMPCE))
+#define IS_ETH_DMA_RXDESC_BUFFER(BUFFER) (((BUFFER) == ETH_DMARXDESC_BUFFER1) || \
+                                          ((BUFFER) == ETH_DMARXDESC_BUFFER2))
+#define IS_ETH_PMT_GET_FLAG(FLAG) (((FLAG) == ETH_PMT_FLAG_WUFR) || \
+                                   ((FLAG) == ETH_PMT_FLAG_MPR))
+#define IS_ETH_DMA_FLAG(FLAG) ((((FLAG) & 0xC7FE1800U) == 0x00U) && ((FLAG) != 0x00U))
+#define IS_ETH_DMA_GET_FLAG(FLAG) (((FLAG) == ETH_DMA_FLAG_TST) || ((FLAG) == ETH_DMA_FLAG_PMT) || \
+                                   ((FLAG) == ETH_DMA_FLAG_MMC) || ((FLAG) == ETH_DMA_FLAG_DATATRANSFERERROR) || \
+                                   ((FLAG) == ETH_DMA_FLAG_READWRITEERROR) || ((FLAG) == ETH_DMA_FLAG_ACCESSERROR) || \
+                                   ((FLAG) == ETH_DMA_FLAG_NIS) || ((FLAG) == ETH_DMA_FLAG_AIS) || \
+                                   ((FLAG) == ETH_DMA_FLAG_ER) || ((FLAG) == ETH_DMA_FLAG_FBE) || \
+                                   ((FLAG) == ETH_DMA_FLAG_ET) || ((FLAG) == ETH_DMA_FLAG_RWT) || \
+                                   ((FLAG) == ETH_DMA_FLAG_RPS) || ((FLAG) == ETH_DMA_FLAG_RBU) || \
+                                   ((FLAG) == ETH_DMA_FLAG_R) || ((FLAG) == ETH_DMA_FLAG_TU) || \
+                                   ((FLAG) == ETH_DMA_FLAG_RO) || ((FLAG) == ETH_DMA_FLAG_TJT) || \
+                                   ((FLAG) == ETH_DMA_FLAG_TBU) || ((FLAG) == ETH_DMA_FLAG_TPS) || \
+                                   ((FLAG) == ETH_DMA_FLAG_T))
+#define IS_ETH_MAC_IT(IT) ((((IT) & 0xFFFFFDF1U) == 0x00U) && ((IT) != 0x00U))
+#define IS_ETH_MAC_GET_IT(IT) (((IT) == ETH_MAC_IT_TST) || ((IT) == ETH_MAC_IT_MMCT) || \
+                               ((IT) == ETH_MAC_IT_MMCR) || ((IT) == ETH_MAC_IT_MMC) || \
+                               ((IT) == ETH_MAC_IT_PMT))
+#define IS_ETH_MAC_GET_FLAG(FLAG) (((FLAG) == ETH_MAC_FLAG_TST) || ((FLAG) == ETH_MAC_FLAG_MMCT) || \
+                                   ((FLAG) == ETH_MAC_FLAG_MMCR) || ((FLAG) == ETH_MAC_FLAG_MMC) || \
+                                   ((FLAG) == ETH_MAC_FLAG_PMT))
+#define IS_ETH_DMA_IT(IT) ((((IT) & 0xC7FE1800U) == 0x00U) && ((IT) != 0x00U))
+#define IS_ETH_DMA_GET_IT(IT) (((IT) == ETH_DMA_IT_TST) || ((IT) == ETH_DMA_IT_PMT) || \
+                               ((IT) == ETH_DMA_IT_MMC) || ((IT) == ETH_DMA_IT_NIS) || \
+                               ((IT) == ETH_DMA_IT_AIS) || ((IT) == ETH_DMA_IT_ER) || \
+                               ((IT) == ETH_DMA_IT_FBE) || ((IT) == ETH_DMA_IT_ET) || \
+                               ((IT) == ETH_DMA_IT_RWT) || ((IT) == ETH_DMA_IT_RPS) || \
+                               ((IT) == ETH_DMA_IT_RBU) || ((IT) == ETH_DMA_IT_R) || \
+                               ((IT) == ETH_DMA_IT_TU) || ((IT) == ETH_DMA_IT_RO) || \
+                               ((IT) == ETH_DMA_IT_TJT) || ((IT) == ETH_DMA_IT_TBU) || \
+                               ((IT) == ETH_DMA_IT_TPS) || ((IT) == ETH_DMA_IT_T))
+#define IS_ETH_DMA_GET_OVERFLOW(OVERFLOW) (((OVERFLOW) == ETH_DMA_OVERFLOW_RXFIFOCOUNTER) || \
+                                           ((OVERFLOW) == ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER))
+#define IS_ETH_MMC_IT(IT) (((((IT) & 0xFFDF3FFFU) == 0x00U) || (((IT) & 0xEFFDFF9FU) == 0x00U)) && \
+                           ((IT) != 0x00U))
+#define IS_ETH_MMC_GET_IT(IT) (((IT) == ETH_MMC_IT_TGF) || ((IT) == ETH_MMC_IT_TGFMSC) || \
+                               ((IT) == ETH_MMC_IT_TGFSC) || ((IT) == ETH_MMC_IT_RGUF) || \
+                               ((IT) == ETH_MMC_IT_RFAE) || ((IT) == ETH_MMC_IT_RFCE))
+#define IS_ETH_ENHANCED_DESCRIPTOR_FORMAT(CMD) (((CMD) == ETH_DMAENHANCEDDESCRIPTOR_ENABLE) || \
+                                                ((CMD) == ETH_DMAENHANCEDDESCRIPTOR_DISABLE))
+
+/**
+  * @}
+  */
+
+/** @addtogroup ETH_Private_Defines
+  * @{
+  */
+/* Delay to wait when writing to some Ethernet registers */
+#define ETH_REG_WRITE_DELAY     0x00000001U
+
+/* ETHERNET Errors */
+#define  ETH_SUCCESS            0U
+#define  ETH_ERROR              1U
+
+/* ETHERNET DMA Tx descriptors Collision Count Shift */
+#define  ETH_DMATXDESC_COLLISION_COUNTSHIFT        3U
+
+/* ETHERNET DMA Tx descriptors Buffer2 Size Shift */
+#define  ETH_DMATXDESC_BUFFER2_SIZESHIFT           16U
+
+/* ETHERNET DMA Rx descriptors Frame Length Shift */
+#define  ETH_DMARXDESC_FRAME_LENGTHSHIFT           16U
+
+/* ETHERNET DMA Rx descriptors Buffer2 Size Shift */
+#define  ETH_DMARXDESC_BUFFER2_SIZESHIFT           16U
+
+/* ETHERNET DMA Rx descriptors Frame length Shift */
+#define  ETH_DMARXDESC_FRAMELENGTHSHIFT            16U
+
+/* ETHERNET MAC address offsets */
+#define ETH_MAC_ADDR_HBASE    (uint32_t)(ETH_MAC_BASE + 0x40U)  /* ETHERNET MAC address high offset */
+#define ETH_MAC_ADDR_LBASE    (uint32_t)(ETH_MAC_BASE + 0x44U)  /* ETHERNET MAC address low offset */
+
+/* ETHERNET MACMIIAR register Mask */
+#define ETH_MACMIIAR_CR_MASK    0xFFFFFFE3U
+
+/* ETHERNET MACCR register Mask */
+#define ETH_MACCR_CLEAR_MASK    0xFF20810FU
+
+/* ETHERNET MACFCR register Mask */
+#define ETH_MACFCR_CLEAR_MASK   0x0000FF41U
+
+/* ETHERNET DMAOMR register Mask */
+#define ETH_DMAOMR_CLEAR_MASK   0xF8DE3F23U
+
+/* ETHERNET Remote Wake-up frame register length */
+#define ETH_WAKEUP_REGISTER_LENGTH      8U
+
+/* ETHERNET Missed frames counter Shift */
+#define  ETH_DMA_RX_OVERFLOW_MISSEDFRAMES_COUNTERSHIFT     17U
+ /**
+  * @}
+  */
+
+/* Exported types ------------------------------------------------------------*/
+/** @defgroup ETH_Exported_Types ETH Exported Types
+  * @{
+  */
+
+/**
+  * @brief  HAL State structures definition
+  */
+typedef enum
+{
+  HAL_ETH_STATE_RESET             = 0x00U,    /*!< Peripheral not yet Initialized or disabled         */
+  HAL_ETH_STATE_READY             = 0x01U,    /*!< Peripheral Initialized and ready for use           */
+  HAL_ETH_STATE_BUSY              = 0x02U,    /*!< an internal process is ongoing                     */
+  HAL_ETH_STATE_BUSY_TX           = 0x12U,    /*!< Data Transmission process is ongoing               */
+  HAL_ETH_STATE_BUSY_RX           = 0x22U,    /*!< Data Reception process is ongoing                  */
+  HAL_ETH_STATE_BUSY_TX_RX        = 0x32U,    /*!< Data Transmission and Reception process is ongoing */
+  HAL_ETH_STATE_BUSY_WR           = 0x42U,    /*!< Write process is ongoing                           */
+  HAL_ETH_STATE_BUSY_RD           = 0x82U,    /*!< Read process is ongoing                            */
+  HAL_ETH_STATE_TIMEOUT           = 0x03U,    /*!< Timeout state                                      */
+  HAL_ETH_STATE_ERROR             = 0x04U     /*!< Reception process is ongoing                       */
+}HAL_ETH_StateTypeDef;
+
+/**
+  * @brief  ETH Init Structure definition
+  */
+
+typedef struct
+{
+  uint32_t             AutoNegotiation;           /*!< Selects or not the AutoNegotiation mode for the external PHY
+                                                           The AutoNegotiation allows an automatic setting of the Speed (10/100Mbps)
+                                                           and the mode (half/full-duplex).
+                                                           This parameter can be a value of @ref ETH_AutoNegotiation */
+
+  uint32_t             Speed;                     /*!< Sets the Ethernet speed: 10/100 Mbps.
+                                                           This parameter can be a value of @ref ETH_Speed */
+
+  uint32_t             DuplexMode;                /*!< Selects the MAC duplex mode: Half-Duplex or Full-Duplex mode
+                                                           This parameter can be a value of @ref ETH_Duplex_Mode */
+
+  uint16_t             PhyAddress;                /*!< Ethernet PHY address.
+                                                           This parameter must be a number between Min_Data = 0 and Max_Data = 32 */
+
+  uint8_t             *MACAddr;                   /*!< MAC Address of used Hardware: must be pointer on an array of 6 bytes */
+
+  uint32_t             RxMode;                    /*!< Selects the Ethernet Rx mode: Polling mode, Interrupt mode.
+                                                           This parameter can be a value of @ref ETH_Rx_Mode */
+
+  uint32_t             ChecksumMode;              /*!< Selects if the checksum is check by hardware or by software.
+                                                         This parameter can be a value of @ref ETH_Checksum_Mode */
+
+  uint32_t             MediaInterface;            /*!< Selects the media-independent interface or the reduced media-independent interface.
+                                                         This parameter can be a value of @ref ETH_Media_Interface */
+
+} ETH_InitTypeDef;
+
+
+ /**
+  * @brief  ETH MAC Configuration Structure definition
+  */
+
+typedef struct
+{
+  uint32_t             Watchdog;                  /*!< Selects or not the Watchdog timer
+                                                           When enabled, the MAC allows no more then 2048 bytes to be received.
+                                                           When disabled, the MAC can receive up to 16384 bytes.
+                                                           This parameter can be a value of @ref ETH_Watchdog */
+
+  uint32_t             Jabber;                    /*!< Selects or not Jabber timer
+                                                           When enabled, the MAC allows no more then 2048 bytes to be sent.
+                                                           When disabled, the MAC can send up to 16384 bytes.
+                                                           This parameter can be a value of @ref ETH_Jabber */
+
+  uint32_t             InterFrameGap;             /*!< Selects the minimum IFG between frames during transmission.
+                                                           This parameter can be a value of @ref ETH_Inter_Frame_Gap */
+
+  uint32_t             CarrierSense;              /*!< Selects or not the Carrier Sense.
+                                                           This parameter can be a value of @ref ETH_Carrier_Sense */
+
+  uint32_t             ReceiveOwn;                /*!< Selects or not the ReceiveOwn,
+                                                           ReceiveOwn allows the reception of frames when the TX_EN signal is asserted
+                                                           in Half-Duplex mode.
+                                                           This parameter can be a value of @ref ETH_Receive_Own */
+
+  uint32_t             LoopbackMode;              /*!< Selects or not the internal MAC MII Loopback mode.
+                                                           This parameter can be a value of @ref ETH_Loop_Back_Mode */
+
+  uint32_t             ChecksumOffload;           /*!< Selects or not the IPv4 checksum checking for received frame payloads' TCP/UDP/ICMP headers.
+                                                           This parameter can be a value of @ref ETH_Checksum_Offload */
+
+  uint32_t             RetryTransmission;         /*!< Selects or not the MAC attempt retries transmission, based on the settings of BL,
+                                                           when a collision occurs (Half-Duplex mode).
+                                                           This parameter can be a value of @ref ETH_Retry_Transmission */
+
+  uint32_t             AutomaticPadCRCStrip;      /*!< Selects or not the Automatic MAC Pad/CRC Stripping.
+                                                           This parameter can be a value of @ref ETH_Automatic_Pad_CRC_Strip */
+
+  uint32_t             BackOffLimit;              /*!< Selects the BackOff limit value.
+                                                           This parameter can be a value of @ref ETH_Back_Off_Limit */
+
+  uint32_t             DeferralCheck;             /*!< Selects or not the deferral check function (Half-Duplex mode).
+                                                           This parameter can be a value of @ref ETH_Deferral_Check */
+
+  uint32_t             ReceiveAll;                /*!< Selects or not all frames reception by the MAC (No filtering).
+                                                           This parameter can be a value of @ref ETH_Receive_All */
+
+  uint32_t             SourceAddrFilter;          /*!< Selects the Source Address Filter mode.
+                                                           This parameter can be a value of @ref ETH_Source_Addr_Filter */
+
+  uint32_t             PassControlFrames;         /*!< Sets the forwarding mode of the control frames (including unicast and multicast PAUSE frames)
+                                                           This parameter can be a value of @ref ETH_Pass_Control_Frames */
+
+  uint32_t             BroadcastFramesReception;  /*!< Selects or not the reception of Broadcast Frames.
+                                                           This parameter can be a value of @ref ETH_Broadcast_Frames_Reception */
+
+  uint32_t             DestinationAddrFilter;     /*!< Sets the destination filter mode for both unicast and multicast frames.
+                                                           This parameter can be a value of @ref ETH_Destination_Addr_Filter */
+
+  uint32_t             PromiscuousMode;           /*!< Selects or not the Promiscuous Mode
+                                                           This parameter can be a value of @ref ETH_Promiscuous_Mode */
+
+  uint32_t             MulticastFramesFilter;     /*!< Selects the Multicast Frames filter mode: None/HashTableFilter/PerfectFilter/PerfectHashTableFilter.
+                                                           This parameter can be a value of @ref ETH_Multicast_Frames_Filter */
+
+  uint32_t             UnicastFramesFilter;       /*!< Selects the Unicast Frames filter mode: HashTableFilter/PerfectFilter/PerfectHashTableFilter.
+                                                           This parameter can be a value of @ref ETH_Unicast_Frames_Filter */
+
+  uint32_t             HashTableHigh;             /*!< This field holds the higher 32 bits of Hash table.
+                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFFU */
+
+  uint32_t             HashTableLow;              /*!< This field holds the lower 32 bits of Hash table.
+                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFFU  */
+
+  uint32_t             PauseTime;                 /*!< This field holds the value to be used in the Pause Time field in the transmit control frame.
+                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFU */
+
+  uint32_t             ZeroQuantaPause;           /*!< Selects or not the automatic generation of Zero-Quanta Pause Control frames.
+                                                           This parameter can be a value of @ref ETH_Zero_Quanta_Pause */
+
+  uint32_t             PauseLowThreshold;         /*!< This field configures the threshold of the PAUSE to be checked for
+                                                           automatic retransmission of PAUSE Frame.
+                                                           This parameter can be a value of @ref ETH_Pause_Low_Threshold */
+
+  uint32_t             UnicastPauseFrameDetect;   /*!< Selects or not the MAC detection of the Pause frames (with MAC Address0
+                                                           unicast address and unique multicast address).
+                                                           This parameter can be a value of @ref ETH_Unicast_Pause_Frame_Detect */
+
+  uint32_t             ReceiveFlowControl;        /*!< Enables or disables the MAC to decode the received Pause frame and
+                                                           disable its transmitter for a specified time (Pause Time)
+                                                           This parameter can be a value of @ref ETH_Receive_Flow_Control */
+
+  uint32_t             TransmitFlowControl;       /*!< Enables or disables the MAC to transmit Pause frames (Full-Duplex mode)
+                                                           or the MAC back-pressure operation (Half-Duplex mode)
+                                                           This parameter can be a value of @ref ETH_Transmit_Flow_Control */
+
+  uint32_t             VLANTagComparison;         /*!< Selects the 12-bit VLAN identifier or the complete 16-bit VLAN tag for
+                                                           comparison and filtering.
+                                                           This parameter can be a value of @ref ETH_VLAN_Tag_Comparison */
+
+  uint32_t             VLANTagIdentifier;         /*!< Holds the VLAN tag identifier for receive frames */
+
+} ETH_MACInitTypeDef;
+
+/**
+  * @brief  ETH DMA Configuration Structure definition
+  */
+
+typedef struct
+{
+ uint32_t              DropTCPIPChecksumErrorFrame; /*!< Selects or not the Dropping of TCP/IP Checksum Error Frames.
+                                                             This parameter can be a value of @ref ETH_Drop_TCP_IP_Checksum_Error_Frame */
+
+  uint32_t             ReceiveStoreForward;         /*!< Enables or disables the Receive store and forward mode.
+                                                             This parameter can be a value of @ref ETH_Receive_Store_Forward */
+
+  uint32_t             FlushReceivedFrame;          /*!< Enables or disables the flushing of received frames.
+                                                             This parameter can be a value of @ref ETH_Flush_Received_Frame */
+
+  uint32_t             TransmitStoreForward;        /*!< Enables or disables Transmit store and forward mode.
+                                                             This parameter can be a value of @ref ETH_Transmit_Store_Forward */
+
+  uint32_t             TransmitThresholdControl;    /*!< Selects or not the Transmit Threshold Control.
+                                                             This parameter can be a value of @ref ETH_Transmit_Threshold_Control */
+
+  uint32_t             ForwardErrorFrames;          /*!< Selects or not the forward to the DMA of erroneous frames.
+                                                             This parameter can be a value of @ref ETH_Forward_Error_Frames */
+
+  uint32_t             ForwardUndersizedGoodFrames; /*!< Enables or disables the Rx FIFO to forward Undersized frames (frames with no Error
+                                                             and length less than 64 bytes) including pad-bytes and CRC)
+                                                             This parameter can be a value of @ref ETH_Forward_Undersized_Good_Frames */
+
+  uint32_t             ReceiveThresholdControl;     /*!< Selects the threshold level of the Receive FIFO.
+                                                             This parameter can be a value of @ref ETH_Receive_Threshold_Control */
+
+  uint32_t             SecondFrameOperate;          /*!< Selects or not the Operate on second frame mode, which allows the DMA to process a second
+                                                             frame of Transmit data even before obtaining the status for the first frame.
+                                                             This parameter can be a value of @ref ETH_Second_Frame_Operate */
+
+  uint32_t             AddressAlignedBeats;         /*!< Enables or disables the Address Aligned Beats.
+                                                             This parameter can be a value of @ref ETH_Address_Aligned_Beats */
+
+  uint32_t             FixedBurst;                  /*!< Enables or disables the AHB Master interface fixed burst transfers.
+                                                             This parameter can be a value of @ref ETH_Fixed_Burst */
+
+  uint32_t             RxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction.
+                                                             This parameter can be a value of @ref ETH_Rx_DMA_Burst_Length */
+
+  uint32_t             TxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction.
+                                                             This parameter can be a value of @ref ETH_Tx_DMA_Burst_Length */
+
+  uint32_t             EnhancedDescriptorFormat;    /*!< Enables the enhanced descriptor format.
+                                                             This parameter can be a value of @ref ETH_DMA_Enhanced_descriptor_format */
+
+  uint32_t             DescriptorSkipLength;        /*!< Specifies the number of word to skip between two unchained descriptors (Ring mode)
+                                                             This parameter must be a number between Min_Data = 0 and Max_Data = 32 */
+
+  uint32_t             DMAArbitration;              /*!< Selects the DMA Tx/Rx arbitration.
+                                                             This parameter can be a value of @ref ETH_DMA_Arbitration */
+} ETH_DMAInitTypeDef;
+
+
+/**
+  * @brief  ETH DMA Descriptors data structure definition
+  */
+
+typedef struct
+{
+  __IO uint32_t   Status;           /*!< Status */
+
+  uint32_t   ControlBufferSize;     /*!< Control and Buffer1, Buffer2 lengths */
+
+  uint32_t   Buffer1Addr;           /*!< Buffer1 address pointer */
+
+  uint32_t   Buffer2NextDescAddr;   /*!< Buffer2 or next descriptor address pointer */
+
+  /*!< Enhanced ETHERNET DMA PTP Descriptors */
+  uint32_t   ExtendedStatus;        /*!< Extended status for PTP receive descriptor */
+
+  uint32_t   Reserved1;             /*!< Reserved */
+
+  uint32_t   TimeStampLow;          /*!< Time Stamp Low value for transmit and receive */
+
+  uint32_t   TimeStampHigh;         /*!< Time Stamp High value for transmit and receive */
+
+} ETH_DMADescTypeDef;
+
+/**
+  * @brief  Received Frame Informations structure definition
+  */
+typedef struct
+{
+  ETH_DMADescTypeDef *FSRxDesc;          /*!< First Segment Rx Desc */
+
+  ETH_DMADescTypeDef *LSRxDesc;          /*!< Last Segment Rx Desc */
+
+  uint32_t  SegCount;                    /*!< Segment count */
+
+  uint32_t length;                       /*!< Frame length */
+
+  uint32_t buffer;                       /*!< Frame buffer */
+
+} ETH_DMARxFrameInfos;
+
+/**
+  * @brief  ETH Handle Structure definition
+  */
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+typedef struct __ETH_HandleTypeDef
+#else
+typedef struct
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+{
+  ETH_TypeDef                *Instance;     /*!< Register base address       */
+
+  ETH_InitTypeDef            Init;          /*!< Ethernet Init Configuration */
+
+  uint32_t                   LinkStatus;    /*!< Ethernet link status        */
+
+  ETH_DMADescTypeDef         *RxDesc;       /*!< Rx descriptor to Get        */
+
+  ETH_DMADescTypeDef         *TxDesc;       /*!< Tx descriptor to Set        */
+
+  ETH_DMARxFrameInfos        RxFrameInfos;  /*!< last Rx frame infos         */
+
+  __IO HAL_ETH_StateTypeDef  State;         /*!< ETH communication state     */
+
+  HAL_LockTypeDef            Lock;          /*!< ETH Lock                    */
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+
+  void    (* TxCpltCallback)     ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Tx Complete Callback   */
+  void    (* RxCpltCallback)     ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Rx  Complete Callback   */
+  void    (* DMAErrorCallback)   ( struct __ETH_HandleTypeDef * heth);  /*!< DMA Error Callback      */
+  void    (* MspInitCallback)    ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Msp Init callback       */
+  void    (* MspDeInitCallback)  ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Msp DeInit callback     */
+
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+} ETH_HandleTypeDef;
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+/**
+  * @brief  HAL ETH Callback ID enumeration definition
+  */
+typedef enum
+{
+  HAL_ETH_MSPINIT_CB_ID            = 0x00U,    /*!< ETH MspInit callback ID            */
+  HAL_ETH_MSPDEINIT_CB_ID          = 0x01U,    /*!< ETH MspDeInit callback ID          */
+  HAL_ETH_TX_COMPLETE_CB_ID        = 0x02U,    /*!< ETH Tx Complete Callback ID        */
+  HAL_ETH_RX_COMPLETE_CB_ID        = 0x03U,    /*!< ETH Rx Complete Callback ID        */
+  HAL_ETH_DMA_ERROR_CB_ID          = 0x04U,    /*!< ETH DMA Error Callback ID          */
+
+}HAL_ETH_CallbackIDTypeDef;
+
+/**
+  * @brief  HAL ETH Callback pointer definition
+  */
+typedef  void (*pETH_CallbackTypeDef)(ETH_HandleTypeDef * heth); /*!< pointer to an ETH callback function */
+
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+ /**
+  * @}
+  */
+
+/* Exported constants --------------------------------------------------------*/
+/** @defgroup ETH_Exported_Constants ETH Exported Constants
+  * @{
+  */
+
+/** @defgroup ETH_Buffers_setting ETH Buffers setting
+  * @{
+  */
+#define ETH_MAX_PACKET_SIZE       1524U    /*!< ETH_HEADER + ETH_EXTRA + ETH_VLAN_TAG + ETH_MAX_ETH_PAYLOAD + ETH_CRC */
+#define ETH_HEADER                14U      /*!< 6 byte Dest addr, 6 byte Src addr, 2 byte length/type */
+#define ETH_CRC                   4U       /*!< Ethernet CRC */
+#define ETH_EXTRA                 2U       /*!< Extra bytes in some cases */
+#define ETH_VLAN_TAG              4U       /*!< optional 802.1q VLAN Tag */
+#define ETH_MIN_ETH_PAYLOAD       46U      /*!< Minimum Ethernet payload size */
+#define ETH_MAX_ETH_PAYLOAD       1500U    /*!< Maximum Ethernet payload size */
+#define ETH_JUMBO_FRAME_PAYLOAD   9000U    /*!< Jumbo frame payload size */
+
+ /* Ethernet driver receive buffers are organized in a chained linked-list, when
+    an ethernet packet is received, the Rx-DMA will transfer the packet from RxFIFO
+    to the driver receive buffers memory.
+
+    Depending on the size of the received ethernet packet and the size of
+    each ethernet driver receive buffer, the received packet can take one or more
+    ethernet driver receive buffer.
+
+    In below are defined the size of one ethernet driver receive buffer ETH_RX_BUF_SIZE
+    and the total count of the driver receive buffers ETH_RXBUFNB.
+
+    The configured value for ETH_RX_BUF_SIZE and ETH_RXBUFNB are only provided as
+    example, they can be reconfigured in the application layer to fit the application
+    needs */
+
+/* Here we configure each Ethernet driver receive buffer to fit the Max size Ethernet
+   packet */
+#ifndef ETH_RX_BUF_SIZE
+ #define ETH_RX_BUF_SIZE         ETH_MAX_PACKET_SIZE
+#endif
+
+/* 5 Ethernet driver receive buffers are used (in a chained linked list)*/
+#ifndef ETH_RXBUFNB
+ #define ETH_RXBUFNB             5U     /*  5 Rx buffers of size ETH_RX_BUF_SIZE */
+#endif
+
+
+ /* Ethernet driver transmit buffers are organized in a chained linked-list, when
+    an ethernet packet is transmitted, Tx-DMA will transfer the packet from the
+    driver transmit buffers memory to the TxFIFO.
+
+    Depending on the size of the Ethernet packet to be transmitted and the size of
+    each ethernet driver transmit buffer, the packet to be transmitted can take
+    one or more ethernet driver transmit buffer.
+
+    In below are defined the size of one ethernet driver transmit buffer ETH_TX_BUF_SIZE
+    and the total count of the driver transmit buffers ETH_TXBUFNB.
+
+    The configured value for ETH_TX_BUF_SIZE and ETH_TXBUFNB are only provided as
+    example, they can be reconfigured in the application layer to fit the application
+    needs */
+
+/* Here we configure each Ethernet driver transmit buffer to fit the Max size Ethernet
+   packet */
+#ifndef ETH_TX_BUF_SIZE
+ #define ETH_TX_BUF_SIZE         ETH_MAX_PACKET_SIZE
+#endif
+
+/* 5 ethernet driver transmit buffers are used (in a chained linked list)*/
+#ifndef ETH_TXBUFNB
+ #define ETH_TXBUFNB             5U      /* 5  Tx buffers of size ETH_TX_BUF_SIZE */
+#endif
+
+ /**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_TX_Descriptor ETH DMA TX Descriptor
+  * @{
+  */
+
+/*
+   DMA Tx Descriptor
+  -----------------------------------------------------------------------------------------------
+  TDES0 | OWN(31) | CTRL[30:26] | Reserved[25:24] | CTRL[23:20] | Reserved[19:17] | Status[16:0] |
+  -----------------------------------------------------------------------------------------------
+  TDES1 | Reserved[31:29] | Buffer2 ByteCount[28:16] | Reserved[15:13] | Buffer1 ByteCount[12:0] |
+  -----------------------------------------------------------------------------------------------
+  TDES2 |                         Buffer1 Address [31:0]                                         |
+  -----------------------------------------------------------------------------------------------
+  TDES3 |                   Buffer2 Address [31:0] / Next Descriptor Address [31:0]              |
+  -----------------------------------------------------------------------------------------------
+*/
+
+/**
+  * @brief  Bit definition of TDES0 register: DMA Tx descriptor status register
+  */
+#define ETH_DMATXDESC_OWN                     0x80000000U  /*!< OWN bit: descriptor is owned by DMA engine */
+#define ETH_DMATXDESC_IC                      0x40000000U  /*!< Interrupt on Completion */
+#define ETH_DMATXDESC_LS                      0x20000000U  /*!< Last Segment */
+#define ETH_DMATXDESC_FS                      0x10000000U  /*!< First Segment */
+#define ETH_DMATXDESC_DC                      0x08000000U  /*!< Disable CRC */
+#define ETH_DMATXDESC_DP                      0x04000000U  /*!< Disable Padding */
+#define ETH_DMATXDESC_TTSE                    0x02000000U  /*!< Transmit Time Stamp Enable */
+#define ETH_DMATXDESC_CIC                     0x00C00000U  /*!< Checksum Insertion Control: 4 cases */
+#define ETH_DMATXDESC_CIC_BYPASS              0x00000000U  /*!< Do Nothing: Checksum Engine is bypassed */
+#define ETH_DMATXDESC_CIC_IPV4HEADER          0x00400000U  /*!< IPV4 header Checksum Insertion */
+#define ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT  0x00800000U  /*!< TCP/UDP/ICMP Checksum Insertion calculated over segment only */
+#define ETH_DMATXDESC_CIC_TCPUDPICMP_FULL     0x00C00000U  /*!< TCP/UDP/ICMP Checksum Insertion fully calculated */
+#define ETH_DMATXDESC_TER                     0x00200000U  /*!< Transmit End of Ring */
+#define ETH_DMATXDESC_TCH                     0x00100000U  /*!< Second Address Chained */
+#define ETH_DMATXDESC_TTSS                    0x00020000U  /*!< Tx Time Stamp Status */
+#define ETH_DMATXDESC_IHE                     0x00010000U  /*!< IP Header Error */
+#define ETH_DMATXDESC_ES                      0x00008000U  /*!< Error summary: OR of the following bits: UE || ED || EC || LCO || NC || LCA || FF || JT */
+#define ETH_DMATXDESC_JT                      0x00004000U  /*!< Jabber Timeout */
+#define ETH_DMATXDESC_FF                      0x00002000U  /*!< Frame Flushed: DMA/MTL flushed the frame due to SW flush */
+#define ETH_DMATXDESC_PCE                     0x00001000U  /*!< Payload Checksum Error */
+#define ETH_DMATXDESC_LCA                     0x00000800U  /*!< Loss of Carrier: carrier lost during transmission */
+#define ETH_DMATXDESC_NC                      0x00000400U  /*!< No Carrier: no carrier signal from the transceiver */
+#define ETH_DMATXDESC_LCO                     0x00000200U  /*!< Late Collision: transmission aborted due to collision */
+#define ETH_DMATXDESC_EC                      0x00000100U  /*!< Excessive Collision: transmission aborted after 16 collisions */
+#define ETH_DMATXDESC_VF                      0x00000080U  /*!< VLAN Frame */
+#define ETH_DMATXDESC_CC                      0x00000078U  /*!< Collision Count */
+#define ETH_DMATXDESC_ED                      0x00000004U  /*!< Excessive Deferral */
+#define ETH_DMATXDESC_UF                      0x00000002U  /*!< Underflow Error: late data arrival from the memory */
+#define ETH_DMATXDESC_DB                      0x00000001U  /*!< Deferred Bit */
+
+/**
+  * @brief  Bit definition of TDES1 register
+  */
+#define ETH_DMATXDESC_TBS2  0x1FFF0000U  /*!< Transmit Buffer2 Size */
+#define ETH_DMATXDESC_TBS1  0x00001FFFU  /*!< Transmit Buffer1 Size */
+
+/**
+  * @brief  Bit definition of TDES2 register
+  */
+#define ETH_DMATXDESC_B1AP  0xFFFFFFFFU  /*!< Buffer1 Address Pointer */
+
+/**
+  * @brief  Bit definition of TDES3 register
+  */
+#define ETH_DMATXDESC_B2AP  0xFFFFFFFFU  /*!< Buffer2 Address Pointer */
+
+  /*---------------------------------------------------------------------------------------------
+  TDES6 |                         Transmit Time Stamp Low [31:0]                                 |
+  -----------------------------------------------------------------------------------------------
+  TDES7 |                         Transmit Time Stamp High [31:0]                                |
+  ----------------------------------------------------------------------------------------------*/
+
+/* Bit definition of TDES6 register */
+ #define ETH_DMAPTPTXDESC_TTSL  0xFFFFFFFFU  /* Transmit Time Stamp Low */
+
+/* Bit definition of TDES7 register */
+ #define ETH_DMAPTPTXDESC_TTSH  0xFFFFFFFFU  /* Transmit Time Stamp High */
+
+/**
+  * @}
+  */
+/** @defgroup ETH_DMA_RX_Descriptor ETH DMA RX Descriptor
+  * @{
+  */
+
+/*
+  DMA Rx Descriptor
+  --------------------------------------------------------------------------------------------------------------------
+  RDES0 | OWN(31) |                                             Status [30:0]                                          |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES1 | CTRL(31) | Reserved[30:29] | Buffer2 ByteCount[28:16] | CTRL[15:14] | Reserved(13) | Buffer1 ByteCount[12:0] |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES2 |                                       Buffer1 Address [31:0]                                                 |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES3 |                          Buffer2 Address [31:0] / Next Descriptor Address [31:0]                             |
+  ---------------------------------------------------------------------------------------------------------------------
+*/
+
+/**
+  * @brief  Bit definition of RDES0 register: DMA Rx descriptor status register
+  */
+#define ETH_DMARXDESC_OWN         0x80000000U  /*!< OWN bit: descriptor is owned by DMA engine  */
+#define ETH_DMARXDESC_AFM         0x40000000U  /*!< DA Filter Fail for the rx frame  */
+#define ETH_DMARXDESC_FL          0x3FFF0000U  /*!< Receive descriptor frame length  */
+#define ETH_DMARXDESC_ES          0x00008000U  /*!< Error summary: OR of the following bits: DE || OE || IPC || LC || RWT || RE || CE */
+#define ETH_DMARXDESC_DE          0x00004000U  /*!< Descriptor error: no more descriptors for receive frame  */
+#define ETH_DMARXDESC_SAF         0x00002000U  /*!< SA Filter Fail for the received frame */
+#define ETH_DMARXDESC_LE          0x00001000U  /*!< Frame size not matching with length field */
+#define ETH_DMARXDESC_OE          0x00000800U  /*!< Overflow Error: Frame was damaged due to buffer overflow */
+#define ETH_DMARXDESC_VLAN        0x00000400U  /*!< VLAN Tag: received frame is a VLAN frame */
+#define ETH_DMARXDESC_FS          0x00000200U  /*!< First descriptor of the frame  */
+#define ETH_DMARXDESC_LS          0x00000100U  /*!< Last descriptor of the frame  */
+#define ETH_DMARXDESC_IPV4HCE     0x00000080U  /*!< IPC Checksum Error: Rx Ipv4 header checksum error   */
+#define ETH_DMARXDESC_LC          0x00000040U  /*!< Late collision occurred during reception   */
+#define ETH_DMARXDESC_FT          0x00000020U  /*!< Frame type - Ethernet, otherwise 802.3    */
+#define ETH_DMARXDESC_RWT         0x00000010U  /*!< Receive Watchdog Timeout: watchdog timer expired during reception    */
+#define ETH_DMARXDESC_RE          0x00000008U  /*!< Receive error: error reported by MII interface  */
+#define ETH_DMARXDESC_DBE         0x00000004U  /*!< Dribble bit error: frame contains non int multiple of 8 bits  */
+#define ETH_DMARXDESC_CE          0x00000002U  /*!< CRC error */
+#define ETH_DMARXDESC_MAMPCE      0x00000001U  /*!< Rx MAC Address/Payload Checksum Error: Rx MAC address matched/ Rx Payload Checksum Error */
+
+/**
+  * @brief  Bit definition of RDES1 register
+  */
+#define ETH_DMARXDESC_DIC   0x80000000U  /*!< Disable Interrupt on Completion */
+#define ETH_DMARXDESC_RBS2  0x1FFF0000U  /*!< Receive Buffer2 Size */
+#define ETH_DMARXDESC_RER   0x00008000U  /*!< Receive End of Ring */
+#define ETH_DMARXDESC_RCH   0x00004000U  /*!< Second Address Chained */
+#define ETH_DMARXDESC_RBS1  0x00001FFFU  /*!< Receive Buffer1 Size */
+
+/**
+  * @brief  Bit definition of RDES2 register
+  */
+#define ETH_DMARXDESC_B1AP  0xFFFFFFFFU  /*!< Buffer1 Address Pointer */
+
+/**
+  * @brief  Bit definition of RDES3 register
+  */
+#define ETH_DMARXDESC_B2AP  0xFFFFFFFFU  /*!< Buffer2 Address Pointer */
+
+/*---------------------------------------------------------------------------------------------------------------------
+  RDES4 |                   Reserved[31:15]              |             Extended Status [14:0]                          |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES5 |                                            Reserved[31:0]                                                    |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES6 |                                       Receive Time Stamp Low [31:0]                                          |
+  ---------------------------------------------------------------------------------------------------------------------
+  RDES7 |                                       Receive Time Stamp High [31:0]                                         |
+  --------------------------------------------------------------------------------------------------------------------*/
+
+/* Bit definition of RDES4 register */
+#define ETH_DMAPTPRXDESC_PTPV     0x00002000U  /* PTP Version */
+#define ETH_DMAPTPRXDESC_PTPFT    0x00001000U  /* PTP Frame Type */
+#define ETH_DMAPTPRXDESC_PTPMT    0x00000F00U  /* PTP Message Type */
+  #define ETH_DMAPTPRXDESC_PTPMT_SYNC                      0x00000100U  /* SYNC message (all clock types) */
+  #define ETH_DMAPTPRXDESC_PTPMT_FOLLOWUP                  0x00000200U  /* FollowUp message (all clock types) */
+  #define ETH_DMAPTPRXDESC_PTPMT_DELAYREQ                  0x00000300U  /* DelayReq message (all clock types) */
+  #define ETH_DMAPTPRXDESC_PTPMT_DELAYRESP                 0x00000400U  /* DelayResp message (all clock types) */
+  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYREQ_ANNOUNCE        0x00000500U  /* PdelayReq message (peer-to-peer transparent clock) or Announce message (Ordinary or Boundary clock) */
+  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESP_MANAG          0x00000600U  /* PdelayResp message (peer-to-peer transparent clock) or Management message (Ordinary or Boundary clock)  */
+  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESPFOLLOWUP_SIGNAL 0x00000700U  /* PdelayRespFollowUp message (peer-to-peer transparent clock) or Signaling message (Ordinary or Boundary clock) */
+#define ETH_DMAPTPRXDESC_IPV6PR   0x00000080U  /* IPv6 Packet Received */
+#define ETH_DMAPTPRXDESC_IPV4PR   0x00000040U  /* IPv4 Packet Received */
+#define ETH_DMAPTPRXDESC_IPCB     0x00000020U  /* IP Checksum Bypassed */
+#define ETH_DMAPTPRXDESC_IPPE     0x00000010U  /* IP Payload Error */
+#define ETH_DMAPTPRXDESC_IPHE     0x00000008U  /* IP Header Error */
+#define ETH_DMAPTPRXDESC_IPPT     0x00000007U  /* IP Payload Type */
+  #define ETH_DMAPTPRXDESC_IPPT_UDP                 0x00000001U  /* UDP payload encapsulated in the IP datagram */
+  #define ETH_DMAPTPRXDESC_IPPT_TCP                 0x00000002U  /* TCP payload encapsulated in the IP datagram */
+  #define ETH_DMAPTPRXDESC_IPPT_ICMP                0x00000003U  /* ICMP payload encapsulated in the IP datagram */
+
+/* Bit definition of RDES6 register */
+#define ETH_DMAPTPRXDESC_RTSL  0xFFFFFFFFU  /* Receive Time Stamp Low */
+
+/* Bit definition of RDES7 register */
+#define ETH_DMAPTPRXDESC_RTSH  0xFFFFFFFFU  /* Receive Time Stamp High */
+/**
+  * @}
+  */
+ /** @defgroup ETH_AutoNegotiation ETH AutoNegotiation
+  * @{
+  */
+#define ETH_AUTONEGOTIATION_ENABLE     0x00000001U
+#define ETH_AUTONEGOTIATION_DISABLE    0x00000000U
+
+/**
+  * @}
+  */
+/** @defgroup ETH_Speed ETH Speed
+  * @{
+  */
+#define ETH_SPEED_10M        0x00000000U
+#define ETH_SPEED_100M       0x00004000U
+
+/**
+  * @}
+  */
+/** @defgroup ETH_Duplex_Mode ETH Duplex Mode
+  * @{
+  */
+#define ETH_MODE_FULLDUPLEX       0x00000800U
+#define ETH_MODE_HALFDUPLEX       0x00000000U
+/**
+  * @}
+  */
+/** @defgroup ETH_Rx_Mode ETH Rx Mode
+  * @{
+  */
+#define ETH_RXPOLLING_MODE      0x00000000U
+#define ETH_RXINTERRUPT_MODE    0x00000001U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Checksum_Mode ETH Checksum Mode
+  * @{
+  */
+#define ETH_CHECKSUM_BY_HARDWARE      0x00000000U
+#define ETH_CHECKSUM_BY_SOFTWARE      0x00000001U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Media_Interface ETH Media Interface
+  * @{
+  */
+#define ETH_MEDIA_INTERFACE_MII       0x00000000U
+#define ETH_MEDIA_INTERFACE_RMII      ((uint32_t)SYSCFG_PMC_MII_RMII_SEL)
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Watchdog ETH Watchdog
+  * @{
+  */
+#define ETH_WATCHDOG_ENABLE       0x00000000U
+#define ETH_WATCHDOG_DISABLE      0x00800000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Jabber ETH Jabber
+  * @{
+  */
+#define ETH_JABBER_ENABLE    0x00000000U
+#define ETH_JABBER_DISABLE   0x00400000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Inter_Frame_Gap ETH Inter Frame Gap
+  * @{
+  */
+#define ETH_INTERFRAMEGAP_96BIT   0x00000000U  /*!< minimum IFG between frames during transmission is 96Bit */
+#define ETH_INTERFRAMEGAP_88BIT   0x00020000U  /*!< minimum IFG between frames during transmission is 88Bit */
+#define ETH_INTERFRAMEGAP_80BIT   0x00040000U  /*!< minimum IFG between frames during transmission is 80Bit */
+#define ETH_INTERFRAMEGAP_72BIT   0x00060000U  /*!< minimum IFG between frames during transmission is 72Bit */
+#define ETH_INTERFRAMEGAP_64BIT   0x00080000U  /*!< minimum IFG between frames during transmission is 64Bit */
+#define ETH_INTERFRAMEGAP_56BIT   0x000A0000U  /*!< minimum IFG between frames during transmission is 56Bit */
+#define ETH_INTERFRAMEGAP_48BIT   0x000C0000U  /*!< minimum IFG between frames during transmission is 48Bit */
+#define ETH_INTERFRAMEGAP_40BIT   0x000E0000U  /*!< minimum IFG between frames during transmission is 40Bit */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Carrier_Sense ETH Carrier Sense
+  * @{
+  */
+#define ETH_CARRIERSENCE_ENABLE   0x00000000U
+#define ETH_CARRIERSENCE_DISABLE  0x00010000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Own ETH Receive Own
+  * @{
+  */
+#define ETH_RECEIVEOWN_ENABLE     0x00000000U
+#define ETH_RECEIVEOWN_DISABLE    0x00002000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Loop_Back_Mode ETH Loop Back Mode
+  * @{
+  */
+#define ETH_LOOPBACKMODE_ENABLE        0x00001000U
+#define ETH_LOOPBACKMODE_DISABLE       0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Checksum_Offload ETH Checksum Offload
+  * @{
+  */
+#define ETH_CHECKSUMOFFLAOD_ENABLE     0x00000400U
+#define ETH_CHECKSUMOFFLAOD_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Retry_Transmission ETH Retry Transmission
+  * @{
+  */
+#define ETH_RETRYTRANSMISSION_ENABLE   0x00000000U
+#define ETH_RETRYTRANSMISSION_DISABLE  0x00000200U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Automatic_Pad_CRC_Strip ETH Automatic Pad CRC Strip
+  * @{
+  */
+#define ETH_AUTOMATICPADCRCSTRIP_ENABLE     0x00000080U
+#define ETH_AUTOMATICPADCRCSTRIP_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Back_Off_Limit ETH Back Off Limit
+  * @{
+  */
+#define ETH_BACKOFFLIMIT_10  0x00000000U
+#define ETH_BACKOFFLIMIT_8   0x00000020U
+#define ETH_BACKOFFLIMIT_4   0x00000040U
+#define ETH_BACKOFFLIMIT_1   0x00000060U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Deferral_Check ETH Deferral Check
+  * @{
+  */
+#define ETH_DEFFERRALCHECK_ENABLE       0x00000010U
+#define ETH_DEFFERRALCHECK_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_All ETH Receive All
+  * @{
+  */
+#define ETH_RECEIVEALL_ENABLE     0x80000000U
+#define ETH_RECEIVEAll_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Source_Addr_Filter ETH Source Addr Filter
+  * @{
+  */
+#define ETH_SOURCEADDRFILTER_NORMAL_ENABLE       0x00000200U
+#define ETH_SOURCEADDRFILTER_INVERSE_ENABLE      0x00000300U
+#define ETH_SOURCEADDRFILTER_DISABLE             0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Pass_Control_Frames ETH Pass Control Frames
+  * @{
+  */
+#define ETH_PASSCONTROLFRAMES_BLOCKALL                0x00000040U  /*!< MAC filters all control frames from reaching the application */
+#define ETH_PASSCONTROLFRAMES_FORWARDALL              0x00000080U  /*!< MAC forwards all control frames to application even if they fail the Address Filter */
+#define ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER 0x000000C0U  /*!< MAC forwards control frames that pass the Address Filter. */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Broadcast_Frames_Reception ETH Broadcast Frames Reception
+  * @{
+  */
+#define ETH_BROADCASTFRAMESRECEPTION_ENABLE     0x00000000U
+#define ETH_BROADCASTFRAMESRECEPTION_DISABLE    0x00000020U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Destination_Addr_Filter ETH Destination Addr Filter
+  * @{
+  */
+#define ETH_DESTINATIONADDRFILTER_NORMAL    0x00000000U
+#define ETH_DESTINATIONADDRFILTER_INVERSE   0x00000008U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Promiscuous_Mode ETH Promiscuous Mode
+  * @{
+  */
+#define ETH_PROMISCUOUS_MODE_ENABLE     0x00000001U
+#define ETH_PROMISCUOUS_MODE_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Multicast_Frames_Filter ETH Multicast Frames Filter
+  * @{
+  */
+#define ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE    0x00000404U
+#define ETH_MULTICASTFRAMESFILTER_HASHTABLE           0x00000004U
+#define ETH_MULTICASTFRAMESFILTER_PERFECT             0x00000000U
+#define ETH_MULTICASTFRAMESFILTER_NONE                0x00000010U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Unicast_Frames_Filter ETH Unicast Frames Filter
+  * @{
+  */
+#define ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE 0x00000402U
+#define ETH_UNICASTFRAMESFILTER_HASHTABLE        0x00000002U
+#define ETH_UNICASTFRAMESFILTER_PERFECT          0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Zero_Quanta_Pause ETH Zero Quanta Pause
+  * @{
+  */
+#define ETH_ZEROQUANTAPAUSE_ENABLE     0x00000000U
+#define ETH_ZEROQUANTAPAUSE_DISABLE    0x00000080U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Pause_Low_Threshold ETH Pause Low Threshold
+  * @{
+  */
+#define ETH_PAUSELOWTHRESHOLD_MINUS4        0x00000000U  /*!< Pause time minus 4 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS28       0x00000010U  /*!< Pause time minus 28 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS144      0x00000020U  /*!< Pause time minus 144 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS256      0x00000030U  /*!< Pause time minus 256 slot times */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Unicast_Pause_Frame_Detect ETH Unicast Pause Frame Detect
+  * @{
+  */
+#define ETH_UNICASTPAUSEFRAMEDETECT_ENABLE  0x00000008U
+#define ETH_UNICASTPAUSEFRAMEDETECT_DISABLE 0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Flow_Control ETH Receive Flow Control
+  * @{
+  */
+#define ETH_RECEIVEFLOWCONTROL_ENABLE       0x00000004U
+#define ETH_RECEIVEFLOWCONTROL_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Flow_Control ETH Transmit Flow Control
+  * @{
+  */
+#define ETH_TRANSMITFLOWCONTROL_ENABLE      0x00000002U
+#define ETH_TRANSMITFLOWCONTROL_DISABLE     0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_VLAN_Tag_Comparison ETH VLAN Tag Comparison
+  * @{
+  */
+#define ETH_VLANTAGCOMPARISON_12BIT    0x00010000U
+#define ETH_VLANTAGCOMPARISON_16BIT    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses ETH MAC addresses
+  * @{
+  */
+#define ETH_MAC_ADDRESS0     0x00000000U
+#define ETH_MAC_ADDRESS1     0x00000008U
+#define ETH_MAC_ADDRESS2     0x00000010U
+#define ETH_MAC_ADDRESS3     0x00000018U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses_filter_SA_DA ETH MAC addresses filter SA DA
+  * @{
+  */
+#define ETH_MAC_ADDRESSFILTER_SA       0x00000000U
+#define ETH_MAC_ADDRESSFILTER_DA       0x00000008U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses_filter_Mask_bytes ETH MAC addresses filter Mask bytes
+  * @{
+  */
+#define ETH_MAC_ADDRESSMASK_BYTE6      0x20000000U  /*!< Mask MAC Address high reg bits [15:8] */
+#define ETH_MAC_ADDRESSMASK_BYTE5      0x10000000U  /*!< Mask MAC Address high reg bits [7:0] */
+#define ETH_MAC_ADDRESSMASK_BYTE4      0x08000000U  /*!< Mask MAC Address low reg bits [31:24] */
+#define ETH_MAC_ADDRESSMASK_BYTE3      0x04000000U  /*!< Mask MAC Address low reg bits [23:16] */
+#define ETH_MAC_ADDRESSMASK_BYTE2      0x02000000U  /*!< Mask MAC Address low reg bits [15:8] */
+#define ETH_MAC_ADDRESSMASK_BYTE1      0x01000000U  /*!< Mask MAC Address low reg bits [70] */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Drop_TCP_IP_Checksum_Error_Frame ETH Drop TCP IP Checksum Error Frame
+  * @{
+  */
+#define ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE   0x00000000U
+#define ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE  0x04000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Store_Forward ETH Receive Store Forward
+  * @{
+  */
+#define ETH_RECEIVESTOREFORWARD_ENABLE      0x02000000U
+#define ETH_RECEIVESTOREFORWARD_DISABLE     0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Flush_Received_Frame ETH Flush Received Frame
+  * @{
+  */
+#define ETH_FLUSHRECEIVEDFRAME_ENABLE       0x00000000U
+#define ETH_FLUSHRECEIVEDFRAME_DISABLE      0x01000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Store_Forward ETH Transmit Store Forward
+  * @{
+  */
+#define ETH_TRANSMITSTOREFORWARD_ENABLE     0x00200000U
+#define ETH_TRANSMITSTOREFORWARD_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Threshold_Control ETH Transmit Threshold Control
+  * @{
+  */
+#define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES     0x00000000U  /*!< threshold level of the MTL Transmit FIFO is 64 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_128BYTES    0x00004000U  /*!< threshold level of the MTL Transmit FIFO is 128 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_192BYTES    0x00008000U  /*!< threshold level of the MTL Transmit FIFO is 192 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_256BYTES    0x0000C000U  /*!< threshold level of the MTL Transmit FIFO is 256 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_40BYTES     0x00010000U  /*!< threshold level of the MTL Transmit FIFO is 40 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_32BYTES     0x00014000U  /*!< threshold level of the MTL Transmit FIFO is 32 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_24BYTES     0x00018000U  /*!< threshold level of the MTL Transmit FIFO is 24 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_16BYTES     0x0001C000U  /*!< threshold level of the MTL Transmit FIFO is 16 Bytes */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Forward_Error_Frames ETH Forward Error Frames
+  * @{
+  */
+#define ETH_FORWARDERRORFRAMES_ENABLE       0x00000080U
+#define ETH_FORWARDERRORFRAMES_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Forward_Undersized_Good_Frames ETH Forward Undersized Good Frames
+  * @{
+  */
+#define ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE   0x00000040U
+#define ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE  0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Threshold_Control ETH Receive Threshold Control
+  * @{
+  */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES      0x00000000U  /*!< threshold level of the MTL Receive FIFO is 64 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES      0x00000008U  /*!< threshold level of the MTL Receive FIFO is 32 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES      0x00000010U  /*!< threshold level of the MTL Receive FIFO is 96 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES     0x00000018U  /*!< threshold level of the MTL Receive FIFO is 128 Bytes */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Second_Frame_Operate ETH Second Frame Operate
+  * @{
+  */
+#define ETH_SECONDFRAMEOPERARTE_ENABLE       0x00000004U
+#define ETH_SECONDFRAMEOPERARTE_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Address_Aligned_Beats ETH Address Aligned Beats
+  * @{
+  */
+#define ETH_ADDRESSALIGNEDBEATS_ENABLE      0x02000000U
+#define ETH_ADDRESSALIGNEDBEATS_DISABLE     0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Fixed_Burst ETH Fixed Burst
+  * @{
+  */
+#define ETH_FIXEDBURST_ENABLE     0x00010000U
+#define ETH_FIXEDBURST_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Rx_DMA_Burst_Length ETH Rx DMA Burst Length
+  * @{
+  */
+#define ETH_RXDMABURSTLENGTH_1BEAT          0x00020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 1 */
+#define ETH_RXDMABURSTLENGTH_2BEAT          0x00040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 2 */
+#define ETH_RXDMABURSTLENGTH_4BEAT          0x00080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
+#define ETH_RXDMABURSTLENGTH_8BEAT          0x00100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
+#define ETH_RXDMABURSTLENGTH_16BEAT         0x00200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
+#define ETH_RXDMABURSTLENGTH_32BEAT         0x00400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_4BEAT    0x01020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_8BEAT    0x01040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_16BEAT   0x01080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_32BEAT   0x01100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_64BEAT   0x01200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 64 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_128BEAT  0x01400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 128 */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Tx_DMA_Burst_Length ETH Tx DMA Burst Length
+  * @{
+  */
+#define ETH_TXDMABURSTLENGTH_1BEAT          0x00000100U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */
+#define ETH_TXDMABURSTLENGTH_2BEAT          0x00000200U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */
+#define ETH_TXDMABURSTLENGTH_4BEAT          0x00000400U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
+#define ETH_TXDMABURSTLENGTH_8BEAT          0x00000800U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
+#define ETH_TXDMABURSTLENGTH_16BEAT         0x00001000U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
+#define ETH_TXDMABURSTLENGTH_32BEAT         0x00002000U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_4BEAT    0x01000100U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_8BEAT    0x01000200U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_16BEAT   0x01000400U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_32BEAT   0x01000800U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_64BEAT   0x01001000U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */
+#define ETH_TXDMABURSTLENGTH_4XPBL_128BEAT  0x01002000U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Enhanced_descriptor_format ETH DMA Enhanced descriptor format
+  * @{
+  */
+#define ETH_DMAENHANCEDDESCRIPTOR_ENABLE              0x00000080U
+#define ETH_DMAENHANCEDDESCRIPTOR_DISABLE             0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Arbitration ETH DMA Arbitration
+  * @{
+  */
+#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1   0x00000000U
+#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1   0x00004000U
+#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1   0x00008000U
+#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1   0x0000C000U
+#define ETH_DMAARBITRATION_RXPRIORTX             0x00000002U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Tx_descriptor_segment ETH DMA Tx descriptor segment
+  * @{
+  */
+#define ETH_DMATXDESC_LASTSEGMENTS      0x40000000U  /*!< Last Segment */
+#define ETH_DMATXDESC_FIRSTSEGMENT      0x20000000U  /*!< First Segment */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Tx_descriptor_Checksum_Insertion_Control ETH DMA Tx descriptor Checksum Insertion Control
+  * @{
+  */
+#define ETH_DMATXDESC_CHECKSUMBYPASS             0x00000000U   /*!< Checksum engine bypass */
+#define ETH_DMATXDESC_CHECKSUMIPV4HEADER         0x00400000U   /*!< IPv4 header checksum insertion  */
+#define ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT  0x00800000U   /*!< TCP/UDP/ICMP checksum insertion. Pseudo header checksum is assumed to be present */
+#define ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL     0x00C00000U   /*!< TCP/UDP/ICMP checksum fully in hardware including pseudo header */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Rx_descriptor_buffers ETH DMA Rx descriptor buffers
+  * @{
+  */
+#define ETH_DMARXDESC_BUFFER1     0x00000000U  /*!< DMA Rx Desc Buffer1 */
+#define ETH_DMARXDESC_BUFFER2     0x00000001U  /*!< DMA Rx Desc Buffer2 */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_PMT_Flags ETH PMT Flags
+  * @{
+  */
+#define ETH_PMT_FLAG_WUFFRPR      0x80000000U  /*!< Wake-Up Frame Filter Register Pointer Reset */
+#define ETH_PMT_FLAG_WUFR         0x00000040U  /*!< Wake-Up Frame Received */
+#define ETH_PMT_FLAG_MPR          0x00000020U  /*!< Magic Packet Received */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MMC_Tx_Interrupts ETH MMC Tx Interrupts
+  * @{
+  */
+#define ETH_MMC_IT_TGF       0x00200000U  /*!< When Tx good frame counter reaches half the maximum value */
+#define ETH_MMC_IT_TGFMSC    0x00008000U  /*!< When Tx good multi col counter reaches half the maximum value */
+#define ETH_MMC_IT_TGFSC     0x00004000U  /*!< When Tx good single col counter reaches half the maximum value */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MMC_Rx_Interrupts ETH MMC Rx Interrupts
+  * @{
+  */
+#define ETH_MMC_IT_RGUF      0x10020000U  /*!< When Rx good unicast frames counter reaches half the maximum value */
+#define ETH_MMC_IT_RFAE      0x10000040U  /*!< When Rx alignment error counter reaches half the maximum value */
+#define ETH_MMC_IT_RFCE      0x10000020U  /*!< When Rx crc error counter reaches half the maximum value */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_Flags ETH MAC Flags
+  * @{
+  */
+#define ETH_MAC_FLAG_TST     0x00000200U  /*!< Time stamp trigger flag (on MAC) */
+#define ETH_MAC_FLAG_MMCT    0x00000040U  /*!< MMC transmit flag  */
+#define ETH_MAC_FLAG_MMCR    0x00000020U  /*!< MMC receive flag */
+#define ETH_MAC_FLAG_MMC     0x00000010U  /*!< MMC flag (on MAC) */
+#define ETH_MAC_FLAG_PMT     0x00000008U  /*!< PMT flag (on MAC) */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Flags ETH DMA Flags
+  * @{
+  */
+#define ETH_DMA_FLAG_TST               0x20000000U  /*!< Time-stamp trigger interrupt (on DMA) */
+#define ETH_DMA_FLAG_PMT               0x10000000U  /*!< PMT interrupt (on DMA) */
+#define ETH_DMA_FLAG_MMC               0x08000000U  /*!< MMC interrupt (on DMA) */
+#define ETH_DMA_FLAG_DATATRANSFERERROR 0x00800000U  /*!< Error bits 0-Rx DMA, 1-Tx DMA */
+#define ETH_DMA_FLAG_READWRITEERROR    0x01000000U  /*!< Error bits 0-write transfer, 1-read transfer */
+#define ETH_DMA_FLAG_ACCESSERROR       0x02000000U  /*!< Error bits 0-data buffer, 1-desc. access */
+#define ETH_DMA_FLAG_NIS               0x00010000U  /*!< Normal interrupt summary flag */
+#define ETH_DMA_FLAG_AIS               0x00008000U  /*!< Abnormal interrupt summary flag */
+#define ETH_DMA_FLAG_ER                0x00004000U  /*!< Early receive flag */
+#define ETH_DMA_FLAG_FBE               0x00002000U  /*!< Fatal bus error flag */
+#define ETH_DMA_FLAG_ET                0x00000400U  /*!< Early transmit flag */
+#define ETH_DMA_FLAG_RWT               0x00000200U  /*!< Receive watchdog timeout flag */
+#define ETH_DMA_FLAG_RPS               0x00000100U  /*!< Receive process stopped flag */
+#define ETH_DMA_FLAG_RBU               0x00000080U  /*!< Receive buffer unavailable flag */
+#define ETH_DMA_FLAG_R                 0x00000040U  /*!< Receive flag */
+#define ETH_DMA_FLAG_TU                0x00000020U  /*!< Underflow flag */
+#define ETH_DMA_FLAG_RO                0x00000010U  /*!< Overflow flag */
+#define ETH_DMA_FLAG_TJT               0x00000008U  /*!< Transmit jabber timeout flag */
+#define ETH_DMA_FLAG_TBU               0x00000004U  /*!< Transmit buffer unavailable flag */
+#define ETH_DMA_FLAG_TPS               0x00000002U  /*!< Transmit process stopped flag */
+#define ETH_DMA_FLAG_T                 0x00000001U  /*!< Transmit flag */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_Interrupts ETH MAC Interrupts
+  * @{
+  */
+#define ETH_MAC_IT_TST       0x00000200U  /*!< Time stamp trigger interrupt (on MAC) */
+#define ETH_MAC_IT_MMCT      0x00000040U  /*!< MMC transmit interrupt */
+#define ETH_MAC_IT_MMCR      0x00000020U  /*!< MMC receive interrupt */
+#define ETH_MAC_IT_MMC       0x00000010U  /*!< MMC interrupt (on MAC) */
+#define ETH_MAC_IT_PMT       0x00000008U  /*!< PMT interrupt (on MAC) */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Interrupts ETH DMA Interrupts
+  * @{
+  */
+#define ETH_DMA_IT_TST       0x20000000U  /*!< Time-stamp trigger interrupt (on DMA) */
+#define ETH_DMA_IT_PMT       0x10000000U  /*!< PMT interrupt (on DMA) */
+#define ETH_DMA_IT_MMC       0x08000000U  /*!< MMC interrupt (on DMA) */
+#define ETH_DMA_IT_NIS       0x00010000U  /*!< Normal interrupt summary */
+#define ETH_DMA_IT_AIS       0x00008000U  /*!< Abnormal interrupt summary */
+#define ETH_DMA_IT_ER        0x00004000U  /*!< Early receive interrupt */
+#define ETH_DMA_IT_FBE       0x00002000U  /*!< Fatal bus error interrupt */
+#define ETH_DMA_IT_ET        0x00000400U  /*!< Early transmit interrupt */
+#define ETH_DMA_IT_RWT       0x00000200U  /*!< Receive watchdog timeout interrupt */
+#define ETH_DMA_IT_RPS       0x00000100U  /*!< Receive process stopped interrupt */
+#define ETH_DMA_IT_RBU       0x00000080U  /*!< Receive buffer unavailable interrupt */
+#define ETH_DMA_IT_R         0x00000040U  /*!< Receive interrupt */
+#define ETH_DMA_IT_TU        0x00000020U  /*!< Underflow interrupt */
+#define ETH_DMA_IT_RO        0x00000010U  /*!< Overflow interrupt */
+#define ETH_DMA_IT_TJT       0x00000008U  /*!< Transmit jabber timeout interrupt */
+#define ETH_DMA_IT_TBU       0x00000004U  /*!< Transmit buffer unavailable interrupt */
+#define ETH_DMA_IT_TPS       0x00000002U  /*!< Transmit process stopped interrupt */
+#define ETH_DMA_IT_T         0x00000001U  /*!< Transmit interrupt */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_transmit_process_state ETH DMA transmit process state
+  * @{
+  */
+#define ETH_DMA_TRANSMITPROCESS_STOPPED     0x00000000U  /*!< Stopped - Reset or Stop Tx Command issued */
+#define ETH_DMA_TRANSMITPROCESS_FETCHING    0x00100000U  /*!< Running - fetching the Tx descriptor */
+#define ETH_DMA_TRANSMITPROCESS_WAITING     0x00200000U  /*!< Running - waiting for status */
+#define ETH_DMA_TRANSMITPROCESS_READING     0x00300000U  /*!< Running - reading the data from host memory */
+#define ETH_DMA_TRANSMITPROCESS_SUSPENDED   0x00600000U  /*!< Suspended - Tx Descriptor unavailable */
+#define ETH_DMA_TRANSMITPROCESS_CLOSING     0x00700000U  /*!< Running - closing Rx descriptor */
+
+/**
+  * @}
+  */
+
+
+/** @defgroup ETH_DMA_receive_process_state ETH DMA receive process state
+  * @{
+  */
+#define ETH_DMA_RECEIVEPROCESS_STOPPED      0x00000000U  /*!< Stopped - Reset or Stop Rx Command issued */
+#define ETH_DMA_RECEIVEPROCESS_FETCHING     0x00020000U  /*!< Running - fetching the Rx descriptor */
+#define ETH_DMA_RECEIVEPROCESS_WAITING      0x00060000U  /*!< Running - waiting for packet */
+#define ETH_DMA_RECEIVEPROCESS_SUSPENDED    0x00080000U  /*!< Suspended - Rx Descriptor unavailable */
+#define ETH_DMA_RECEIVEPROCESS_CLOSING      0x000A0000U  /*!< Running - closing descriptor */
+#define ETH_DMA_RECEIVEPROCESS_QUEUING      0x000E0000U  /*!< Running - queuing the receive frame into host memory */
+
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_overflow ETH DMA overflow
+  * @{
+  */
+#define ETH_DMA_OVERFLOW_RXFIFOCOUNTER      0x10000000U  /*!< Overflow bit for FIFO overflow counter */
+#define ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER 0x00010000U  /*!< Overflow bit for missed frame counter */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_EXTI_LINE_WAKEUP ETH EXTI LINE WAKEUP
+  * @{
+  */
+#define ETH_EXTI_LINE_WAKEUP              0x00080000U  /*!< External interrupt line 19 Connected to the ETH EXTI Line */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Exported macro ------------------------------------------------------------*/
+/** @defgroup ETH_Exported_Macros ETH Exported Macros
+ *  @brief macros to handle interrupts and specific clock configurations
+ * @{
+ */
+
+/** @brief Reset ETH handle state
+  * @param  __HANDLE__ specifies the ETH handle.
+  * @retval None
+  */
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__)  do{                                                 \
+                                                       (__HANDLE__)->State = HAL_ETH_STATE_RESET;     \
+                                                       (__HANDLE__)->MspInitCallback = NULL;          \
+                                                       (__HANDLE__)->MspDeInitCallback = NULL;        \
+                                                     } while(0)
+#else
+#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ETH_STATE_RESET)
+#endif /*USE_HAL_ETH_REGISTER_CALLBACKS */
+
+/**
+  * @brief  Checks whether the specified ETHERNET DMA Tx Desc flag is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __FLAG__ specifies the flag of TDES0 to check.
+  * @retval the ETH_DMATxDescFlag (SET or RESET).
+  */
+#define __HAL_ETH_DMATXDESC_GET_FLAG(__HANDLE__, __FLAG__)             ((__HANDLE__)->TxDesc->Status & (__FLAG__) == (__FLAG__))
+
+/**
+  * @brief  Checks whether the specified ETHERNET DMA Rx Desc flag is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __FLAG__ specifies the flag of RDES0 to check.
+  * @retval the ETH_DMATxDescFlag (SET or RESET).
+  */
+#define __HAL_ETH_DMARXDESC_GET_FLAG(__HANDLE__, __FLAG__)             ((__HANDLE__)->RxDesc->Status & (__FLAG__) == (__FLAG__))
+
+/**
+  * @brief  Enables the specified DMA Rx Desc receive interrupt.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMARXDESC_ENABLE_IT(__HANDLE__)                          ((__HANDLE__)->RxDesc->ControlBufferSize &=(~(uint32_t)ETH_DMARXDESC_DIC))
+
+/**
+  * @brief  Disables the specified DMA Rx Desc receive interrupt.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMARXDESC_DISABLE_IT(__HANDLE__)                         ((__HANDLE__)->RxDesc->ControlBufferSize |= ETH_DMARXDESC_DIC)
+
+/**
+  * @brief  Set the specified DMA Rx Desc Own bit.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMARXDESC_SET_OWN_BIT(__HANDLE__)                           ((__HANDLE__)->RxDesc->Status |= ETH_DMARXDESC_OWN)
+
+/**
+  * @brief  Returns the specified ETHERNET DMA Tx Desc collision count.
+  * @param  __HANDLE__ ETH Handle
+  * @retval The Transmit descriptor collision counter value.
+  */
+#define __HAL_ETH_DMATXDESC_GET_COLLISION_COUNT(__HANDLE__)                   (((__HANDLE__)->TxDesc->Status & ETH_DMATXDESC_CC) >> ETH_DMATXDESC_COLLISION_COUNTSHIFT)
+
+/**
+  * @brief  Set the specified DMA Tx Desc Own bit.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_SET_OWN_BIT(__HANDLE__)                       ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_OWN)
+
+/**
+  * @brief  Enables the specified DMA Tx Desc Transmit interrupt.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_ENABLE_IT(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_IC)
+
+/**
+  * @brief  Disables the specified DMA Tx Desc Transmit interrupt.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_DISABLE_IT(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_IC)
+
+/**
+  * @brief  Selects the specified ETHERNET DMA Tx Desc Checksum Insertion.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __CHECKSUM__ specifies is the DMA Tx desc checksum insertion.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_DMATXDESC_CHECKSUMBYPASS : Checksum bypass
+  *     @arg ETH_DMATXDESC_CHECKSUMIPV4HEADER : IPv4 header checksum
+  *     @arg ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT : TCP/UDP/ICMP checksum. Pseudo header checksum is assumed to be present
+  *     @arg ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL : TCP/UDP/ICMP checksum fully in hardware including pseudo header
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_CHECKSUM_INSERTION(__HANDLE__, __CHECKSUM__)     ((__HANDLE__)->TxDesc->Status |= (__CHECKSUM__))
+
+/**
+  * @brief  Enables the DMA Tx Desc CRC.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_CRC_ENABLE(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DC)
+
+/**
+  * @brief  Disables the DMA Tx Desc CRC.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_CRC_DISABLE(__HANDLE__)                         ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DC)
+
+/**
+  * @brief  Enables the DMA Tx Desc padding for frame shorter than 64 bytes.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_ENABLE(__HANDLE__)            ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DP)
+
+/**
+  * @brief  Disables the DMA Tx Desc padding for frame shorter than 64 bytes.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_DISABLE(__HANDLE__)           ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DP)
+
+/**
+ * @brief  Enables the specified ETHERNET MAC interrupts.
+  * @param  __HANDLE__    ETH Handle
+  * @param  __INTERRUPT__ specifies the ETHERNET MAC interrupt sources to be
+  *   enabled or disabled.
+  *   This parameter can be any combination of the following values:
+  *     @arg ETH_MAC_IT_TST : Time stamp trigger interrupt
+  *     @arg ETH_MAC_IT_PMT : PMT interrupt
+  * @retval None
+  */
+#define __HAL_ETH_MAC_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->MACIMR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disables the specified ETHERNET MAC interrupts.
+  * @param  __HANDLE__    ETH Handle
+  * @param  __INTERRUPT__ specifies the ETHERNET MAC interrupt sources to be
+  *   enabled or disabled.
+  *   This parameter can be any combination of the following values:
+  *     @arg ETH_MAC_IT_TST : Time stamp trigger interrupt
+  *     @arg ETH_MAC_IT_PMT : PMT interrupt
+  * @retval None
+  */
+#define __HAL_ETH_MAC_DISABLE_IT(__HANDLE__, __INTERRUPT__)                ((__HANDLE__)->Instance->MACIMR &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Initiate a Pause Control Frame (Full-duplex only).
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_INITIATE_PAUSE_CONTROL_FRAME(__HANDLE__)              ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA)
+
+/**
+  * @brief  Checks whether the ETHERNET flow control busy bit is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @retval The new state of flow control busy status bit (SET or RESET).
+  */
+#define __HAL_ETH_GET_FLOW_CONTROL_BUSY_STATUS(__HANDLE__)               (((__HANDLE__)->Instance->MACFCR & ETH_MACFCR_FCBBPA) == ETH_MACFCR_FCBBPA)
+
+/**
+  * @brief  Enables the MAC Back Pressure operation activation (Half-duplex only).
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_BACK_PRESSURE_ACTIVATION_ENABLE(__HANDLE__)          ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA)
+
+/**
+  * @brief  Disables the MAC BackPressure operation activation (Half-duplex only).
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_BACK_PRESSURE_ACTIVATION_DISABLE(__HANDLE__)         ((__HANDLE__)->Instance->MACFCR &= ~ETH_MACFCR_FCBBPA)
+
+/**
+  * @brief  Checks whether the specified ETHERNET MAC flag is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __FLAG__ specifies the flag to check.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_MAC_FLAG_TST  : Time stamp trigger flag
+  *     @arg ETH_MAC_FLAG_MMCT : MMC transmit flag
+  *     @arg ETH_MAC_FLAG_MMCR : MMC receive flag
+  *     @arg ETH_MAC_FLAG_MMC  : MMC flag
+  *     @arg ETH_MAC_FLAG_PMT  : PMT flag
+  * @retval The state of ETHERNET MAC flag.
+  */
+#define __HAL_ETH_MAC_GET_FLAG(__HANDLE__, __FLAG__)                   (((__HANDLE__)->Instance->MACSR &( __FLAG__)) == ( __FLAG__))
+
+/**
+  * @brief  Enables the specified ETHERNET DMA interrupts.
+  * @param  __HANDLE__    ETH Handle
+  * @param  __INTERRUPT__ specifies the ETHERNET DMA interrupt sources to be
+  *   enabled @ref ETH_DMA_Interrupts
+  * @retval None
+  */
+#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->DMAIER |= (__INTERRUPT__))
+
+/**
+  * @brief  Disables the specified ETHERNET DMA interrupts.
+  * @param  __HANDLE__    ETH Handle
+  * @param  __INTERRUPT__ specifies the ETHERNET DMA interrupt sources to be
+  *   disabled. @ref ETH_DMA_Interrupts
+  * @retval None
+  */
+#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)                ((__HANDLE__)->Instance->DMAIER &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Clears the ETHERNET DMA IT pending bit.
+  * @param  __HANDLE__    ETH Handle
+  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear. @ref ETH_DMA_Interrupts
+  * @retval None
+  */
+#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->DMASR =(__INTERRUPT__))
+
+/**
+  * @brief  Checks whether the specified ETHERNET DMA flag is set or not.
+* @param  __HANDLE__ ETH Handle
+  * @param  __FLAG__ specifies the flag to check. @ref ETH_DMA_Flags
+  * @retval The new state of ETH_DMA_FLAG (SET or RESET).
+  */
+#define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__)                   (((__HANDLE__)->Instance->DMASR &( __FLAG__)) == ( __FLAG__))
+
+/**
+  * @brief  Checks whether the specified ETHERNET DMA flag is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __FLAG__ specifies the flag to clear. @ref ETH_DMA_Flags
+  * @retval The new state of ETH_DMA_FLAG (SET or RESET).
+  */
+#define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)                 ((__HANDLE__)->Instance->DMASR = (__FLAG__))
+
+/**
+  * @brief  Checks whether the specified ETHERNET DMA overflow flag is set or not.
+  * @param  __HANDLE__ ETH Handle
+  * @param  __OVERFLOW__ specifies the DMA overflow flag to check.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_DMA_OVERFLOW_RXFIFOCOUNTER : Overflow for FIFO Overflows Counter
+  *     @arg ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER : Overflow for Buffer Unavailable Missed Frame Counter
+  * @retval The state of ETHERNET DMA overflow Flag (SET or RESET).
+  */
+#define __HAL_ETH_GET_DMA_OVERFLOW_STATUS(__HANDLE__, __OVERFLOW__)       (((__HANDLE__)->Instance->DMAMFBOCR & (__OVERFLOW__)) == (__OVERFLOW__))
+
+/**
+  * @brief  Set the DMA Receive status watchdog timer register value
+  * @param  __HANDLE__ ETH Handle
+  * @param  __VALUE__ DMA Receive status watchdog timer register value
+  * @retval None
+  */
+#define __HAL_ETH_SET_RECEIVE_WATCHDOG_TIMER(__HANDLE__, __VALUE__)       ((__HANDLE__)->Instance->DMARSWTR = (__VALUE__))
+
+/**
+  * @brief  Enables any unicast packet filtered by the MAC address
+  *   recognition to be a wake-up frame.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_ENABLE(__HANDLE__)               ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_GU)
+
+/**
+  * @brief  Disables any unicast packet filtered by the MAC address
+  *   recognition to be a wake-up frame.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_DISABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_GU)
+
+/**
+  * @brief  Enables the MAC Wake-Up Frame Detection.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_FRAME_DETECTION_ENABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_WFE)
+
+/**
+  * @brief  Disables the MAC Wake-Up Frame Detection.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_FRAME_DETECTION_DISABLE(__HANDLE__)             ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE)
+
+/**
+  * @brief  Enables the MAC Magic Packet Detection.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MAGIC_PACKET_DETECTION_ENABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_MPE)
+
+/**
+  * @brief  Disables the MAC Magic Packet Detection.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MAGIC_PACKET_DETECTION_DISABLE(__HANDLE__)             ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE)
+
+/**
+  * @brief  Enables the MAC Power Down.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_POWER_DOWN_ENABLE(__HANDLE__)                         ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_PD)
+
+/**
+  * @brief  Disables the MAC Power Down.
+  * @param  __HANDLE__ ETH Handle
+  * @retval None
+  */
+#define __HAL_ETH_POWER_DOWN_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_PD)
+
+/**
+  * @brief  Checks whether the specified ETHERNET PMT flag is set or not.
+  * @param  __HANDLE__ ETH Handle.
+  * @param  __FLAG__ specifies the flag to check.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_PMT_FLAG_WUFFRPR : Wake-Up Frame Filter Register Pointer Reset
+  *     @arg ETH_PMT_FLAG_WUFR    : Wake-Up Frame Received
+  *     @arg ETH_PMT_FLAG_MPR     : Magic Packet Received
+  * @retval The new state of ETHERNET PMT Flag (SET or RESET).
+  */
+#define __HAL_ETH_GET_PMT_FLAG_STATUS(__HANDLE__, __FLAG__)               (((__HANDLE__)->Instance->MACPMTCSR &( __FLAG__)) == ( __FLAG__))
+
+/**
+  * @brief  Preset and Initialize the MMC counters to almost-full value: 0xFFFF_FFF0 (full - 16)
+  * @param   __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MMC_COUNTER_FULL_PRESET(__HANDLE__)                     ((__HANDLE__)->Instance->MMCCR |= (ETH_MMCCR_MCFHP | ETH_MMCCR_MCP))
+
+/**
+  * @brief  Preset and Initialize the MMC counters to almost-half value: 0x7FFF_FFF0 (half - 16)
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MMC_COUNTER_HALF_PRESET(__HANDLE__)                     do{(__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCFHP;\
+                                                                          (__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCP;} while (0)
+
+/**
+  * @brief  Enables the MMC Counter Freeze.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MMC_COUNTER_FREEZE_ENABLE(__HANDLE__)                  ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCF)
+
+/**
+  * @brief  Disables the MMC Counter Freeze.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MMC_COUNTER_FREEZE_DISABLE(__HANDLE__)                 ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCF)
+
+/**
+  * @brief  Enables the MMC Reset On Read.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_ETH_MMC_RESET_ONREAD_ENABLE(__HANDLE__)                ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_ROR)
+
+/**
+  * @brief  Disables the MMC Reset On Read.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_ETH_MMC_RESET_ONREAD_DISABLE(__HANDLE__)               ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_ROR)
+
+/**
+  * @brief  Enables the MMC Counter Stop Rollover.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_ENABLE(__HANDLE__)            ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_CSR)
+
+/**
+  * @brief  Disables the MMC Counter Stop Rollover.
+  * @param  __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_DISABLE(__HANDLE__)           ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CSR)
+
+/**
+  * @brief  Resets the MMC Counters.
+  * @param   __HANDLE__ ETH Handle.
+  * @retval None
+  */
+#define __HAL_ETH_MMC_COUNTERS_RESET(__HANDLE__)                         ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CR)
+
+/**
+  * @brief  Enables the specified ETHERNET MMC Rx interrupts.
+  * @param   __HANDLE__ ETH Handle.
+  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_MMC_IT_RGUF  : When Rx good unicast frames counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_RFAE  : When Rx alignment error counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_RFCE  : When Rx crc error counter reaches half the maximum value
+  * @retval None
+  */
+#define __HAL_ETH_MMC_RX_IT_ENABLE(__HANDLE__, __INTERRUPT__)               (__HANDLE__)->Instance->MMCRIMR &= ~((__INTERRUPT__) & 0xEFFFFFFFU)
+/**
+  * @brief  Disables the specified ETHERNET MMC Rx interrupts.
+  * @param   __HANDLE__ ETH Handle.
+  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_MMC_IT_RGUF  : When Rx good unicast frames counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_RFAE  : When Rx alignment error counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_RFCE  : When Rx crc error counter reaches half the maximum value
+  * @retval None
+  */
+#define __HAL_ETH_MMC_RX_IT_DISABLE(__HANDLE__, __INTERRUPT__)              (__HANDLE__)->Instance->MMCRIMR |= ((__INTERRUPT__) & 0xEFFFFFFFU)
+/**
+  * @brief  Enables the specified ETHERNET MMC Tx interrupts.
+  * @param   __HANDLE__ ETH Handle.
+  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_MMC_IT_TGF   : When Tx good frame counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_TGFMSC: When Tx good multi col counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_TGFSC : When Tx good single col counter reaches half the maximum value
+  * @retval None
+  */
+#define __HAL_ETH_MMC_TX_IT_ENABLE(__HANDLE__, __INTERRUPT__)            ((__HANDLE__)->Instance->MMCRIMR &= ~ (__INTERRUPT__))
+
+/**
+  * @brief  Disables the specified ETHERNET MMC Tx interrupts.
+  * @param   __HANDLE__ ETH Handle.
+  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
+  *   This parameter can be one of the following values:
+  *     @arg ETH_MMC_IT_TGF   : When Tx good frame counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_TGFMSC: When Tx good multi col counter reaches half the maximum value
+  *     @arg ETH_MMC_IT_TGFSC : When Tx good single col counter reaches half the maximum value
+  * @retval None
+  */
+#define __HAL_ETH_MMC_TX_IT_DISABLE(__HANDLE__, __INTERRUPT__)           ((__HANDLE__)->Instance->MMCRIMR |= (__INTERRUPT__))
+
+/**
+  * @brief  Enables the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT()    EXTI->IMR |= (ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Disables the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_DISABLE_IT()   EXTI->IMR &= ~(ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief Enable event on ETH External event line.
+  * @retval None.
+  */
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_EVENT()  EXTI->EMR |= (ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief Disable event on ETH External event line
+  * @retval None.
+  */
+#define __HAL_ETH_WAKEUP_EXTI_DISABLE_EVENT() EXTI->EMR &= ~(ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Get flag of the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG()     EXTI->PR & (ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Clear flag of the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG()   EXTI->PR = (ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Enables rising edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER()  EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP
+
+/**
+  * @brief  Disables the rising edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_DISABLE_RISING_EDGE_TRIGGER()  EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Enables falling edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER()  EXTI->FTSR |= (ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Disables falling edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLING_EDGE_TRIGGER()  EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP)
+
+/**
+  * @brief  Enables rising/falling edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER()  do{EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP;\
+                                                                 EXTI->FTSR |= ETH_EXTI_LINE_WAKEUP;\
+                                                                }while(0U)
+
+/**
+  * @brief  Disables rising/falling edge trigger to the ETH External interrupt line.
+  * @retval None
+  */
+#define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLINGRISING_TRIGGER() do{EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP);\
+                                                                 EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP);\
+                                                                }while(0U)
+
+/**
+  * @brief Generate a Software interrupt on selected EXTI line.
+  * @retval None.
+  */
+#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT()                  EXTI->SWIER|= ETH_EXTI_LINE_WAKEUP
+
+/**
+  * @}
+  */
+/* Exported functions --------------------------------------------------------*/
+
+/** @addtogroup ETH_Exported_Functions
+  * @{
+  */
+
+/* Initialization and de-initialization functions  ****************************/
+
+/** @addtogroup ETH_Exported_Functions_Group1
+  * @{
+  */
+HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth);
+void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
+void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t* TxBuff, uint32_t TxBuffCount);
+HAL_StatusTypeDef HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount);
+/* Callbacks Register/UnRegister functions  ***********************************/
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID, pETH_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_ETH_UnRegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+/**
+  * @}
+  */
+/* IO operation functions  ****************************************************/
+
+/** @addtogroup ETH_Exported_Functions_Group2
+  * @{
+  */
+HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength);
+HAL_StatusTypeDef HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth);
+/* Communication with PHY functions*/
+HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue);
+HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t RegValue);
+/* Non-Blocking mode: Interrupt */
+HAL_StatusTypeDef HAL_ETH_GetReceivedFrame_IT(ETH_HandleTypeDef *heth);
+void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
+/* Callback in non blocking modes (Interrupt) */
+void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
+void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
+void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
+/**
+  * @}
+  */
+
+/* Peripheral Control functions  **********************************************/
+
+/** @addtogroup ETH_Exported_Functions_Group3
+  * @{
+  */
+
+HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_ConfigMAC(ETH_HandleTypeDef *heth, ETH_MACInitTypeDef *macconf);
+HAL_StatusTypeDef HAL_ETH_ConfigDMA(ETH_HandleTypeDef *heth, ETH_DMAInitTypeDef *dmaconf);
+/**
+  * @}
+  */
+
+/* Peripheral State functions  ************************************************/
+
+/** @addtogroup ETH_Exported_Functions_Group4
+  * @{
+  */
+HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth);
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx ||\
+          STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_HAL_ETH_LEGACY_H */
diff --git a/Inc/stm32_assert_template.h b/Inc/stm32_assert_template.h
index 4711b65..3ae73f0 100644
--- a/Inc/stm32_assert_template.h
+++ b/Inc/stm32_assert_template.h
@@ -8,13 +8,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -54,4 +53,4 @@
 #endif /* __STM32_ASSERT_H */
 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Inc/stm32f4xx_hal.h b/Inc/stm32f4xx_hal.h
index 209864d..f7eb847 100644
--- a/Inc/stm32f4xx_hal.h
+++ b/Inc/stm32f4xx_hal.h
@@ -7,13 +7,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -295,4 +294,4 @@
 
 #endif /* __STM32F4xx_HAL_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Inc/stm32f4xx_hal_adc.h b/Inc/stm32f4xx_hal_adc.h
index a041e76..ce95f08 100644
--- a/Inc/stm32f4xx_hal_adc.h
+++ b/Inc/stm32f4xx_hal_adc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -897,4 +896,3 @@
 #endif /*__STM32F4xx_ADC_H */
 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_adc_ex.h b/Inc/stm32f4xx_hal_adc_ex.h
index b0cdd2a..515435f 100644
--- a/Inc/stm32f4xx_hal_adc_ex.h
+++ b/Inc/stm32f4xx_hal_adc_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -406,4 +405,3 @@
 #endif /*__STM32F4xx_ADC_EX_H */
 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_can.h b/Inc/stm32f4xx_hal_can.h
index 062abd6..aa4a40d 100644
--- a/Inc/stm32f4xx_hal_can.h
+++ b/Inc/stm32f4xx_hal_can.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -843,6 +842,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_CAN_H */
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_cec.h b/Inc/stm32f4xx_hal_cec.h
index 9041577..9d6c226 100644
--- a/Inc/stm32f4xx_hal_cec.h
+++ b/Inc/stm32f4xx_hal_cec.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -105,7 +104,7 @@
   uint16_t  OwnAddress;                 /*!< Own addresses configuration
                                              This parameter can be a value of @ref CEC_OWN_ADDRESS */
 
-  uint8_t  *RxBuffer;                    /*!< CEC Rx buffer pointeur */
+  uint8_t  *RxBuffer;                    /*!< CEC Rx buffer pointer */
 
 
 } CEC_InitTypeDef;
@@ -791,4 +790,3 @@
 
 #endif /* STM32F4xxHAL_CEC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_conf_template.h b/Inc/stm32f4xx_hal_conf_template.h
index afa2f56..d32595f 100644
--- a/Inc/stm32f4xx_hal_conf_template.h
+++ b/Inc/stm32f4xx_hal_conf_template.h
@@ -8,13 +8,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -498,4 +497,4 @@
 #endif /* __STM32F4xx_HAL_CONF_H */
  
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Inc/stm32f4xx_hal_cortex.h b/Inc/stm32f4xx_hal_cortex.h
index 95218cf..fdc96b5 100644
--- a/Inc/stm32f4xx_hal_cortex.h
+++ b/Inc/stm32f4xx_hal_cortex.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -407,4 +405,3 @@
 #endif /* __STM32F4xx_HAL_CORTEX_H */
  
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_crc.h b/Inc/stm32f4xx_hal_crc.h
index bbd58a5..41edbe3 100644
--- a/Inc/stm32f4xx_hal_crc.h
+++ b/Inc/stm32f4xx_hal_crc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -180,5 +179,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_CRC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_cryp.h b/Inc/stm32f4xx_hal_cryp.h
index 8596fe7..960e1c7 100644
--- a/Inc/stm32f4xx_hal_cryp.h
+++ b/Inc/stm32f4xx_hal_cryp.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -682,4 +681,3 @@
 
 #endif /* __STM32F4xx_HAL_CRYP_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_cryp_ex.h b/Inc/stm32f4xx_hal_cryp_ex.h
index 251e94b..dd12742 100644
--- a/Inc/stm32f4xx_hal_cryp_ex.h
+++ b/Inc/stm32f4xx_hal_cryp_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -141,4 +140,3 @@
 
 #endif /* __STM32F4xx_HAL_CRYP_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dac.h b/Inc/stm32f4xx_hal_dac.h
index abd8544..a79ca73 100644
--- a/Inc/stm32f4xx_hal_dac.h
+++ b/Inc/stm32f4xx_hal_dac.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -479,4 +478,3 @@
 
 #endif /* STM32F4xx_HAL_DAC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dac_ex.h b/Inc/stm32f4xx_hal_dac_ex.h
index 03159d4..db10990 100644
--- a/Inc/stm32f4xx_hal_dac_ex.h
+++ b/Inc/stm32f4xx_hal_dac_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -204,4 +203,3 @@
 
 #endif /* STM32F4xx_HAL_DAC_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dcmi.h b/Inc/stm32f4xx_hal_dcmi.h
index 2a9edb6..b7e82dc 100644
--- a/Inc/stm32f4xx_hal_dcmi.h
+++ b/Inc/stm32f4xx_hal_dcmi.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -563,5 +561,3 @@
 #endif
 
 #endif /* __STM32F4xx_HAL_DCMI_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dcmi_ex.h b/Inc/stm32f4xx_hal_dcmi_ex.h
index 9bc942d..b4f181c 100644
--- a/Inc/stm32f4xx_hal_dcmi_ex.h
+++ b/Inc/stm32f4xx_hal_dcmi_ex.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -208,5 +206,3 @@
 #endif
 
 #endif /* __STM32F4xx_HAL_DCMI_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_def.h b/Inc/stm32f4xx_hal_def.h
index 975f70b..f9bbec2 100644
--- a/Inc/stm32f4xx_hal_def.h
+++ b/Inc/stm32f4xx_hal_def.h
@@ -7,13 +7,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -208,4 +207,4 @@
 
 #endif /* ___STM32F4xx_HAL_DEF */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Inc/stm32f4xx_hal_dfsdm.h b/Inc/stm32f4xx_hal_dfsdm.h
index 09c6551..016fd30 100644
--- a/Inc/stm32f4xx_hal_dfsdm.h
+++ b/Inc/stm32f4xx_hal_dfsdm.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -59,7 +58,7 @@
 {
   FunctionalState Activation; /*!< Output clock enable/disable */
   uint32_t        Selection;  /*!< Output clock is system clock or audio clock.
-                                   This parameter can be a value of @ref DFSDM_Channel_OuputClock */
+                                   This parameter can be a value of @ref DFSDM_Channel_OutputClock */
   uint32_t        Divider;    /*!< Output clock divider.
                                    This parameter must be a number between Min_Data = 2 and Max_Data = 256 */
 }DFSDM_Channel_OutputClockTypeDef;
@@ -333,11 +332,11 @@
   * @{
   */
 
-/** @defgroup DFSDM_Channel_OuputClock DFSDM channel output clock selection
+/** @defgroup DFSDM_Channel_OutputClock DFSDM channel output clock selection
   * @{
   */
-#define DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM    0x00000000U             /*!< Source for ouput clock is system clock */
-#define DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO     DFSDM_CHCFGR1_CKOUTSRC  /*!< Source for ouput clock is audio clock */
+#define DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM    0x00000000U             /*!< Source for output clock is system clock */
+#define DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO     DFSDM_CHCFGR1_CKOUTSRC  /*!< Source for output clock is audio clock */
 /**
   * @}
   */
@@ -1140,5 +1139,3 @@
 #endif
 
 #endif /* __STM32F4xx_HAL_DFSDM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dma.h b/Inc/stm32f4xx_hal_dma.h
index 90dd292..7ff3836 100644
--- a/Inc/stm32f4xx_hal_dma.h
+++ b/Inc/stm32f4xx_hal_dma.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -801,4 +800,3 @@
 
 #endif /* __STM32F4xx_HAL_DMA_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dma2d.h b/Inc/stm32f4xx_hal_dma2d.h
index 158ed67..8967141 100644
--- a/Inc/stm32f4xx_hal_dma2d.h
+++ b/Inc/stm32f4xx_hal_dma2d.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -279,15 +278,6 @@
   * @}
   */
 
-/** @defgroup DMA2D_Aliases DMA2D API Aliases
-  * @{
-  */
-#define HAL_DMA2D_DisableCLUT       HAL_DMA2D_CLUTLoading_Abort    /*!< Aliased to HAL_DMA2D_CLUTLoading_Abort 
-                                                                        for compatibility with legacy code */
-/**
-  * @}
-  */
-
 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1)
 /**
   * @brief  HAL DMA2D common Callback ID enumeration definition
@@ -646,6 +636,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_DMA2D_H */
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dma_ex.h b/Inc/stm32f4xx_hal_dma_ex.h
index 2e60aff..9858c74 100644
--- a/Inc/stm32f4xx_hal_dma_ex.h
+++ b/Inc/stm32f4xx_hal_dma_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -101,4 +100,3 @@
 
 #endif /*__STM32F4xx_HAL_DMA_EX_H*/
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_dsi.h b/Inc/stm32f4xx_hal_dsi.h
index 716dea1..6da9668 100644
--- a/Inc/stm32f4xx_hal_dsi.h
+++ b/Inc/stm32f4xx_hal_dsi.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -40,6 +39,9 @@
   */
 
 /* Exported types ------------------------------------------------------------*/
+/** @defgroup DSI_Exported_Types DSI Exported Types
+  * @{
+  */
 /**
   * @brief  DSI Init Structure definition
   */
@@ -61,14 +63,14 @@
   */
 typedef struct
 {
-  uint32_t PLLNDIV;                      /*!< PLL Loop Division Factor
-                                              This parameter must be a value between 10 and 125   */
+  uint32_t PLLNDIV;                 /*!< PLL Loop Division Factor
+                                         This parameter must be a value between 10 and 125                    */
 
-  uint32_t PLLIDF;                       /*!< PLL Input Division Factor
-                                              This parameter can be any value of @ref DSI_PLL_IDF */
+  uint32_t PLLIDF;                  /*!< PLL Input Division Factor
+                                         This parameter can be any value of @ref DSI_PLL_IDF                  */
 
-  uint32_t PLLODF;                       /*!< PLL Output Division Factor
-                                              This parameter can be any value of @ref DSI_PLL_ODF */
+  uint32_t PLLODF;                  /*!< PLL Output Division Factor
+                                         This parameter can be any value of @ref DSI_PLL_ODF                  */
 
 } DSI_PLLInitTypeDef;
 
@@ -346,6 +348,9 @@
 typedef  void (*pDSI_CallbackTypeDef)(DSI_HandleTypeDef *hdsi);  /*!< pointer to an DSI callback function */
 
 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
 
 /* Exported constants --------------------------------------------------------*/
 /** @defgroup DSI_Exported_Constants DSI Exported Constants
@@ -700,8 +705,8 @@
 #define DSI_FLOW_CONTROL_BTA       DSI_PCR_BTAE
 #define DSI_FLOW_CONTROL_EOTP_RX   DSI_PCR_ETRXE
 #define DSI_FLOW_CONTROL_EOTP_TX   DSI_PCR_ETTXE
-#define DSI_FLOW_CONTROL_ALL       (DSI_FLOW_CONTROL_CRC_RX | DSI_FLOW_CONTROL_ECC_RX | \
-                                    DSI_FLOW_CONTROL_BTA | DSI_FLOW_CONTROL_EOTP_RX | \
+#define DSI_FLOW_CONTROL_ALL       (DSI_FLOW_CONTROL_CRC_RX | DSI_FLOW_CONTROL_ECC_RX  | \
+                                    DSI_FLOW_CONTROL_BTA    | DSI_FLOW_CONTROL_EOTP_RX | \
                                     DSI_FLOW_CONTROL_EOTP_TX)
 /**
   * @}
@@ -841,18 +846,18 @@
   * @{
   */
 #define HAL_DSI_ERROR_NONE              0U
-#define HAL_DSI_ERROR_ACK               0x00000001U /*!< acknowledge errors          */
-#define HAL_DSI_ERROR_PHY               0x00000002U /*!< PHY related errors          */
-#define HAL_DSI_ERROR_TX                0x00000004U /*!< transmission error          */
-#define HAL_DSI_ERROR_RX                0x00000008U /*!< reception error             */
-#define HAL_DSI_ERROR_ECC               0x00000010U /*!< ECC errors                  */
-#define HAL_DSI_ERROR_CRC               0x00000020U /*!< CRC error                   */
-#define HAL_DSI_ERROR_PSE               0x00000040U /*!< Packet Size error           */
-#define HAL_DSI_ERROR_EOT               0x00000080U /*!< End Of Transmission error   */
-#define HAL_DSI_ERROR_OVF               0x00000100U /*!< FIFO overflow error         */
-#define HAL_DSI_ERROR_GEN               0x00000200U /*!< Generic FIFO related errors */
+#define HAL_DSI_ERROR_ACK               0x00000001U /*!< Acknowledge errors             */
+#define HAL_DSI_ERROR_PHY               0x00000002U /*!< PHY related errors             */
+#define HAL_DSI_ERROR_TX                0x00000004U /*!< Transmission error             */
+#define HAL_DSI_ERROR_RX                0x00000008U /*!< Reception error                */
+#define HAL_DSI_ERROR_ECC               0x00000010U /*!< ECC errors                     */
+#define HAL_DSI_ERROR_CRC               0x00000020U /*!< CRC error                      */
+#define HAL_DSI_ERROR_PSE               0x00000040U /*!< Packet Size error              */
+#define HAL_DSI_ERROR_EOT               0x00000080U /*!< End Of Transmission error      */
+#define HAL_DSI_ERROR_OVF               0x00000100U /*!< FIFO overflow error            */
+#define HAL_DSI_ERROR_GEN               0x00000200U /*!< Generic FIFO related errors    */
 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
-#define HAL_DSI_ERROR_INVALID_CALLBACK  0x00000400U /*!< DSI Invalid Callback error  */
+#define HAL_DSI_ERROR_INVALID_CALLBACK  0x00000400U /*!< DSI Invalid Callback error      */
 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
 /**
   * @}
@@ -912,6 +917,7 @@
   * @}
   */
 
+
 /**
   * @}
   */
@@ -955,11 +961,11 @@
   * @retval None.
   */
 #define __HAL_DSI_DISABLE(__HANDLE__) do { \
-                                          __IO uint32_t tmpreg = 0x00U; \
-                                          CLEAR_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
-                                          /* Delay after an DSI Host disabling */ \
-                                          tmpreg = READ_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
-                                          UNUSED(tmpreg); \
+                                           __IO uint32_t tmpreg = 0x00U; \
+                                           CLEAR_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
+                                           /* Delay after an DSI Host disabling */ \
+                                           tmpreg = READ_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
+                                           UNUSED(tmpreg); \
                                          } while(0U)
 
 /**
@@ -968,11 +974,11 @@
   * @retval None.
   */
 #define __HAL_DSI_WRAPPER_ENABLE(__HANDLE__) do { \
-                                                 __IO uint32_t tmpreg = 0x00U; \
-                                                 SET_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
-                                                 /* Delay after an DSI warpper enabling */ \
-                                                 tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
-                                                 UNUSED(tmpreg); \
+                                                  __IO uint32_t tmpreg = 0x00U; \
+                                                  SET_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
+                                                  /* Delay after an DSI warpper enabling */ \
+                                                  tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
+                                                  UNUSED(tmpreg); \
                                                 } while(0U)
 
 /**
@@ -981,11 +987,11 @@
   * @retval None.
   */
 #define __HAL_DSI_WRAPPER_DISABLE(__HANDLE__) do { \
-                                                  __IO uint32_t tmpreg = 0x00U; \
-                                                  CLEAR_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
-                                                  /* Delay after an DSI warpper disabling*/ \
-                                                  tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
-                                                  UNUSED(tmpreg); \
+                                                   __IO uint32_t tmpreg = 0x00U; \
+                                                   CLEAR_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
+                                                   /* Delay after an DSI warpper disabling*/ \
+                                                   tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
+                                                   UNUSED(tmpreg); \
                                                  } while(0U)
 
 /**
@@ -994,11 +1000,11 @@
   * @retval None.
   */
 #define __HAL_DSI_PLL_ENABLE(__HANDLE__) do { \
-                                             __IO uint32_t tmpreg = 0x00U; \
-                                             SET_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
-                                             /* Delay after an DSI PLL enabling */ \
-                                             tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
-                                             UNUSED(tmpreg); \
+                                              __IO uint32_t tmpreg = 0x00U; \
+                                              SET_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
+                                              /* Delay after an DSI PLL enabling */ \
+                                              tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
+                                              UNUSED(tmpreg); \
                                             } while(0U)
 
 /**
@@ -1007,11 +1013,11 @@
   * @retval None.
   */
 #define __HAL_DSI_PLL_DISABLE(__HANDLE__) do { \
-                                              __IO uint32_t tmpreg = 0x00U; \
-                                              CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
-                                              /* Delay after an DSI PLL disabling */ \
-                                              tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
-                                              UNUSED(tmpreg); \
+                                               __IO uint32_t tmpreg = 0x00U; \
+                                               CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
+                                               /* Delay after an DSI PLL disabling */ \
+                                               tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
+                                               UNUSED(tmpreg); \
                                              } while(0U)
 
 /**
@@ -1033,11 +1039,11 @@
   * @retval None.
   */
 #define __HAL_DSI_REG_DISABLE(__HANDLE__) do { \
-                                              __IO uint32_t tmpreg = 0x00U; \
-                                              CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
-                                              /* Delay after an DSI regulator disabling */ \
-                                              tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
-                                              UNUSED(tmpreg); \
+                                               __IO uint32_t tmpreg = 0x00U; \
+                                               CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
+                                               /* Delay after an DSI regulator disabling */ \
+                                               tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
+                                               UNUSED(tmpreg); \
                                              } while(0U)
 
 /**
@@ -1121,23 +1127,41 @@
 /** @defgroup DSI_Exported_Functions DSI Exported Functions
   * @{
   */
+/** @defgroup DSI_Group1 Initialization and Configuration functions
+  *  @brief   Initialization and Configuration functions
+  * @{
+  */
 HAL_StatusTypeDef HAL_DSI_Init(DSI_HandleTypeDef *hdsi, DSI_PLLInitTypeDef *PLLInit);
 HAL_StatusTypeDef HAL_DSI_DeInit(DSI_HandleTypeDef *hdsi);
 void HAL_DSI_MspInit(DSI_HandleTypeDef *hdsi);
 void HAL_DSI_MspDeInit(DSI_HandleTypeDef *hdsi);
-
-void HAL_DSI_IRQHandler(DSI_HandleTypeDef *hdsi);
-void HAL_DSI_TearingEffectCallback(DSI_HandleTypeDef *hdsi);
-void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi);
-void HAL_DSI_ErrorCallback(DSI_HandleTypeDef *hdsi);
-
+HAL_StatusTypeDef HAL_DSI_ConfigErrorMonitor(DSI_HandleTypeDef *hdsi, uint32_t ActiveErrors);
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
 HAL_StatusTypeDef HAL_DSI_RegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID,
                                            pDSI_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_DSI_UnRegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID);
 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
+/**
+  * @}
+  */
 
+/** @defgroup DSI_Group2 IO operation functions
+  *  @brief    IO operation functions
+  * @{
+  */
+void HAL_DSI_IRQHandler(DSI_HandleTypeDef *hdsi);
+void HAL_DSI_TearingEffectCallback(DSI_HandleTypeDef *hdsi);
+void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi);
+void HAL_DSI_ErrorCallback(DSI_HandleTypeDef *hdsi);
+/**
+  * @}
+  */
+
+/** @defgroup DSI_Group3 Peripheral Control functions
+  *  @brief    Peripheral Control functions
+  * @{
+  */
 HAL_StatusTypeDef HAL_DSI_SetGenericVCID(DSI_HandleTypeDef *hdsi, uint32_t VirtualChannelID);
 HAL_StatusTypeDef HAL_DSI_ConfigVideoMode(DSI_HandleTypeDef *hdsi, DSI_VidCfgTypeDef *VidCfg);
 HAL_StatusTypeDef HAL_DSI_ConfigAdaptedCommandMode(DSI_HandleTypeDef *hdsi, DSI_CmdCfgTypeDef *CmdCfg);
@@ -1190,40 +1214,28 @@
 HAL_StatusTypeDef HAL_DSI_SetPullDown(DSI_HandleTypeDef *hdsi, FunctionalState State);
 HAL_StatusTypeDef HAL_DSI_SetContentionDetectionOff(DSI_HandleTypeDef *hdsi, FunctionalState State);
 
+/**
+  * @}
+  */
+
+/** @defgroup DSI_Group4 Peripheral State and Errors functions
+  *  @brief    Peripheral State and Errors functions
+  * @{
+  */
 uint32_t HAL_DSI_GetError(DSI_HandleTypeDef *hdsi);
-HAL_StatusTypeDef HAL_DSI_ConfigErrorMonitor(DSI_HandleTypeDef *hdsi, uint32_t ActiveErrors);
 HAL_DSI_StateTypeDef HAL_DSI_GetState(DSI_HandleTypeDef *hdsi);
+
+/**
+  * @}
+  */
+
 /**
   * @}
   */
 
 /* Private types -------------------------------------------------------------*/
-/** @defgroup DSI_Private_Types DSI Private Types
-  * @{
-  */
-
-/**
-  * @}
-  */
-
 /* Private defines -----------------------------------------------------------*/
-/** @defgroup DSI_Private_Defines DSI Private Defines
-  * @{
-  */
-
-/**
-  * @}
-  */
-
 /* Private variables ---------------------------------------------------------*/
-/** @defgroup DSI_Private_Variables DSI Private Variables
-  * @{
-  */
-
-/**
-  * @}
-  */
-
 /* Private constants ---------------------------------------------------------*/
 /** @defgroup DSI_Private_Constants DSI Private Constants
   * @{
@@ -1249,45 +1261,73 @@
                                                      ((ODF) == DSI_PLL_OUT_DIV2) || \
                                                      ((ODF) == DSI_PLL_OUT_DIV4) || \
                                                      ((ODF) == DSI_PLL_OUT_DIV8))
-#define IS_DSI_AUTO_CLKLANE_CONTROL(AutoClkLane)    (((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_DISABLE) || ((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_ENABLE))
-#define IS_DSI_NUMBER_OF_LANES(NumberOfLanes)       (((NumberOfLanes) == DSI_ONE_DATA_LANE) || ((NumberOfLanes) == DSI_TWO_DATA_LANES))
+#define IS_DSI_AUTO_CLKLANE_CONTROL(AutoClkLane)    (((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_DISABLE)\
+                                                     || ((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_ENABLE))
+#define IS_DSI_NUMBER_OF_LANES(NumberOfLanes)       (((NumberOfLanes) == DSI_ONE_DATA_LANE)\
+                                                     || ((NumberOfLanes) == DSI_TWO_DATA_LANES))
 #define IS_DSI_FLOW_CONTROL(FlowControl)            (((FlowControl) | DSI_FLOW_CONTROL_ALL) == DSI_FLOW_CONTROL_ALL)
 #define IS_DSI_COLOR_CODING(ColorCoding)            ((ColorCoding) <= 5U)
-#define IS_DSI_LOOSELY_PACKED(LooselyPacked)        (((LooselyPacked) == DSI_LOOSELY_PACKED_ENABLE) || ((LooselyPacked) == DSI_LOOSELY_PACKED_DISABLE))
-#define IS_DSI_DE_POLARITY(DataEnable)              (((DataEnable) == DSI_DATA_ENABLE_ACTIVE_HIGH) || ((DataEnable) == DSI_DATA_ENABLE_ACTIVE_LOW))
-#define IS_DSI_VSYNC_POLARITY(VSYNC)                (((VSYNC) == DSI_VSYNC_ACTIVE_HIGH) || ((VSYNC) == DSI_VSYNC_ACTIVE_LOW))
-#define IS_DSI_HSYNC_POLARITY(HSYNC)                (((HSYNC) == DSI_HSYNC_ACTIVE_HIGH) || ((HSYNC) == DSI_HSYNC_ACTIVE_LOW))
+#define IS_DSI_LOOSELY_PACKED(LooselyPacked)        (((LooselyPacked) == DSI_LOOSELY_PACKED_ENABLE)\
+                                                     || ((LooselyPacked) == DSI_LOOSELY_PACKED_DISABLE))
+#define IS_DSI_DE_POLARITY(DataEnable)              (((DataEnable) == DSI_DATA_ENABLE_ACTIVE_HIGH)\
+                                                     || ((DataEnable) == DSI_DATA_ENABLE_ACTIVE_LOW))
+#define IS_DSI_VSYNC_POLARITY(VSYNC)                (((VSYNC) == DSI_VSYNC_ACTIVE_HIGH)\
+                                                     || ((VSYNC) == DSI_VSYNC_ACTIVE_LOW))
+#define IS_DSI_HSYNC_POLARITY(HSYNC)                (((HSYNC) == DSI_HSYNC_ACTIVE_HIGH)\
+                                                     || ((HSYNC) == DSI_HSYNC_ACTIVE_LOW))
 #define IS_DSI_VIDEO_MODE_TYPE(VideoModeType)       (((VideoModeType) == DSI_VID_MODE_NB_PULSES) || \
                                                      ((VideoModeType) == DSI_VID_MODE_NB_EVENTS) || \
                                                      ((VideoModeType) == DSI_VID_MODE_BURST))
-#define IS_DSI_COLOR_MODE(ColorMode)                (((ColorMode) == DSI_COLOR_MODE_FULL) || ((ColorMode) == DSI_COLOR_MODE_EIGHT))
+#define IS_DSI_COLOR_MODE(ColorMode)                (((ColorMode) == DSI_COLOR_MODE_FULL)\
+                                                     || ((ColorMode) == DSI_COLOR_MODE_EIGHT))
 #define IS_DSI_SHUT_DOWN(ShutDown)                  (((ShutDown) == DSI_DISPLAY_ON) || ((ShutDown) == DSI_DISPLAY_OFF))
-#define IS_DSI_LP_COMMAND(LPCommand)                (((LPCommand) == DSI_LP_COMMAND_DISABLE) || ((LPCommand) == DSI_LP_COMMAND_ENABLE))
+#define IS_DSI_LP_COMMAND(LPCommand)                (((LPCommand) == DSI_LP_COMMAND_DISABLE)\
+                                                     || ((LPCommand) == DSI_LP_COMMAND_ENABLE))
 #define IS_DSI_LP_HFP(LPHFP)                        (((LPHFP) == DSI_LP_HFP_DISABLE) || ((LPHFP) == DSI_LP_HFP_ENABLE))
 #define IS_DSI_LP_HBP(LPHBP)                        (((LPHBP) == DSI_LP_HBP_DISABLE) || ((LPHBP) == DSI_LP_HBP_ENABLE))
-#define IS_DSI_LP_VACTIVE(LPVActive)                (((LPVActive) == DSI_LP_VACT_DISABLE) || ((LPVActive) == DSI_LP_VACT_ENABLE))
+#define IS_DSI_LP_VACTIVE(LPVActive)                (((LPVActive) == DSI_LP_VACT_DISABLE)\
+                                                     || ((LPVActive) == DSI_LP_VACT_ENABLE))
 #define IS_DSI_LP_VFP(LPVFP)                        (((LPVFP) == DSI_LP_VFP_DISABLE) || ((LPVFP) == DSI_LP_VFP_ENABLE))
 #define IS_DSI_LP_VBP(LPVBP)                        (((LPVBP) == DSI_LP_VBP_DISABLE) || ((LPVBP) == DSI_LP_VBP_ENABLE))
-#define IS_DSI_LP_VSYNC(LPVSYNC)                    (((LPVSYNC) == DSI_LP_VSYNC_DISABLE) || ((LPVSYNC) == DSI_LP_VSYNC_ENABLE))
-#define IS_DSI_FBTAA(FrameBTAAcknowledge)           (((FrameBTAAcknowledge) == DSI_FBTAA_DISABLE) || ((FrameBTAAcknowledge) == DSI_FBTAA_ENABLE))
+#define IS_DSI_LP_VSYNC(LPVSYNC)                    (((LPVSYNC) == DSI_LP_VSYNC_DISABLE)\
+                                                     || ((LPVSYNC) == DSI_LP_VSYNC_ENABLE))
+#define IS_DSI_FBTAA(FrameBTAAcknowledge)           (((FrameBTAAcknowledge) == DSI_FBTAA_DISABLE)\
+                                                     || ((FrameBTAAcknowledge) == DSI_FBTAA_ENABLE))
 #define IS_DSI_TE_SOURCE(TESource)                  (((TESource) == DSI_TE_DSILINK) || ((TESource) == DSI_TE_EXTERNAL))
-#define IS_DSI_TE_POLARITY(TEPolarity)              (((TEPolarity) == DSI_TE_RISING_EDGE) || ((TEPolarity) == DSI_TE_FALLING_EDGE))
-#define IS_DSI_AUTOMATIC_REFRESH(AutomaticRefresh)  (((AutomaticRefresh) == DSI_AR_DISABLE) || ((AutomaticRefresh) == DSI_AR_ENABLE))
-#define IS_DSI_VS_POLARITY(VSPolarity)              (((VSPolarity) == DSI_VSYNC_FALLING) || ((VSPolarity) == DSI_VSYNC_RISING))
-#define IS_DSI_TE_ACK_REQUEST(TEAcknowledgeRequest) (((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_DISABLE) || ((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_ENABLE))
-#define IS_DSI_ACK_REQUEST(AcknowledgeRequest)      (((AcknowledgeRequest) == DSI_ACKNOWLEDGE_DISABLE) || ((AcknowledgeRequest) == DSI_ACKNOWLEDGE_ENABLE))
-#define IS_DSI_LP_GSW0P(LP_GSW0P)                   (((LP_GSW0P) == DSI_LP_GSW0P_DISABLE) || ((LP_GSW0P) == DSI_LP_GSW0P_ENABLE))
-#define IS_DSI_LP_GSW1P(LP_GSW1P)                   (((LP_GSW1P) == DSI_LP_GSW1P_DISABLE) || ((LP_GSW1P) == DSI_LP_GSW1P_ENABLE))
-#define IS_DSI_LP_GSW2P(LP_GSW2P)                   (((LP_GSW2P) == DSI_LP_GSW2P_DISABLE) || ((LP_GSW2P) == DSI_LP_GSW2P_ENABLE))
-#define IS_DSI_LP_GSR0P(LP_GSR0P)                   (((LP_GSR0P) == DSI_LP_GSR0P_DISABLE) || ((LP_GSR0P) == DSI_LP_GSR0P_ENABLE))
-#define IS_DSI_LP_GSR1P(LP_GSR1P)                   (((LP_GSR1P) == DSI_LP_GSR1P_DISABLE) || ((LP_GSR1P) == DSI_LP_GSR1P_ENABLE))
-#define IS_DSI_LP_GSR2P(LP_GSR2P)                   (((LP_GSR2P) == DSI_LP_GSR2P_DISABLE) || ((LP_GSR2P) == DSI_LP_GSR2P_ENABLE))
-#define IS_DSI_LP_GLW(LP_GLW)                       (((LP_GLW) == DSI_LP_GLW_DISABLE) || ((LP_GLW) == DSI_LP_GLW_ENABLE))
-#define IS_DSI_LP_DSW0P(LP_DSW0P)                   (((LP_DSW0P) == DSI_LP_DSW0P_DISABLE) || ((LP_DSW0P) == DSI_LP_DSW0P_ENABLE))
-#define IS_DSI_LP_DSW1P(LP_DSW1P)                   (((LP_DSW1P) == DSI_LP_DSW1P_DISABLE) || ((LP_DSW1P) == DSI_LP_DSW1P_ENABLE))
-#define IS_DSI_LP_DSR0P(LP_DSR0P)                   (((LP_DSR0P) == DSI_LP_DSR0P_DISABLE) || ((LP_DSR0P) == DSI_LP_DSR0P_ENABLE))
-#define IS_DSI_LP_DLW(LP_DLW)                       (((LP_DLW) == DSI_LP_DLW_DISABLE) || ((LP_DLW) == DSI_LP_DLW_ENABLE))
-#define IS_DSI_LP_MRDP(LP_MRDP)                     (((LP_MRDP) == DSI_LP_MRDP_DISABLE) || ((LP_MRDP) == DSI_LP_MRDP_ENABLE))
+#define IS_DSI_TE_POLARITY(TEPolarity)              (((TEPolarity) == DSI_TE_RISING_EDGE)\
+                                                     || ((TEPolarity) == DSI_TE_FALLING_EDGE))
+#define IS_DSI_AUTOMATIC_REFRESH(AutomaticRefresh)  (((AutomaticRefresh) == DSI_AR_DISABLE)\
+                                                     || ((AutomaticRefresh) == DSI_AR_ENABLE))
+#define IS_DSI_VS_POLARITY(VSPolarity)              (((VSPolarity) == DSI_VSYNC_FALLING)\
+                                                     || ((VSPolarity) == DSI_VSYNC_RISING))
+#define IS_DSI_TE_ACK_REQUEST(TEAcknowledgeRequest) (((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_DISABLE)\
+                                                     || ((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_ENABLE))
+#define IS_DSI_ACK_REQUEST(AcknowledgeRequest)      (((AcknowledgeRequest) == DSI_ACKNOWLEDGE_DISABLE)\
+                                                     || ((AcknowledgeRequest) == DSI_ACKNOWLEDGE_ENABLE))
+#define IS_DSI_LP_GSW0P(LP_GSW0P)                   (((LP_GSW0P) == DSI_LP_GSW0P_DISABLE)\
+                                                     || ((LP_GSW0P) == DSI_LP_GSW0P_ENABLE))
+#define IS_DSI_LP_GSW1P(LP_GSW1P)                   (((LP_GSW1P) == DSI_LP_GSW1P_DISABLE)\
+                                                     || ((LP_GSW1P) == DSI_LP_GSW1P_ENABLE))
+#define IS_DSI_LP_GSW2P(LP_GSW2P)                   (((LP_GSW2P) == DSI_LP_GSW2P_DISABLE)\
+                                                     || ((LP_GSW2P) == DSI_LP_GSW2P_ENABLE))
+#define IS_DSI_LP_GSR0P(LP_GSR0P)                   (((LP_GSR0P) == DSI_LP_GSR0P_DISABLE)\
+                                                     || ((LP_GSR0P) == DSI_LP_GSR0P_ENABLE))
+#define IS_DSI_LP_GSR1P(LP_GSR1P)                   (((LP_GSR1P) == DSI_LP_GSR1P_DISABLE)\
+                                                     || ((LP_GSR1P) == DSI_LP_GSR1P_ENABLE))
+#define IS_DSI_LP_GSR2P(LP_GSR2P)                   (((LP_GSR2P) == DSI_LP_GSR2P_DISABLE)\
+                                                     || ((LP_GSR2P) == DSI_LP_GSR2P_ENABLE))
+#define IS_DSI_LP_GLW(LP_GLW)                       (((LP_GLW) == DSI_LP_GLW_DISABLE)\
+                                                     || ((LP_GLW) == DSI_LP_GLW_ENABLE))
+#define IS_DSI_LP_DSW0P(LP_DSW0P)                   (((LP_DSW0P) == DSI_LP_DSW0P_DISABLE)\
+                                                     || ((LP_DSW0P) == DSI_LP_DSW0P_ENABLE))
+#define IS_DSI_LP_DSW1P(LP_DSW1P)                   (((LP_DSW1P) == DSI_LP_DSW1P_DISABLE)\
+                                                     || ((LP_DSW1P) == DSI_LP_DSW1P_ENABLE))
+#define IS_DSI_LP_DSR0P(LP_DSR0P)                   (((LP_DSR0P) == DSI_LP_DSR0P_DISABLE)\
+                                                     || ((LP_DSR0P) == DSI_LP_DSR0P_ENABLE))
+#define IS_DSI_LP_DLW(LP_DLW)                       (((LP_DLW) == DSI_LP_DLW_DISABLE)\
+                                                     || ((LP_DLW) == DSI_LP_DLW_ENABLE))
+#define IS_DSI_LP_MRDP(LP_MRDP)                     (((LP_MRDP) == DSI_LP_MRDP_DISABLE)\
+                                                     || ((LP_MRDP) == DSI_LP_MRDP_ENABLE))
 #define IS_DSI_SHORT_WRITE_PACKET_TYPE(MODE)        (((MODE) == DSI_DCS_SHORT_PKT_WRITE_P0) || \
                                                      ((MODE) == DSI_DCS_SHORT_PKT_WRITE_P1) || \
                                                      ((MODE) == DSI_GEN_SHORT_PKT_WRITE_P0) || \
@@ -1299,10 +1339,14 @@
                                                      ((MODE) == DSI_GEN_SHORT_PKT_READ_P0) || \
                                                      ((MODE) == DSI_GEN_SHORT_PKT_READ_P1) || \
                                                      ((MODE) == DSI_GEN_SHORT_PKT_READ_P2))
-#define IS_DSI_COMMUNICATION_DELAY(CommDelay)       (((CommDelay) == DSI_SLEW_RATE_HSTX) || ((CommDelay) == DSI_SLEW_RATE_LPTX) || ((CommDelay) == DSI_HS_DELAY))
+#define IS_DSI_COMMUNICATION_DELAY(CommDelay)       (((CommDelay) == DSI_SLEW_RATE_HSTX) || \
+                                                     ((CommDelay) == DSI_SLEW_RATE_LPTX) || \
+                                                     ((CommDelay) == DSI_HS_DELAY))
 #define IS_DSI_LANE_GROUP(Lane)                     (((Lane) == DSI_CLOCK_LANE) || ((Lane) == DSI_DATA_LANES))
-#define IS_DSI_CUSTOM_LANE(CustomLane)              (((CustomLane) == DSI_SWAP_LANE_PINS) || ((CustomLane) == DSI_INVERT_HS_SIGNAL))
-#define IS_DSI_LANE(Lane)                           (((Lane) == DSI_CLOCK_LANE) || ((Lane) == DSI_DATA_LANE0) || ((Lane) == DSI_DATA_LANE1))
+#define IS_DSI_CUSTOM_LANE(CustomLane)              (((CustomLane) == DSI_SWAP_LANE_PINS)\
+                                                     || ((CustomLane) == DSI_INVERT_HS_SIGNAL))
+#define IS_DSI_LANE(Lane)                           (((Lane) == DSI_CLOCK_LANE) || \
+                                                     ((Lane) == DSI_DATA_LANE0) || ((Lane) == DSI_DATA_LANE1))
 #define IS_DSI_PHY_TIMING(Timing)                   (((Timing) == DSI_TCLK_POST   ) || \
                                                      ((Timing) == DSI_TLPX_CLK    ) || \
                                                      ((Timing) == DSI_THS_EXIT    ) || \
@@ -1317,24 +1361,6 @@
   * @}
   */
 
-/* Private functions prototypes ----------------------------------------------*/
-/** @defgroup DSI_Private_Functions_Prototypes DSI Private Functions Prototypes
-  * @{
-  */
-
-/**
-  * @}
-  */
-
-/* Private functions ---------------------------------------------------------*/
-/** @defgroup DSI_Private_Functions DSI Private Functions
-  * @{
-  */
-
-/**
-  * @}
-  */
-
 /**
   * @}
   */
@@ -1349,5 +1375,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_DSI_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_eth.h b/Inc/stm32f4xx_hal_eth.h
index a0b0ad3..af84bcb 100644
--- a/Inc/stm32f4xx_hal_eth.h
+++ b/Inc/stm32f4xx_hal_eth.h
@@ -6,641 +6,589 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_ETH_H
-#define __STM32F4xx_HAL_ETH_H
+#ifndef STM32F4xx_HAL_ETH_H
+#define STM32F4xx_HAL_ETH_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
-#if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
-    defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx)
+
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal_def.h"
 
+#if defined(ETH)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
 /** @addtogroup ETH
   * @{
-  */ 
-  
-/** @addtogroup ETH_Private_Macros
-  * @{
-  */
-#define IS_ETH_PHY_ADDRESS(ADDRESS) ((ADDRESS) <= 0x20U)
-#define IS_ETH_AUTONEGOTIATION(CMD) (((CMD) == ETH_AUTONEGOTIATION_ENABLE) || \
-                                     ((CMD) == ETH_AUTONEGOTIATION_DISABLE))
-#define IS_ETH_SPEED(SPEED) (((SPEED) == ETH_SPEED_10M) || \
-                             ((SPEED) == ETH_SPEED_100M))
-#define IS_ETH_DUPLEX_MODE(MODE)  (((MODE) == ETH_MODE_FULLDUPLEX) || \
-                                  ((MODE) == ETH_MODE_HALFDUPLEX))
-#define IS_ETH_RX_MODE(MODE)    (((MODE) == ETH_RXPOLLING_MODE) || \
-                                 ((MODE) == ETH_RXINTERRUPT_MODE)) 
-#define IS_ETH_CHECKSUM_MODE(MODE)    (((MODE) == ETH_CHECKSUM_BY_HARDWARE) || \
-                                      ((MODE) == ETH_CHECKSUM_BY_SOFTWARE))
-#define IS_ETH_MEDIA_INTERFACE(MODE)         (((MODE) == ETH_MEDIA_INTERFACE_MII) || \
-                                              ((MODE) == ETH_MEDIA_INTERFACE_RMII))
-#define IS_ETH_WATCHDOG(CMD) (((CMD) == ETH_WATCHDOG_ENABLE) || \
-                              ((CMD) == ETH_WATCHDOG_DISABLE))
-#define IS_ETH_JABBER(CMD) (((CMD) == ETH_JABBER_ENABLE) || \
-                            ((CMD) == ETH_JABBER_DISABLE))
-#define IS_ETH_INTER_FRAME_GAP(GAP) (((GAP) == ETH_INTERFRAMEGAP_96BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_88BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_80BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_72BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_64BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_56BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_48BIT) || \
-                                     ((GAP) == ETH_INTERFRAMEGAP_40BIT))
-#define IS_ETH_CARRIER_SENSE(CMD) (((CMD) == ETH_CARRIERSENCE_ENABLE) || \
-                                   ((CMD) == ETH_CARRIERSENCE_DISABLE))
-#define IS_ETH_RECEIVE_OWN(CMD) (((CMD) == ETH_RECEIVEOWN_ENABLE) || \
-                                 ((CMD) == ETH_RECEIVEOWN_DISABLE))
-#define IS_ETH_LOOPBACK_MODE(CMD) (((CMD) == ETH_LOOPBACKMODE_ENABLE) || \
-                                   ((CMD) == ETH_LOOPBACKMODE_DISABLE))
-#define IS_ETH_CHECKSUM_OFFLOAD(CMD) (((CMD) == ETH_CHECKSUMOFFLAOD_ENABLE) || \
-                                      ((CMD) == ETH_CHECKSUMOFFLAOD_DISABLE))
-#define IS_ETH_RETRY_TRANSMISSION(CMD) (((CMD) == ETH_RETRYTRANSMISSION_ENABLE) || \
-                                        ((CMD) == ETH_RETRYTRANSMISSION_DISABLE))
-#define IS_ETH_AUTOMATIC_PADCRC_STRIP(CMD) (((CMD) == ETH_AUTOMATICPADCRCSTRIP_ENABLE) || \
-                                            ((CMD) == ETH_AUTOMATICPADCRCSTRIP_DISABLE))
-#define IS_ETH_BACKOFF_LIMIT(LIMIT) (((LIMIT) == ETH_BACKOFFLIMIT_10) || \
-                                     ((LIMIT) == ETH_BACKOFFLIMIT_8) || \
-                                     ((LIMIT) == ETH_BACKOFFLIMIT_4) || \
-                                     ((LIMIT) == ETH_BACKOFFLIMIT_1))
-#define IS_ETH_DEFERRAL_CHECK(CMD) (((CMD) == ETH_DEFFERRALCHECK_ENABLE) || \
-                                    ((CMD) == ETH_DEFFERRALCHECK_DISABLE))
-#define IS_ETH_RECEIVE_ALL(CMD) (((CMD) == ETH_RECEIVEALL_ENABLE) || \
-                                 ((CMD) == ETH_RECEIVEAll_DISABLE))
-#define IS_ETH_SOURCE_ADDR_FILTER(CMD) (((CMD) == ETH_SOURCEADDRFILTER_NORMAL_ENABLE) || \
-                                        ((CMD) == ETH_SOURCEADDRFILTER_INVERSE_ENABLE) || \
-                                        ((CMD) == ETH_SOURCEADDRFILTER_DISABLE))
-#define IS_ETH_CONTROL_FRAMES(PASS) (((PASS) == ETH_PASSCONTROLFRAMES_BLOCKALL) || \
-                                     ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDALL) || \
-                                     ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER))
-#define IS_ETH_BROADCAST_FRAMES_RECEPTION(CMD) (((CMD) == ETH_BROADCASTFRAMESRECEPTION_ENABLE) || \
-                                                ((CMD) == ETH_BROADCASTFRAMESRECEPTION_DISABLE))
-#define IS_ETH_DESTINATION_ADDR_FILTER(FILTER) (((FILTER) == ETH_DESTINATIONADDRFILTER_NORMAL) || \
-                                                ((FILTER) == ETH_DESTINATIONADDRFILTER_INVERSE))
-#define IS_ETH_PROMISCUOUS_MODE(CMD) (((CMD) == ETH_PROMISCUOUS_MODE_ENABLE) || \
-                                      ((CMD) == ETH_PROMISCUOUS_MODE_DISABLE))
-#define IS_ETH_MULTICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE) || \
-                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_HASHTABLE) || \
-                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECT) || \
-                                                ((FILTER) == ETH_MULTICASTFRAMESFILTER_NONE))
-#define IS_ETH_UNICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE) || \
-                                              ((FILTER) == ETH_UNICASTFRAMESFILTER_HASHTABLE) || \
-                                              ((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECT))
-#define IS_ETH_PAUSE_TIME(TIME) ((TIME) <= 0xFFFFU)
-#define IS_ETH_ZEROQUANTA_PAUSE(CMD)   (((CMD) == ETH_ZEROQUANTAPAUSE_ENABLE) || \
-                                        ((CMD) == ETH_ZEROQUANTAPAUSE_DISABLE))
-#define IS_ETH_PAUSE_LOW_THRESHOLD(THRESHOLD) (((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS4) || \
-                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS28) || \
-                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS144) || \
-                                               ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS256))
-#define IS_ETH_UNICAST_PAUSE_FRAME_DETECT(CMD) (((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_ENABLE) || \
-                                                ((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_DISABLE))
-#define IS_ETH_RECEIVE_FLOWCONTROL(CMD) (((CMD) == ETH_RECEIVEFLOWCONTROL_ENABLE) || \
-                                         ((CMD) == ETH_RECEIVEFLOWCONTROL_DISABLE))
-#define IS_ETH_TRANSMIT_FLOWCONTROL(CMD) (((CMD) == ETH_TRANSMITFLOWCONTROL_ENABLE) || \
-                                          ((CMD) == ETH_TRANSMITFLOWCONTROL_DISABLE))
-#define IS_ETH_VLAN_TAG_COMPARISON(COMPARISON) (((COMPARISON) == ETH_VLANTAGCOMPARISON_12BIT) || \
-                                                ((COMPARISON) == ETH_VLANTAGCOMPARISON_16BIT))
-#define IS_ETH_VLAN_TAG_IDENTIFIER(IDENTIFIER) ((IDENTIFIER) <= 0xFFFFU)
-#define IS_ETH_MAC_ADDRESS0123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS0) || \
-                                         ((ADDRESS) == ETH_MAC_ADDRESS1) || \
-                                         ((ADDRESS) == ETH_MAC_ADDRESS2) || \
-                                         ((ADDRESS) == ETH_MAC_ADDRESS3))
-#define IS_ETH_MAC_ADDRESS123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS1) || \
-                                        ((ADDRESS) == ETH_MAC_ADDRESS2) || \
-                                        ((ADDRESS) == ETH_MAC_ADDRESS3))
-#define IS_ETH_MAC_ADDRESS_FILTER(FILTER) (((FILTER) == ETH_MAC_ADDRESSFILTER_SA) || \
-                                           ((FILTER) == ETH_MAC_ADDRESSFILTER_DA))
-#define IS_ETH_MAC_ADDRESS_MASK(MASK) (((MASK) == ETH_MAC_ADDRESSMASK_BYTE6) || \
-                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE5) || \
-                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE4) || \
-                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE3) || \
-                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE2) || \
-                                       ((MASK) == ETH_MAC_ADDRESSMASK_BYTE1))
-#define IS_ETH_DROP_TCPIP_CHECKSUM_FRAME(CMD) (((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE) || \
-                                               ((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE))
-#define IS_ETH_RECEIVE_STORE_FORWARD(CMD) (((CMD) == ETH_RECEIVESTOREFORWARD_ENABLE) || \
-                                           ((CMD) == ETH_RECEIVESTOREFORWARD_DISABLE))
-#define IS_ETH_FLUSH_RECEIVE_FRAME(CMD) (((CMD) == ETH_FLUSHRECEIVEDFRAME_ENABLE) || \
-                                         ((CMD) == ETH_FLUSHRECEIVEDFRAME_DISABLE))
-#define IS_ETH_TRANSMIT_STORE_FORWARD(CMD) (((CMD) == ETH_TRANSMITSTOREFORWARD_ENABLE) || \
-                                            ((CMD) == ETH_TRANSMITSTOREFORWARD_DISABLE))
-#define IS_ETH_TRANSMIT_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_64BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_128BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_192BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_256BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_40BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_32BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_24BYTES) || \
-                                                      ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_16BYTES))
-#define IS_ETH_FORWARD_ERROR_FRAMES(CMD) (((CMD) == ETH_FORWARDERRORFRAMES_ENABLE) || \
-                                          ((CMD) == ETH_FORWARDERRORFRAMES_DISABLE))
-#define IS_ETH_FORWARD_UNDERSIZED_GOOD_FRAMES(CMD) (((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE) || \
-                                                    ((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE))
-#define IS_ETH_RECEIVE_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES) || \
-                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES) || \
-                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES) || \
-                                                     ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES))
-#define IS_ETH_SECOND_FRAME_OPERATE(CMD) (((CMD) == ETH_SECONDFRAMEOPERARTE_ENABLE) || \
-                                          ((CMD) == ETH_SECONDFRAMEOPERARTE_DISABLE))
-#define IS_ETH_ADDRESS_ALIGNED_BEATS(CMD) (((CMD) == ETH_ADDRESSALIGNEDBEATS_ENABLE) || \
-                                           ((CMD) == ETH_ADDRESSALIGNEDBEATS_DISABLE))
-#define IS_ETH_FIXED_BURST(CMD) (((CMD) == ETH_FIXEDBURST_ENABLE) || \
-                                 ((CMD) == ETH_FIXEDBURST_DISABLE))
-#define IS_ETH_RXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_RXDMABURSTLENGTH_1BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_2BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_8BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_16BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_32BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_4BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_8BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_16BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_32BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_64BEAT) || \
-                                           ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_128BEAT))
-#define IS_ETH_TXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_TXDMABURSTLENGTH_1BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_2BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_8BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_16BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_32BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_4BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_8BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_16BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_32BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_64BEAT) || \
-                                           ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_128BEAT))
-#define IS_ETH_DMA_DESC_SKIP_LENGTH(LENGTH) ((LENGTH) <= 0x1FU)
-#define IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(RATIO) (((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1) || \
-                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1) || \
-                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1) || \
-                                                       ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1) || \
-                                                       ((RATIO) == ETH_DMAARBITRATION_RXPRIORTX))
-#define IS_ETH_DMATXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMATXDESC_OWN) || \
-                                         ((FLAG) == ETH_DMATXDESC_IC) || \
-                                         ((FLAG) == ETH_DMATXDESC_LS) || \
-                                         ((FLAG) == ETH_DMATXDESC_FS) || \
-                                         ((FLAG) == ETH_DMATXDESC_DC) || \
-                                         ((FLAG) == ETH_DMATXDESC_DP) || \
-                                         ((FLAG) == ETH_DMATXDESC_TTSE) || \
-                                         ((FLAG) == ETH_DMATXDESC_TER) || \
-                                         ((FLAG) == ETH_DMATXDESC_TCH) || \
-                                         ((FLAG) == ETH_DMATXDESC_TTSS) || \
-                                         ((FLAG) == ETH_DMATXDESC_IHE) || \
-                                         ((FLAG) == ETH_DMATXDESC_ES) || \
-                                         ((FLAG) == ETH_DMATXDESC_JT) || \
-                                         ((FLAG) == ETH_DMATXDESC_FF) || \
-                                         ((FLAG) == ETH_DMATXDESC_PCE) || \
-                                         ((FLAG) == ETH_DMATXDESC_LCA) || \
-                                         ((FLAG) == ETH_DMATXDESC_NC) || \
-                                         ((FLAG) == ETH_DMATXDESC_LCO) || \
-                                         ((FLAG) == ETH_DMATXDESC_EC) || \
-                                         ((FLAG) == ETH_DMATXDESC_VF) || \
-                                         ((FLAG) == ETH_DMATXDESC_CC) || \
-                                         ((FLAG) == ETH_DMATXDESC_ED) || \
-                                         ((FLAG) == ETH_DMATXDESC_UF) || \
-                                         ((FLAG) == ETH_DMATXDESC_DB))
-#define IS_ETH_DMA_TXDESC_SEGMENT(SEGMENT) (((SEGMENT) == ETH_DMATXDESC_LASTSEGMENTS) || \
-                                            ((SEGMENT) == ETH_DMATXDESC_FIRSTSEGMENT))
-#define IS_ETH_DMA_TXDESC_CHECKSUM(CHECKSUM) (((CHECKSUM) == ETH_DMATXDESC_CHECKSUMBYPASS) || \
-                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMIPV4HEADER) || \
-                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT) || \
-                                              ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL))
-#define IS_ETH_DMATXDESC_BUFFER_SIZE(SIZE) ((SIZE) <= 0x1FFFU)
-#define IS_ETH_DMARXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMARXDESC_OWN) || \
-                                         ((FLAG) == ETH_DMARXDESC_AFM) || \
-                                         ((FLAG) == ETH_DMARXDESC_ES) || \
-                                         ((FLAG) == ETH_DMARXDESC_DE) || \
-                                         ((FLAG) == ETH_DMARXDESC_SAF) || \
-                                         ((FLAG) == ETH_DMARXDESC_LE) || \
-                                         ((FLAG) == ETH_DMARXDESC_OE) || \
-                                         ((FLAG) == ETH_DMARXDESC_VLAN) || \
-                                         ((FLAG) == ETH_DMARXDESC_FS) || \
-                                         ((FLAG) == ETH_DMARXDESC_LS) || \
-                                         ((FLAG) == ETH_DMARXDESC_IPV4HCE) || \
-                                         ((FLAG) == ETH_DMARXDESC_LC) || \
-                                         ((FLAG) == ETH_DMARXDESC_FT) || \
-                                         ((FLAG) == ETH_DMARXDESC_RWT) || \
-                                         ((FLAG) == ETH_DMARXDESC_RE) || \
-                                         ((FLAG) == ETH_DMARXDESC_DBE) || \
-                                         ((FLAG) == ETH_DMARXDESC_CE) || \
-                                         ((FLAG) == ETH_DMARXDESC_MAMPCE))
-#define IS_ETH_DMA_RXDESC_BUFFER(BUFFER) (((BUFFER) == ETH_DMARXDESC_BUFFER1) || \
-                                          ((BUFFER) == ETH_DMARXDESC_BUFFER2))
-#define IS_ETH_PMT_GET_FLAG(FLAG) (((FLAG) == ETH_PMT_FLAG_WUFR) || \
-                                   ((FLAG) == ETH_PMT_FLAG_MPR))
-#define IS_ETH_DMA_FLAG(FLAG) ((((FLAG) & 0xC7FE1800U) == 0x00U) && ((FLAG) != 0x00U)) 
-#define IS_ETH_DMA_GET_FLAG(FLAG) (((FLAG) == ETH_DMA_FLAG_TST) || ((FLAG) == ETH_DMA_FLAG_PMT) || \
-                                   ((FLAG) == ETH_DMA_FLAG_MMC) || ((FLAG) == ETH_DMA_FLAG_DATATRANSFERERROR) || \
-                                   ((FLAG) == ETH_DMA_FLAG_READWRITEERROR) || ((FLAG) == ETH_DMA_FLAG_ACCESSERROR) || \
-                                   ((FLAG) == ETH_DMA_FLAG_NIS) || ((FLAG) == ETH_DMA_FLAG_AIS) || \
-                                   ((FLAG) == ETH_DMA_FLAG_ER) || ((FLAG) == ETH_DMA_FLAG_FBE) || \
-                                   ((FLAG) == ETH_DMA_FLAG_ET) || ((FLAG) == ETH_DMA_FLAG_RWT) || \
-                                   ((FLAG) == ETH_DMA_FLAG_RPS) || ((FLAG) == ETH_DMA_FLAG_RBU) || \
-                                   ((FLAG) == ETH_DMA_FLAG_R) || ((FLAG) == ETH_DMA_FLAG_TU) || \
-                                   ((FLAG) == ETH_DMA_FLAG_RO) || ((FLAG) == ETH_DMA_FLAG_TJT) || \
-                                   ((FLAG) == ETH_DMA_FLAG_TBU) || ((FLAG) == ETH_DMA_FLAG_TPS) || \
-                                   ((FLAG) == ETH_DMA_FLAG_T))
-#define IS_ETH_MAC_IT(IT) ((((IT) & 0xFFFFFDF1U) == 0x00U) && ((IT) != 0x00U))
-#define IS_ETH_MAC_GET_IT(IT) (((IT) == ETH_MAC_IT_TST) || ((IT) == ETH_MAC_IT_MMCT) || \
-                               ((IT) == ETH_MAC_IT_MMCR) || ((IT) == ETH_MAC_IT_MMC) || \
-                               ((IT) == ETH_MAC_IT_PMT))
-#define IS_ETH_MAC_GET_FLAG(FLAG) (((FLAG) == ETH_MAC_FLAG_TST) || ((FLAG) == ETH_MAC_FLAG_MMCT) || \
-                                   ((FLAG) == ETH_MAC_FLAG_MMCR) || ((FLAG) == ETH_MAC_FLAG_MMC) || \
-                                   ((FLAG) == ETH_MAC_FLAG_PMT))
-#define IS_ETH_DMA_IT(IT) ((((IT) & 0xC7FE1800U) == 0x00U) && ((IT) != 0x00U))
-#define IS_ETH_DMA_GET_IT(IT) (((IT) == ETH_DMA_IT_TST) || ((IT) == ETH_DMA_IT_PMT) || \
-                               ((IT) == ETH_DMA_IT_MMC) || ((IT) == ETH_DMA_IT_NIS) || \
-                               ((IT) == ETH_DMA_IT_AIS) || ((IT) == ETH_DMA_IT_ER) || \
-                               ((IT) == ETH_DMA_IT_FBE) || ((IT) == ETH_DMA_IT_ET) || \
-                               ((IT) == ETH_DMA_IT_RWT) || ((IT) == ETH_DMA_IT_RPS) || \
-                               ((IT) == ETH_DMA_IT_RBU) || ((IT) == ETH_DMA_IT_R) || \
-                               ((IT) == ETH_DMA_IT_TU) || ((IT) == ETH_DMA_IT_RO) || \
-                               ((IT) == ETH_DMA_IT_TJT) || ((IT) == ETH_DMA_IT_TBU) || \
-                               ((IT) == ETH_DMA_IT_TPS) || ((IT) == ETH_DMA_IT_T))
-#define IS_ETH_DMA_GET_OVERFLOW(OVERFLOW) (((OVERFLOW) == ETH_DMA_OVERFLOW_RXFIFOCOUNTER) || \
-                                           ((OVERFLOW) == ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER))
-#define IS_ETH_MMC_IT(IT) (((((IT) & 0xFFDF3FFFU) == 0x00U) || (((IT) & 0xEFFDFF9FU) == 0x00U)) && \
-                           ((IT) != 0x00U))
-#define IS_ETH_MMC_GET_IT(IT) (((IT) == ETH_MMC_IT_TGF) || ((IT) == ETH_MMC_IT_TGFMSC) || \
-                               ((IT) == ETH_MMC_IT_TGFSC) || ((IT) == ETH_MMC_IT_RGUF) || \
-                               ((IT) == ETH_MMC_IT_RFAE) || ((IT) == ETH_MMC_IT_RFCE))
-#define IS_ETH_ENHANCED_DESCRIPTOR_FORMAT(CMD) (((CMD) == ETH_DMAENHANCEDDESCRIPTOR_ENABLE) || \
-                                                ((CMD) == ETH_DMAENHANCEDDESCRIPTOR_DISABLE))
-
-/**
-  * @}
   */
 
-/** @addtogroup ETH_Private_Defines
-  * @{
-  */
-/* Delay to wait when writing to some Ethernet registers */
-#define ETH_REG_WRITE_DELAY     0x00000001U
+/* Exported types ------------------------------------------------------------*/
+#ifndef ETH_TX_DESC_CNT
+#define ETH_TX_DESC_CNT         4U
+#endif /* ETH_TX_DESC_CNT */
 
-/* ETHERNET Errors */
-#define  ETH_SUCCESS            0U
-#define  ETH_ERROR              1U
+#ifndef ETH_RX_DESC_CNT
+#define ETH_RX_DESC_CNT         4U
+#endif /* ETH_RX_DESC_CNT */
 
-/* ETHERNET DMA Tx descriptors Collision Count Shift */
-#define  ETH_DMATXDESC_COLLISION_COUNTSHIFT        3U
 
-/* ETHERNET DMA Tx descriptors Buffer2 Size Shift */
-#define  ETH_DMATXDESC_BUFFER2_SIZESHIFT           16U
-
-/* ETHERNET DMA Rx descriptors Frame Length Shift */
-#define  ETH_DMARXDESC_FRAME_LENGTHSHIFT           16U
-
-/* ETHERNET DMA Rx descriptors Buffer2 Size Shift */
-#define  ETH_DMARXDESC_BUFFER2_SIZESHIFT           16U
-
-/* ETHERNET DMA Rx descriptors Frame length Shift */
-#define  ETH_DMARXDESC_FRAMELENGTHSHIFT            16U
-
-/* ETHERNET MAC address offsets */
-#define ETH_MAC_ADDR_HBASE    (uint32_t)(ETH_MAC_BASE + 0x40U)  /* ETHERNET MAC address high offset */
-#define ETH_MAC_ADDR_LBASE    (uint32_t)(ETH_MAC_BASE + 0x44U)  /* ETHERNET MAC address low offset */
-
-/* ETHERNET MACMIIAR register Mask */
-#define ETH_MACMIIAR_CR_MASK    0xFFFFFFE3U
-
-/* ETHERNET MACCR register Mask */
-#define ETH_MACCR_CLEAR_MASK    0xFF20810FU
-
-/* ETHERNET MACFCR register Mask */
-#define ETH_MACFCR_CLEAR_MASK   0x0000FF41U
-
-/* ETHERNET DMAOMR register Mask */
-#define ETH_DMAOMR_CLEAR_MASK   0xF8DE3F23U
-
-/* ETHERNET Remote Wake-up frame register length */
-#define ETH_WAKEUP_REGISTER_LENGTH      8U
-
-/* ETHERNET Missed frames counter Shift */
-#define  ETH_DMA_RX_OVERFLOW_MISSEDFRAMES_COUNTERSHIFT     17U
- /**
-  * @}
-  */
-
-/* Exported types ------------------------------------------------------------*/ 
+/*********************** Descriptors struct def section ************************/
 /** @defgroup ETH_Exported_Types ETH Exported Types
   * @{
   */
 
-/** 
-  * @brief  HAL State structures definition  
-  */ 
-typedef enum
-{
-  HAL_ETH_STATE_RESET             = 0x00U,    /*!< Peripheral not yet Initialized or disabled         */
-  HAL_ETH_STATE_READY             = 0x01U,    /*!< Peripheral Initialized and ready for use           */
-  HAL_ETH_STATE_BUSY              = 0x02U,    /*!< an internal process is ongoing                     */
-  HAL_ETH_STATE_BUSY_TX           = 0x12U,    /*!< Data Transmission process is ongoing               */
-  HAL_ETH_STATE_BUSY_RX           = 0x22U,    /*!< Data Reception process is ongoing                  */
-  HAL_ETH_STATE_BUSY_TX_RX        = 0x32U,    /*!< Data Transmission and Reception process is ongoing */
-  HAL_ETH_STATE_BUSY_WR           = 0x42U,    /*!< Write process is ongoing                           */
-  HAL_ETH_STATE_BUSY_RD           = 0x82U,    /*!< Read process is ongoing                            */
-  HAL_ETH_STATE_TIMEOUT           = 0x03U,    /*!< Timeout state                                      */
-  HAL_ETH_STATE_ERROR             = 0x04U     /*!< Reception process is ongoing                       */
-}HAL_ETH_StateTypeDef;
-
-/** 
-  * @brief  ETH Init Structure definition  
+/**
+  * @brief  ETH DMA Descriptor structure definition
   */
-
 typedef struct
 {
-  uint32_t             AutoNegotiation;           /*!< Selects or not the AutoNegotiation mode for the external PHY
-                                                           The AutoNegotiation allows an automatic setting of the Speed (10/100Mbps)
-                                                           and the mode (half/full-duplex).
-                                                           This parameter can be a value of @ref ETH_AutoNegotiation */
+  __IO uint32_t DESC0;
+  __IO uint32_t DESC1;
+  __IO uint32_t DESC2;
+  __IO uint32_t DESC3;
+  __IO uint32_t DESC4;
+  __IO uint32_t DESC5;
+  __IO uint32_t DESC6;
+  __IO uint32_t DESC7;
+  uint32_t BackupAddr0; /* used to store rx buffer 1 address */
+  uint32_t BackupAddr1; /* used to store rx buffer 2 address */
+} ETH_DMADescTypeDef;
+/**
+  *
+  */
 
-  uint32_t             Speed;                     /*!< Sets the Ethernet speed: 10/100 Mbps.
+/**
+  * @brief  ETH Buffers List structure definition
+  */
+typedef struct __ETH_BufferTypeDef
+{
+  uint8_t *buffer;                /*<! buffer address */
+
+  uint32_t len;                   /*<! buffer length */
+
+  struct __ETH_BufferTypeDef *next; /*<! Pointer to the next buffer in the list */
+} ETH_BufferTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  DMA Transmit Descriptors Wrapper structure definition
+  */
+typedef struct
+{
+  uint32_t  TxDesc[ETH_TX_DESC_CNT];        /*<! Tx DMA descriptors addresses */
+
+  uint32_t  CurTxDesc;                      /*<! Current Tx descriptor index for packet transmission */
+
+  uint32_t *PacketAddress[ETH_TX_DESC_CNT];  /*<! Ethernet packet addresses array */
+
+  uint32_t *CurrentPacketAddress;           /*<! Current transmit NX_PACKET addresses */
+
+  uint32_t BuffersInUse;                   /*<! Buffers in Use */
+
+  uint32_t releaseIndex;                  /*<! Release index */
+} ETH_TxDescListTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  Transmit Packet Configuration structure definition
+  */
+typedef struct
+{
+  uint32_t Attributes;              /*!< Tx packet HW features capabilities.
+                                         This parameter can be a combination of @ref ETH_Tx_Packet_Attributes*/
+
+  uint32_t Length;                  /*!< Total packet length   */
+
+  ETH_BufferTypeDef *TxBuffer;      /*!< Tx buffers pointers */
+
+  uint32_t SrcAddrCtrl;             /*!< Specifies the source address insertion control.
+                                         This parameter can be a value of @ref ETH_Tx_Packet_Source_Addr_Control */
+
+  uint32_t CRCPadCtrl;             /*!< Specifies the CRC and Pad insertion and replacement control.
+                                        This parameter can be a value of @ref ETH_Tx_Packet_CRC_Pad_Control  */
+
+  uint32_t ChecksumCtrl;           /*!< Specifies the checksum insertion control.
+                                        This parameter can be a value of @ref ETH_Tx_Packet_Checksum_Control  */
+
+  uint32_t MaxSegmentSize;         /*!< Sets TCP maximum segment size only when TCP segmentation is enabled.
+                                        This parameter can be a value from 0x0 to 0x3FFF */
+
+  uint32_t PayloadLen;             /*!< Sets Total payload length only when TCP segmentation is enabled.
+                                        This parameter can be a value from 0x0 to 0x3FFFF */
+
+  uint32_t TCPHeaderLen;           /*!< Sets TCP header length only when TCP segmentation is enabled.
+                                        This parameter can be a value from 0x5 to 0xF */
+
+  uint32_t VlanTag;                /*!< Sets VLAN Tag only when VLAN is enabled.
+                                        This parameter can be a value from 0x0 to 0xFFFF*/
+
+  uint32_t VlanCtrl;               /*!< Specifies VLAN Tag insertion control only when VLAN is enabled.
+                                        This parameter can be a value of @ref ETH_Tx_Packet_VLAN_Control */
+
+  uint32_t InnerVlanTag;           /*!< Sets Inner VLAN Tag only when Inner VLAN is enabled.
+                                        This parameter can be a value from 0x0 to 0x3FFFF */
+
+  uint32_t InnerVlanCtrl;          /*!< Specifies Inner VLAN Tag insertion control only when Inner VLAN is enabled.
+                                        This parameter can be a value of @ref ETH_Tx_Packet_Inner_VLAN_Control   */
+
+  void *pData;                     /*!< Specifies Application packet pointer to save   */
+
+} ETH_TxPacketConfig;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH Timestamp structure definition
+  */
+typedef struct
+{
+  uint32_t TimeStampLow;
+  uint32_t TimeStampHigh;
+
+} ETH_TimeStampTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH Timeupdate structure definition
+  */
+typedef struct
+{
+  uint32_t Seconds;
+  uint32_t NanoSeconds;
+} ETH_TimeTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  DMA Receive Descriptors Wrapper structure definition
+  */
+typedef struct
+{
+  uint32_t RxDesc[ETH_RX_DESC_CNT];     /*<! Rx DMA descriptors addresses. */
+
+  uint32_t ItMode;                      /*<! If 1, DMA will generate the Rx complete interrupt.
+                                             If 0, DMA will not generate the Rx complete interrupt. */
+
+  uint32_t RxDescIdx;                 /*<! Current Rx descriptor. */
+
+  uint32_t RxDescCnt;                 /*<! Number of descriptors . */
+
+  uint32_t RxDataLength;              /*<! Received Data Length. */
+
+  uint32_t RxBuildDescIdx;            /*<! Current Rx Descriptor for building descriptors. */
+
+  uint32_t RxBuildDescCnt;            /*<! Number of Rx Descriptors awaiting building. */
+
+  uint32_t pRxLastRxDesc;             /*<! Last received descriptor. */
+
+  ETH_TimeStampTypeDef TimeStamp;     /*<! Time Stamp Low value for receive. */
+
+  void *pRxStart;                     /*<! Pointer to the first buff. */
+
+  void *pRxEnd;                       /*<! Pointer to the last buff. */
+
+} ETH_RxDescListTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH MAC Configuration Structure definition
+  */
+typedef struct
+{
+  uint32_t
+  SourceAddrControl;           /*!< Selects the Source Address Insertion or Replacement Control.
+                                                     This parameter can be a value of @ref ETH_Source_Addr_Control */
+
+  FunctionalState
+  ChecksumOffload;             /*!< Enables or Disable the checksum checking for received packet payloads TCP, UDP or ICMP headers */
+
+  uint32_t         InterPacketGapVal;           /*!< Sets the minimum IPG between Packet during transmission.
+                                                     This parameter can be a value of @ref ETH_Inter_Packet_Gap */
+
+  FunctionalState  GiantPacketSizeLimitControl; /*!< Enables or disables the Giant Packet Size Limit Control. */
+
+  FunctionalState  Support2KPacket;             /*!< Enables or disables the IEEE 802.3as Support for 2K length Packets */
+
+  FunctionalState  CRCStripTypePacket;          /*!< Enables or disables the CRC stripping for Type packets.*/
+
+  FunctionalState  AutomaticPadCRCStrip;        /*!< Enables or disables  the Automatic MAC Pad/CRC Stripping.*/
+
+  FunctionalState  Watchdog;                    /*!< Enables or disables the Watchdog timer on Rx path.*/
+
+  FunctionalState  Jabber;                      /*!< Enables or disables Jabber timer on Tx path.*/
+
+  FunctionalState  JumboPacket;                 /*!< Enables or disables receiving Jumbo Packet
+                                                           When enabled, the MAC allows jumbo packets of 9,018 bytes
+                                                           without reporting a giant packet error */
+
+  uint32_t         Speed;                       /*!< Sets the Ethernet speed: 10/100 Mbps.
                                                            This parameter can be a value of @ref ETH_Speed */
 
-  uint32_t             DuplexMode;                /*!< Selects the MAC duplex mode: Half-Duplex or Full-Duplex mode
+  uint32_t         DuplexMode;                  /*!< Selects the MAC duplex mode: Half-Duplex or Full-Duplex mode
                                                            This parameter can be a value of @ref ETH_Duplex_Mode */
-  
-  uint16_t             PhyAddress;                /*!< Ethernet PHY address.
-                                                           This parameter must be a number between Min_Data = 0 and Max_Data = 32 */
-  
-  uint8_t             *MACAddr;                   /*!< MAC Address of used Hardware: must be pointer on an array of 6 bytes */
-  
-  uint32_t             RxMode;                    /*!< Selects the Ethernet Rx mode: Polling mode, Interrupt mode.
-                                                           This parameter can be a value of @ref ETH_Rx_Mode */
-  
-  uint32_t             ChecksumMode;              /*!< Selects if the checksum is check by hardware or by software. 
-                                                         This parameter can be a value of @ref ETH_Checksum_Mode */
-  
-  uint32_t             MediaInterface;            /*!< Selects the media-independent interface or the reduced media-independent interface. 
-                                                         This parameter can be a value of @ref ETH_Media_Interface */
 
-} ETH_InitTypeDef;
+  FunctionalState  LoopbackMode;                /*!< Enables or disables the loopback mode */
 
+  FunctionalState
+  CarrierSenseBeforeTransmit;  /*!< Enables or disables the Carrier Sense Before Transmission in Full Duplex Mode. */
 
- /** 
-  * @brief  ETH MAC Configuration Structure definition  
+  FunctionalState  ReceiveOwn;                  /*!< Enables or disables the Receive Own in Half Duplex mode. */
+
+  FunctionalState
+  CarrierSenseDuringTransmit;  /*!< Enables or disables the Carrier Sense During Transmission in the Half Duplex mode */
+
+  FunctionalState
+  RetryTransmission;           /*!< Enables or disables the MAC retry transmission, when a collision occurs in Half Duplex mode.*/
+
+  uint32_t         BackOffLimit;                /*!< Selects the BackOff limit value.
+                                                        This parameter can be a value of @ref ETH_Back_Off_Limit */
+
+  FunctionalState
+  DeferralCheck;               /*!< Enables or disables the deferral check function in Half Duplex mode. */
+
+  uint32_t
+  PreambleLength;              /*!< Selects or not the Preamble Length for Transmit packets (Full Duplex mode).
+                                                           This parameter can be a value of @ref ETH_Preamble_Length */
+
+  FunctionalState
+  UnicastSlowProtocolPacketDetect;   /*!< Enable or disables the Detection of Slow Protocol Packets with unicast address. */
+
+  FunctionalState  SlowProtocolDetect;          /*!< Enable or disables the Slow Protocol Detection. */
+
+  FunctionalState  CRCCheckingRxPackets;        /*!< Enable or disables the CRC Checking for Received Packets. */
+
+  uint32_t
+  GiantPacketSizeLimit;        /*!< Specifies the packet size that the MAC will declare it as Giant, If it's size is
+                                                    greater than the value programmed in this field in units of bytes
+                                                    This parameter must be a number between
+                                                    Min_Data = 0x618 (1518 byte) and Max_Data = 0x3FFF (32 Kbyte). */
+
+  FunctionalState  ExtendedInterPacketGap;      /*!< Enable or disables the extended inter packet gap. */
+
+  uint32_t         ExtendedInterPacketGapVal;   /*!< Sets the Extended IPG between Packet during transmission.
+                                                           This parameter can be a value from 0x0 to 0xFF */
+
+  FunctionalState  ProgrammableWatchdog;        /*!< Enable or disables the Programmable Watchdog.*/
+
+  uint32_t         WatchdogTimeout;             /*!< This field is used as watchdog timeout for a received packet
+                                                        This parameter can be a value of @ref ETH_Watchdog_Timeout */
+
+  uint32_t
+  PauseTime;                   /*!< This field holds the value to be used in the Pause Time field in the transmit control packet.
+                                                   This parameter must be a number between
+                                                   Min_Data = 0x0 and Max_Data = 0xFFFF.*/
+
+  FunctionalState
+  ZeroQuantaPause;             /*!< Enable or disables the automatic generation of Zero Quanta Pause Control packets.*/
+
+  uint32_t
+  PauseLowThreshold;           /*!< This field configures the threshold of the PAUSE to be checked for automatic retransmission of PAUSE Packet.
+                                                   This parameter can be a value of @ref ETH_Pause_Low_Threshold */
+
+  FunctionalState
+  TransmitFlowControl;         /*!< Enables or disables the MAC to transmit Pause packets in Full Duplex mode
+                                                   or the MAC back pressure operation in Half Duplex mode */
+
+  FunctionalState
+  UnicastPausePacketDetect;    /*!< Enables or disables the MAC to detect Pause packets with unicast address of the station */
+
+  FunctionalState  ReceiveFlowControl;          /*!< Enables or disables the MAC to decodes the received Pause packet
+                                                  and disables its transmitter for a specified (Pause) time */
+
+  uint32_t         TransmitQueueMode;           /*!< Specifies the Transmit Queue operating mode.
+                                                      This parameter can be a value of @ref ETH_Transmit_Mode */
+
+  uint32_t         ReceiveQueueMode;            /*!< Specifies the Receive Queue operating mode.
+                                                             This parameter can be a value of @ref ETH_Receive_Mode */
+
+  FunctionalState  DropTCPIPChecksumErrorPacket; /*!< Enables or disables Dropping of TCPIP Checksum Error Packets. */
+
+  FunctionalState  ForwardRxErrorPacket;        /*!< Enables or disables  forwarding Error Packets. */
+
+  FunctionalState  ForwardRxUndersizedGoodPacket;  /*!< Enables or disables  forwarding Undersized Good Packets.*/
+} ETH_MACConfigTypeDef;
+/**
+  *
   */
 
-typedef struct
-{
-  uint32_t             Watchdog;                  /*!< Selects or not the Watchdog timer
-                                                           When enabled, the MAC allows no more then 2048 bytes to be received.
-                                                           When disabled, the MAC can receive up to 16384 bytes.
-                                                           This parameter can be a value of @ref ETH_Watchdog */  
-
-  uint32_t             Jabber;                    /*!< Selects or not Jabber timer
-                                                           When enabled, the MAC allows no more then 2048 bytes to be sent.
-                                                           When disabled, the MAC can send up to 16384 bytes.
-                                                           This parameter can be a value of @ref ETH_Jabber */
-
-  uint32_t             InterFrameGap;             /*!< Selects the minimum IFG between frames during transmission.
-                                                           This parameter can be a value of @ref ETH_Inter_Frame_Gap */   
-
-  uint32_t             CarrierSense;              /*!< Selects or not the Carrier Sense.
-                                                           This parameter can be a value of @ref ETH_Carrier_Sense */
-
-  uint32_t             ReceiveOwn;                /*!< Selects or not the ReceiveOwn,
-                                                           ReceiveOwn allows the reception of frames when the TX_EN signal is asserted
-                                                           in Half-Duplex mode.
-                                                           This parameter can be a value of @ref ETH_Receive_Own */  
-
-  uint32_t             LoopbackMode;              /*!< Selects or not the internal MAC MII Loopback mode.
-                                                           This parameter can be a value of @ref ETH_Loop_Back_Mode */  
-
-  uint32_t             ChecksumOffload;           /*!< Selects or not the IPv4 checksum checking for received frame payloads' TCP/UDP/ICMP headers.
-                                                           This parameter can be a value of @ref ETH_Checksum_Offload */    
-
-  uint32_t             RetryTransmission;         /*!< Selects or not the MAC attempt retries transmission, based on the settings of BL,
-                                                           when a collision occurs (Half-Duplex mode).
-                                                           This parameter can be a value of @ref ETH_Retry_Transmission */
-
-  uint32_t             AutomaticPadCRCStrip;      /*!< Selects or not the Automatic MAC Pad/CRC Stripping.
-                                                           This parameter can be a value of @ref ETH_Automatic_Pad_CRC_Strip */ 
-
-  uint32_t             BackOffLimit;              /*!< Selects the BackOff limit value.
-                                                           This parameter can be a value of @ref ETH_Back_Off_Limit */
-
-  uint32_t             DeferralCheck;             /*!< Selects or not the deferral check function (Half-Duplex mode).
-                                                           This parameter can be a value of @ref ETH_Deferral_Check */                                                                                                        
-
-  uint32_t             ReceiveAll;                /*!< Selects or not all frames reception by the MAC (No filtering).
-                                                           This parameter can be a value of @ref ETH_Receive_All */   
-
-  uint32_t             SourceAddrFilter;          /*!< Selects the Source Address Filter mode.
-                                                           This parameter can be a value of @ref ETH_Source_Addr_Filter */
-
-  uint32_t             PassControlFrames;         /*!< Sets the forwarding mode of the control frames (including unicast and multicast PAUSE frames)
-                                                           This parameter can be a value of @ref ETH_Pass_Control_Frames */ 
-
-  uint32_t             BroadcastFramesReception;  /*!< Selects or not the reception of Broadcast Frames.
-                                                           This parameter can be a value of @ref ETH_Broadcast_Frames_Reception */
-
-  uint32_t             DestinationAddrFilter;     /*!< Sets the destination filter mode for both unicast and multicast frames.
-                                                           This parameter can be a value of @ref ETH_Destination_Addr_Filter */ 
-
-  uint32_t             PromiscuousMode;           /*!< Selects or not the Promiscuous Mode
-                                                           This parameter can be a value of @ref ETH_Promiscuous_Mode */
-
-  uint32_t             MulticastFramesFilter;     /*!< Selects the Multicast Frames filter mode: None/HashTableFilter/PerfectFilter/PerfectHashTableFilter.
-                                                           This parameter can be a value of @ref ETH_Multicast_Frames_Filter */ 
-
-  uint32_t             UnicastFramesFilter;       /*!< Selects the Unicast Frames filter mode: HashTableFilter/PerfectFilter/PerfectHashTableFilter.
-                                                           This parameter can be a value of @ref ETH_Unicast_Frames_Filter */ 
-
-  uint32_t             HashTableHigh;             /*!< This field holds the higher 32 bits of Hash table.
-                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFFU */
-
-  uint32_t             HashTableLow;              /*!< This field holds the lower 32 bits of Hash table.
-                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFFU  */    
-
-  uint32_t             PauseTime;                 /*!< This field holds the value to be used in the Pause Time field in the transmit control frame. 
-                                                           This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFU */
-
-  uint32_t             ZeroQuantaPause;           /*!< Selects or not the automatic generation of Zero-Quanta Pause Control frames.
-                                                           This parameter can be a value of @ref ETH_Zero_Quanta_Pause */  
-
-  uint32_t             PauseLowThreshold;         /*!< This field configures the threshold of the PAUSE to be checked for
-                                                           automatic retransmission of PAUSE Frame.
-                                                           This parameter can be a value of @ref ETH_Pause_Low_Threshold */
-
-  uint32_t             UnicastPauseFrameDetect;   /*!< Selects or not the MAC detection of the Pause frames (with MAC Address0
-                                                           unicast address and unique multicast address).
-                                                           This parameter can be a value of @ref ETH_Unicast_Pause_Frame_Detect */  
-
-  uint32_t             ReceiveFlowControl;        /*!< Enables or disables the MAC to decode the received Pause frame and
-                                                           disable its transmitter for a specified time (Pause Time)
-                                                           This parameter can be a value of @ref ETH_Receive_Flow_Control */
-
-  uint32_t             TransmitFlowControl;       /*!< Enables or disables the MAC to transmit Pause frames (Full-Duplex mode)
-                                                           or the MAC back-pressure operation (Half-Duplex mode)
-                                                           This parameter can be a value of @ref ETH_Transmit_Flow_Control */     
-
-  uint32_t             VLANTagComparison;         /*!< Selects the 12-bit VLAN identifier or the complete 16-bit VLAN tag for
-                                                           comparison and filtering.
-                                                           This parameter can be a value of @ref ETH_VLAN_Tag_Comparison */ 
-
-  uint32_t             VLANTagIdentifier;         /*!< Holds the VLAN tag identifier for receive frames */
-
-} ETH_MACInitTypeDef;
-
-/** 
-  * @brief  ETH DMA Configuration Structure definition  
+/**
+  * @brief  ETH DMA Configuration Structure definition
   */
-
 typedef struct
 {
- uint32_t              DropTCPIPChecksumErrorFrame; /*!< Selects or not the Dropping of TCP/IP Checksum Error Frames.
-                                                             This parameter can be a value of @ref ETH_Drop_TCP_IP_Checksum_Error_Frame */ 
+  uint32_t        DMAArbitration;          /*!< Sets the arbitration scheme between DMA Tx and Rx
+                                                         This parameter can be a value of @ref ETH_DMA_Arbitration */
 
-  uint32_t             ReceiveStoreForward;         /*!< Enables or disables the Receive store and forward mode.
-                                                             This parameter can be a value of @ref ETH_Receive_Store_Forward */ 
+  FunctionalState AddressAlignedBeats;     /*!< Enables or disables the AHB Master interface address aligned
+                                                            burst transfers on Read and Write channels  */
 
-  uint32_t             FlushReceivedFrame;          /*!< Enables or disables the flushing of received frames.
-                                                             This parameter can be a value of @ref ETH_Flush_Received_Frame */ 
+  uint32_t        BurstMode;               /*!< Sets the AHB Master interface burst transfers.
+                                                     This parameter can be a value of @ref ETH_Burst_Mode */
 
-  uint32_t             TransmitStoreForward;        /*!< Enables or disables Transmit store and forward mode.
-                                                             This parameter can be a value of @ref ETH_Transmit_Store_Forward */ 
+  FunctionalState      DropTCPIPChecksumErrorFrame; /*!< Selects or not the Dropping of TCP/IP Checksum Error Frames */
+
+  FunctionalState      ReceiveStoreForward;         /*!< Enables or disables the Receive store and forward mode */
+
+  FunctionalState      TransmitStoreForward;        /*!< Enables or disables Transmit store and forward mode */
+
+
+  uint32_t
+  TxDMABurstLength;        /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction.
+                                                     This parameter can be a value of @ref ETH_Tx_DMA_Burst_Length */
 
   uint32_t             TransmitThresholdControl;    /*!< Selects or not the Transmit Threshold Control.
-                                                             This parameter can be a value of @ref ETH_Transmit_Threshold_Control */
+                                                             This parameter can be a value of
+                                                             @ref ETH_Transmit_Threshold_Control */
 
-  uint32_t             ForwardErrorFrames;          /*!< Selects or not the forward to the DMA of erroneous frames.
-                                                             This parameter can be a value of @ref ETH_Forward_Error_Frames */
+  uint32_t
+  RxDMABurstLength;        /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction.
+                                                    This parameter can be a value of @ref ETH_Rx_DMA_Burst_Length */
 
-  uint32_t             ForwardUndersizedGoodFrames; /*!< Enables or disables the Rx FIFO to forward Undersized frames (frames with no Error
-                                                             and length less than 64 bytes) including pad-bytes and CRC)
-                                                             This parameter can be a value of @ref ETH_Forward_Undersized_Good_Frames */
+  FunctionalState      ForwardErrorFrames;          /*!< Selects or not the forward to the DMA of erroneous frames */
+  FunctionalState FlushRxPacket;           /*!< Enables or disables the Rx Packet Flush */
+
+  FunctionalState
+  ForwardUndersizedGoodFrames; /*!< Enables or disables the Rx FIFO to forward Undersized frames (frames with no Error
+                                                             and length less than 64 bytes)
+                                                             including pad-bytes and CRC) */
 
   uint32_t             ReceiveThresholdControl;     /*!< Selects the threshold level of the Receive FIFO.
-                                                             This parameter can be a value of @ref ETH_Receive_Threshold_Control */
+                                                             This parameter can be a value of
+                                                             @ref ETH_Receive_Threshold_Control */
 
-  uint32_t             SecondFrameOperate;          /*!< Selects or not the Operate on second frame mode, which allows the DMA to process a second
-                                                             frame of Transmit data even before obtaining the status for the first frame.
-                                                             This parameter can be a value of @ref ETH_Second_Frame_Operate */
+  FunctionalState
+  SecondFrameOperate;          /*!< Selects or not the Operate on second frame mode, which allows the DMA to process a second
+                                                             frame of Transmit data even before obtaining
+                                                             the status for the first frame */
 
-  uint32_t             AddressAlignedBeats;         /*!< Enables or disables the Address Aligned Beats.
-                                                             This parameter can be a value of @ref ETH_Address_Aligned_Beats */
+  FunctionalState      EnhancedDescriptorFormat;    /*!< Enables the enhanced descriptor format */
 
-  uint32_t             FixedBurst;                  /*!< Enables or disables the AHB Master interface fixed burst transfers.
-                                                             This parameter can be a value of @ref ETH_Fixed_Burst */
-                       
-  uint32_t             RxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction.
-                                                             This parameter can be a value of @ref ETH_Rx_DMA_Burst_Length */ 
-
-  uint32_t             TxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction.
-                                                             This parameter can be a value of @ref ETH_Tx_DMA_Burst_Length */
-  
-  uint32_t             EnhancedDescriptorFormat;    /*!< Enables the enhanced descriptor format.
-                                                             This parameter can be a value of @ref ETH_DMA_Enhanced_descriptor_format */
-
-  uint32_t             DescriptorSkipLength;        /*!< Specifies the number of word to skip between two unchained descriptors (Ring mode)
-                                                             This parameter must be a number between Min_Data = 0 and Max_Data = 32 */
-
-  uint32_t             DMAArbitration;              /*!< Selects the DMA Tx/Rx arbitration.
-                                                             This parameter can be a value of @ref ETH_DMA_Arbitration */  
-} ETH_DMAInitTypeDef;
-
-
-/** 
-  * @brief  ETH DMA Descriptors data structure definition
-  */ 
-
-typedef struct  
-{
-  __IO uint32_t   Status;           /*!< Status */
-  
-  uint32_t   ControlBufferSize;     /*!< Control and Buffer1, Buffer2 lengths */
-  
-  uint32_t   Buffer1Addr;           /*!< Buffer1 address pointer */
-  
-  uint32_t   Buffer2NextDescAddr;   /*!< Buffer2 or next descriptor address pointer */
-  
-  /*!< Enhanced ETHERNET DMA PTP Descriptors */
-  uint32_t   ExtendedStatus;        /*!< Extended status for PTP receive descriptor */
-  
-  uint32_t   Reserved1;             /*!< Reserved */
-  
-  uint32_t   TimeStampLow;          /*!< Time Stamp Low value for transmit and receive */
-  
-  uint32_t   TimeStampHigh;         /*!< Time Stamp High value for transmit and receive */
-
-} ETH_DMADescTypeDef;
-
-/** 
-  * @brief  Received Frame Informations structure definition
-  */ 
-typedef struct  
-{
-  ETH_DMADescTypeDef *FSRxDesc;          /*!< First Segment Rx Desc */
-  
-  ETH_DMADescTypeDef *LSRxDesc;          /*!< Last Segment Rx Desc */
-  
-  uint32_t  SegCount;                    /*!< Segment count */
-  
-  uint32_t length;                       /*!< Frame length */
-  
-  uint32_t buffer;                       /*!< Frame buffer */
-
-} ETH_DMARxFrameInfos;
-
-/** 
-  * @brief  ETH Handle Structure definition  
+  uint32_t
+  DescriptorSkipLength;        /*!< Specifies the number of word to skip between two unchained descriptors (Ring mode)
+                                                             This parameter must be a number between
+                                                             Min_Data = 0 and Max_Data = 32 */
+} ETH_DMAConfigTypeDef;
+/**
+  *
   */
-  
+
+/**
+  * @brief  HAL ETH Media Interfaces enum definition
+  */
+typedef enum
+{
+  HAL_ETH_MII_MODE             = 0x00U,   /*!<  Media Independent Interface               */
+  HAL_ETH_RMII_MODE            = ((uint32_t)SYSCFG_PMC_MII_RMII_SEL)    /*!<   Reduced Media Independent Interface       */
+} ETH_MediaInterfaceTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  HAL ETH PTP Update type enum definition
+  */
+typedef enum
+{
+  HAL_ETH_PTP_POSITIVE_UPDATE   = 0x00000000U,   /*!<  PTP positive time update       */
+  HAL_ETH_PTP_NEGATIVE_UPDATE   = 0x00000001U   /*!<  PTP negative time update       */
+} ETH_PtpUpdateTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH Init Structure definition
+  */
+typedef struct
+{
+
+  uint8_t
+  *MACAddr;                  /*!< MAC Address of used Hardware: must be pointer on an array of 6 bytes */
+
+  ETH_MediaInterfaceTypeDef   MediaInterface;            /*!< Selects the MII interface or the RMII interface. */
+
+  ETH_DMADescTypeDef
+  *TxDesc;                   /*!< Provides the address of the first DMA Tx descriptor in the list */
+
+  ETH_DMADescTypeDef
+  *RxDesc;                   /*!< Provides the address of the first DMA Rx descriptor in the list */
+
+  uint32_t                    RxBuffLen;                 /*!< Provides the length of Rx buffers size */
+
+} ETH_InitTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH PTP Init Structure definition
+  */
+typedef struct
+{
+  uint32_t                    Timestamp;                    /*!< Enable Timestamp */
+  uint32_t                    TimestampUpdateMode;          /*!< Fine or Coarse Timestamp Update */
+  uint32_t                    TimestampInitialize;          /*!< Initialize Timestamp */
+  uint32_t                    TimestampUpdate;              /*!< Timestamp Update */
+  uint32_t                    TimestampAddendUpdate;        /*!< Timestamp Addend Update */
+  uint32_t                    TimestampAll;                 /*!< Enable Timestamp for All Packets */
+  uint32_t                    TimestampRolloverMode;        /*!< Timestamp Digital or Binary Rollover Control */
+  uint32_t                    TimestampV2;                  /*!< Enable PTP Packet Processing for Version 2 Format */
+  uint32_t                    TimestampEthernet;            /*!< Enable Processing of PTP over Ethernet Packets */
+  uint32_t                    TimestampIPv6;                /*!< Enable Processing of PTP Packets Sent over IPv6-UDP */
+  uint32_t                    TimestampIPv4;                /*!< Enable Processing of PTP Packets Sent over IPv4-UDP */
+  uint32_t                    TimestampEvent;               /*!< Enable Timestamp Snapshot for Event Messages */
+  uint32_t                    TimestampMaster;              /*!< Enable Timestamp Snapshot for Event Messages */
+  uint32_t                    TimestampFilter;              /*!< Enable MAC Address for PTP Packet Filtering */
+  uint32_t                    TimestampClockType;           /*!< Time stamp clock node type */
+  uint32_t                    TimestampAddend;              /*!< Timestamp addend value */
+  uint32_t                    TimestampSubsecondInc;        /*!< Subsecond Increment */
+
+} ETH_PTP_ConfigTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  HAL State structures definition
+  */
+typedef uint32_t HAL_ETH_StateTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  HAL ETH Rx Get Buffer Function definition
+  */
+typedef  void (*pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer);  /*!< pointer to an ETH Rx Get Buffer Function */
+/**
+  *
+  */
+
+/**
+  * @brief  HAL ETH Rx Set App Data Function definition
+  */
+typedef  void (*pETH_rxLinkCallbackTypeDef)(void **pStart, void **pEnd, uint8_t *buff,
+                                            uint16_t Length); /*!< pointer to an ETH Rx Set App Data Function */
+/**
+  *
+  */
+
+/**
+  * @brief  HAL ETH Tx Free Function definition
+  */
+typedef  void (*pETH_txFreeCallbackTypeDef)(uint32_t *buffer);  /*!< pointer to an ETH Tx Free function */
+/**
+  *
+  */
+
+/**
+  * @brief  HAL ETH Tx Free Function definition
+  */
+typedef  void (*pETH_txPtpCallbackTypeDef)(uint32_t *buffer,
+                                           ETH_TimeStampTypeDef *timestamp);  /*!< pointer to an ETH Tx Free function */
+/**
+  *
+  */
+
+/**
+  * @brief  ETH Handle Structure definition
+  */
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
 typedef struct __ETH_HandleTypeDef
 #else
 typedef struct
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
 {
-  ETH_TypeDef                *Instance;     /*!< Register base address       */
-  
-  ETH_InitTypeDef            Init;          /*!< Ethernet Init Configuration */
-  
-  uint32_t                   LinkStatus;    /*!< Ethernet link status        */
-  
-  ETH_DMADescTypeDef         *RxDesc;       /*!< Rx descriptor to Get        */
-  
-  ETH_DMADescTypeDef         *TxDesc;       /*!< Tx descriptor to Set        */
-  
-  ETH_DMARxFrameInfos        RxFrameInfos;  /*!< last Rx frame infos         */
-  
-  __IO HAL_ETH_StateTypeDef  State;         /*!< ETH communication state     */
-  
-  HAL_LockTypeDef            Lock;          /*!< ETH Lock                    */
+  ETH_TypeDef                *Instance;                 /*!< Register base address       */
+
+  ETH_InitTypeDef            Init;                      /*!< Ethernet Init Configuration */
+
+  ETH_TxDescListTypeDef      TxDescList;                /*!< Tx descriptor wrapper: holds all Tx descriptors list
+                                                            addresses and current descriptor index  */
+
+  ETH_RxDescListTypeDef      RxDescList;                /*!< Rx descriptor wrapper: holds all Rx descriptors list
+                                                            addresses and current descriptor index  */
+
+#ifdef HAL_ETH_USE_PTP
+  ETH_TimeStampTypeDef       TxTimestamp;               /*!< Tx Timestamp */
+#endif /* HAL_ETH_USE_PTP */
+
+  __IO HAL_ETH_StateTypeDef  gState;                   /*!< ETH state information related to global Handle management
+                                                              and also related to Tx operations. This parameter can
+                                                              be a value of @ref HAL_ETH_StateTypeDef */
+
+  __IO uint32_t              ErrorCode;                 /*!< Holds the global Error code of the ETH HAL status machine
+                                                             This parameter can be a value of @ref ETH_Error_Code.*/
+
+  __IO uint32_t
+  DMAErrorCode;              /*!< Holds the DMA Rx Tx Error code when a DMA AIS interrupt occurs
+                                                             This parameter can be a combination of
+                                                             @ref ETH_DMA_Status_Flags */
+
+  __IO uint32_t
+  MACErrorCode;              /*!< Holds the MAC Rx Tx Error code when a MAC Rx or Tx status interrupt occurs
+                                                             This parameter can be a combination of
+                                                             @ref ETH_MAC_Rx_Tx_Status */
+
+  __IO uint32_t              MACWakeUpEvent;            /*!< Holds the Wake Up event when the MAC exit the power down mode
+                                                             This parameter can be a value of
+                                                             @ref ETH_MAC_Wake_Up_Event */
+
+  __IO uint32_t              MACLPIEvent;               /*!< Holds the LPI event when the an LPI status interrupt occurs.
+                                                             This parameter can be a value of @ref ETHEx_LPI_Event */
+
+  __IO uint32_t              IsPtpConfigured;           /*!< Holds the PTP configuration status.
+                                                             This parameter can be a value of
+                                                             @ref ETH_PTP_Config_Status */
 
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
 
-  void    (* TxCpltCallback)     ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Tx Complete Callback   */
-  void    (* RxCpltCallback)     ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Rx  Complete Callback   */
-  void    (* DMAErrorCallback)   ( struct __ETH_HandleTypeDef * heth);  /*!< DMA Error Callback      */
-  void    (* MspInitCallback)    ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Msp Init callback       */
-  void    (* MspDeInitCallback)  ( struct __ETH_HandleTypeDef * heth);  /*!< ETH Msp DeInit callback     */
+  void (* TxCpltCallback)(struct __ETH_HandleTypeDef *heth);             /*!< ETH Tx Complete Callback */
+  void (* RxCpltCallback)(struct __ETH_HandleTypeDef *heth);            /*!< ETH Rx  Complete Callback     */
+  void (* ErrorCallback)(struct __ETH_HandleTypeDef *heth);             /*!< ETH Error Callback   */
+  void (* PMTCallback)(struct __ETH_HandleTypeDef *heth);               /*!< ETH Power Management Callback            */
+  void (* WakeUpCallback)(struct __ETH_HandleTypeDef *heth);            /*!< ETH Wake UP Callback   */
+
+  void (* MspInitCallback)(struct __ETH_HandleTypeDef *heth);             /*!< ETH Msp Init callback              */
+  void (* MspDeInitCallback)(struct __ETH_HandleTypeDef *heth);           /*!< ETH Msp DeInit callback            */
 
 #endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
 
+  pETH_rxAllocateCallbackTypeDef  rxAllocateCallback;  /*!< ETH Rx Get Buffer Function   */
+  pETH_rxLinkCallbackTypeDef      rxLinkCallback; /*!< ETH Rx Set App Data Function */
+  pETH_txFreeCallbackTypeDef      txFreeCallback;       /*!< ETH Tx Free Function         */
+  pETH_txPtpCallbackTypeDef       txPtpCallback;  /*!< ETH Tx Handle Ptp Function */
+
 } ETH_HandleTypeDef;
+/**
+  *
+  */
 
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
 /**
@@ -648,22 +596,76 @@
   */
 typedef enum
 {
-  HAL_ETH_MSPINIT_CB_ID            = 0x00U,    /*!< ETH MspInit callback ID            */
-  HAL_ETH_MSPDEINIT_CB_ID          = 0x01U,    /*!< ETH MspDeInit callback ID          */
-  HAL_ETH_TX_COMPLETE_CB_ID        = 0x02U,    /*!< ETH Tx Complete Callback ID        */
-  HAL_ETH_RX_COMPLETE_CB_ID        = 0x03U,    /*!< ETH Rx Complete Callback ID        */
-  HAL_ETH_DMA_ERROR_CB_ID          = 0x04U,    /*!< ETH DMA Error Callback ID          */
+  HAL_ETH_MSPINIT_CB_ID            = 0x00U,    /*!< ETH MspInit callback ID           */
+  HAL_ETH_MSPDEINIT_CB_ID          = 0x01U,    /*!< ETH MspDeInit callback ID         */
 
-}HAL_ETH_CallbackIDTypeDef;
+  HAL_ETH_TX_COMPLETE_CB_ID        = 0x02U,    /*!< ETH Tx Complete Callback ID       */
+  HAL_ETH_RX_COMPLETE_CB_ID        = 0x03U,    /*!< ETH Rx Complete Callback ID       */
+  HAL_ETH_ERROR_CB_ID              = 0x04U,    /*!< ETH Error Callback ID             */
+  HAL_ETH_PMT_CB_ID                = 0x06U,    /*!< ETH Power Management Callback ID  */
+  HAL_ETH_WAKEUP_CB_ID             = 0x08U     /*!< ETH Wake UP Callback ID           */
+
+
+} HAL_ETH_CallbackIDTypeDef;
 
 /**
   * @brief  HAL ETH Callback pointer definition
   */
-typedef  void (*pETH_CallbackTypeDef)(ETH_HandleTypeDef * heth); /*!< pointer to an ETH callback function */
+typedef  void (*pETH_CallbackTypeDef)(ETH_HandleTypeDef *heth);  /*!< pointer to an ETH callback function */
 
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
 
- /**
+/**
+  * @brief  ETH MAC filter structure definition
+  */
+typedef struct
+{
+  FunctionalState PromiscuousMode;          /*!< Enable or Disable Promiscuous Mode */
+
+  FunctionalState ReceiveAllMode;           /*!< Enable or Disable Receive All Mode */
+
+  FunctionalState HachOrPerfectFilter;      /*!< Enable or Disable Perfect filtering in addition to Hash filtering */
+
+  FunctionalState HashUnicast;              /*!< Enable or Disable Hash filtering on unicast packets */
+
+  FunctionalState HashMulticast;            /*!< Enable or Disable Hash filtering on multicast packets */
+
+  FunctionalState PassAllMulticast;         /*!< Enable or Disable passing all multicast packets */
+
+  FunctionalState SrcAddrFiltering;         /*!< Enable or Disable source address filtering module */
+
+  FunctionalState SrcAddrInverseFiltering;  /*!< Enable or Disable source address inverse filtering */
+
+  FunctionalState DestAddrInverseFiltering; /*!< Enable or Disable destination address inverse filtering */
+
+  FunctionalState BroadcastFilter;          /*!< Enable or Disable broadcast filter */
+
+  uint32_t        ControlPacketsFilter;     /*!< Set the control packets filter
+                                                 This parameter can be a value of @ref ETH_Control_Packets_Filter */
+} ETH_MACFilterConfigTypeDef;
+/**
+  *
+  */
+
+/**
+  * @brief  ETH Power Down structure definition
+  */
+typedef struct
+{
+  FunctionalState WakeUpPacket;    /*!< Enable or Disable Wake up packet detection in power down mode */
+
+  FunctionalState MagicPacket;     /*!< Enable or Disable Magic packet detection in power down mode */
+
+  FunctionalState GlobalUnicast;    /*!< Enable or Disable Global unicast packet detection in power down mode */
+
+  FunctionalState WakeUpForward;    /*!< Enable or Disable Forwarding Wake up packets */
+
+} ETH_PowerDownConfigTypeDef;
+/**
+  *
+  */
+
+/**
   * @}
   */
 
@@ -672,81 +674,12 @@
   * @{
   */
 
-/** @defgroup ETH_Buffers_setting ETH Buffers setting
-  * @{
-  */ 
-#define ETH_MAX_PACKET_SIZE       1524U    /*!< ETH_HEADER + ETH_EXTRA + ETH_VLAN_TAG + ETH_MAX_ETH_PAYLOAD + ETH_CRC */
-#define ETH_HEADER                14U      /*!< 6 byte Dest addr, 6 byte Src addr, 2 byte length/type */
-#define ETH_CRC                   4U       /*!< Ethernet CRC */
-#define ETH_EXTRA                 2U       /*!< Extra bytes in some cases */   
-#define ETH_VLAN_TAG              4U       /*!< optional 802.1q VLAN Tag */
-#define ETH_MIN_ETH_PAYLOAD       46U      /*!< Minimum Ethernet payload size */
-#define ETH_MAX_ETH_PAYLOAD       1500U    /*!< Maximum Ethernet payload size */
-#define ETH_JUMBO_FRAME_PAYLOAD   9000U    /*!< Jumbo frame payload size */      
-
- /* Ethernet driver receive buffers are organized in a chained linked-list, when
-    an ethernet packet is received, the Rx-DMA will transfer the packet from RxFIFO
-    to the driver receive buffers memory.
-
-    Depending on the size of the received ethernet packet and the size of 
-    each ethernet driver receive buffer, the received packet can take one or more
-    ethernet driver receive buffer. 
-
-    In below are defined the size of one ethernet driver receive buffer ETH_RX_BUF_SIZE 
-    and the total count of the driver receive buffers ETH_RXBUFNB.
-
-    The configured value for ETH_RX_BUF_SIZE and ETH_RXBUFNB are only provided as 
-    example, they can be reconfigured in the application layer to fit the application 
-    needs */ 
-
-/* Here we configure each Ethernet driver receive buffer to fit the Max size Ethernet
-   packet */
-#ifndef ETH_RX_BUF_SIZE
- #define ETH_RX_BUF_SIZE         ETH_MAX_PACKET_SIZE 
-#endif
-
-/* 5 Ethernet driver receive buffers are used (in a chained linked list)*/ 
-#ifndef ETH_RXBUFNB
- #define ETH_RXBUFNB             5U     /*  5 Rx buffers of size ETH_RX_BUF_SIZE */
-#endif
-
-
- /* Ethernet driver transmit buffers are organized in a chained linked-list, when
-    an ethernet packet is transmitted, Tx-DMA will transfer the packet from the 
-    driver transmit buffers memory to the TxFIFO.
-
-    Depending on the size of the Ethernet packet to be transmitted and the size of 
-    each ethernet driver transmit buffer, the packet to be transmitted can take 
-    one or more ethernet driver transmit buffer. 
-
-    In below are defined the size of one ethernet driver transmit buffer ETH_TX_BUF_SIZE 
-    and the total count of the driver transmit buffers ETH_TXBUFNB.
-
-    The configured value for ETH_TX_BUF_SIZE and ETH_TXBUFNB are only provided as 
-    example, they can be reconfigured in the application layer to fit the application 
-    needs */ 
-
-/* Here we configure each Ethernet driver transmit buffer to fit the Max size Ethernet
-   packet */
-#ifndef ETH_TX_BUF_SIZE 
- #define ETH_TX_BUF_SIZE         ETH_MAX_PACKET_SIZE
-#endif
-
-/* 5 ethernet driver transmit buffers are used (in a chained linked list)*/ 
-#ifndef ETH_TXBUFNB
- #define ETH_TXBUFNB             5U      /* 5  Tx buffers of size ETH_TX_BUF_SIZE */
-#endif
-
- /**
-  * @}
-  */
-
-/** @defgroup ETH_DMA_TX_Descriptor ETH DMA TX Descriptor
+/** @defgroup ETH_DMA_Tx_Descriptor_Bit_Definition ETH DMA Tx Descriptor Bit Definition
   * @{
   */
 
 /*
-   DMA Tx Descriptor
+   DMA Tx Normal Descriptor Read Format
   -----------------------------------------------------------------------------------------------
   TDES0 | OWN(31) | CTRL[30:26] | Reserved[25:24] | CTRL[23:20] | Reserved[19:17] | Status[16:0] |
   -----------------------------------------------------------------------------------------------
@@ -758,76 +691,78 @@
   -----------------------------------------------------------------------------------------------
 */
 
-/** 
+/**
   * @brief  Bit definition of TDES0 register: DMA Tx descriptor status register
-  */ 
-#define ETH_DMATXDESC_OWN                     0x80000000U  /*!< OWN bit: descriptor is owned by DMA engine */
-#define ETH_DMATXDESC_IC                      0x40000000U  /*!< Interrupt on Completion */
-#define ETH_DMATXDESC_LS                      0x20000000U  /*!< Last Segment */
-#define ETH_DMATXDESC_FS                      0x10000000U  /*!< First Segment */
-#define ETH_DMATXDESC_DC                      0x08000000U  /*!< Disable CRC */
-#define ETH_DMATXDESC_DP                      0x04000000U  /*!< Disable Padding */
-#define ETH_DMATXDESC_TTSE                    0x02000000U  /*!< Transmit Time Stamp Enable */
-#define ETH_DMATXDESC_CIC                     0x00C00000U  /*!< Checksum Insertion Control: 4 cases */
-#define ETH_DMATXDESC_CIC_BYPASS              0x00000000U  /*!< Do Nothing: Checksum Engine is bypassed */ 
-#define ETH_DMATXDESC_CIC_IPV4HEADER          0x00400000U  /*!< IPV4 header Checksum Insertion */ 
-#define ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT  0x00800000U  /*!< TCP/UDP/ICMP Checksum Insertion calculated over segment only */ 
-#define ETH_DMATXDESC_CIC_TCPUDPICMP_FULL     0x00C00000U  /*!< TCP/UDP/ICMP Checksum Insertion fully calculated */ 
-#define ETH_DMATXDESC_TER                     0x00200000U  /*!< Transmit End of Ring */
-#define ETH_DMATXDESC_TCH                     0x00100000U  /*!< Second Address Chained */
-#define ETH_DMATXDESC_TTSS                    0x00020000U  /*!< Tx Time Stamp Status */
-#define ETH_DMATXDESC_IHE                     0x00010000U  /*!< IP Header Error */
-#define ETH_DMATXDESC_ES                      0x00008000U  /*!< Error summary: OR of the following bits: UE || ED || EC || LCO || NC || LCA || FF || JT */
-#define ETH_DMATXDESC_JT                      0x00004000U  /*!< Jabber Timeout */
-#define ETH_DMATXDESC_FF                      0x00002000U  /*!< Frame Flushed: DMA/MTL flushed the frame due to SW flush */
-#define ETH_DMATXDESC_PCE                     0x00001000U  /*!< Payload Checksum Error */
-#define ETH_DMATXDESC_LCA                     0x00000800U  /*!< Loss of Carrier: carrier lost during transmission */
-#define ETH_DMATXDESC_NC                      0x00000400U  /*!< No Carrier: no carrier signal from the transceiver */
-#define ETH_DMATXDESC_LCO                     0x00000200U  /*!< Late Collision: transmission aborted due to collision */
-#define ETH_DMATXDESC_EC                      0x00000100U  /*!< Excessive Collision: transmission aborted after 16 collisions */
-#define ETH_DMATXDESC_VF                      0x00000080U  /*!< VLAN Frame */
-#define ETH_DMATXDESC_CC                      0x00000078U  /*!< Collision Count */
-#define ETH_DMATXDESC_ED                      0x00000004U  /*!< Excessive Deferral */
-#define ETH_DMATXDESC_UF                      0x00000002U  /*!< Underflow Error: late data arrival from the memory */
-#define ETH_DMATXDESC_DB                      0x00000001U  /*!< Deferred Bit */
+  */
+#define ETH_DMATXDESC_OWN                     ((uint32_t)0x80000000U)  /*!< OWN bit: descriptor is owned by DMA engine */
+#define ETH_DMATXDESC_IC                      ((uint32_t)0x40000000U)  /*!< Interrupt on Completion */
+#define ETH_DMATXDESC_LS                      ((uint32_t)0x20000000U)  /*!< Last Segment */
+#define ETH_DMATXDESC_FS                      ((uint32_t)0x10000000U)  /*!< First Segment */
+#define ETH_DMATXDESC_DC                      ((uint32_t)0x08000000U)  /*!< Disable CRC */
+#define ETH_DMATXDESC_DP                      ((uint32_t)0x04000000U)  /*!< Disable Padding */
+#define ETH_DMATXDESC_TTSE                    ((uint32_t)0x02000000U)  /*!< Transmit Time Stamp Enable */
+#define ETH_DMATXDESC_CIC                     ((uint32_t)0x00C00000U)  /*!< Checksum Insertion Control: 4 cases */
+#define ETH_DMATXDESC_CIC_BYPASS              ((uint32_t)0x00000000U)  /*!< Do Nothing: Checksum Engine is bypassed */
+#define ETH_DMATXDESC_CIC_IPV4HEADER          ((uint32_t)0x00400000U)  /*!< IPV4 header Checksum Insertion */
+#define ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT  ((uint32_t)0x00800000U)  /*!< TCP/UDP/ICMP Checksum Insertion calculated over segment only */
+#define ETH_DMATXDESC_CIC_TCPUDPICMP_FULL     ((uint32_t)0x00C00000U)  /*!< TCP/UDP/ICMP Checksum Insertion fully calculated */
+#define ETH_DMATXDESC_TER                     ((uint32_t)0x00200000U)  /*!< Transmit End of Ring */
+#define ETH_DMATXDESC_TCH                     ((uint32_t)0x00100000U)  /*!< Second Address Chained */
+#define ETH_DMATXDESC_TTSS                    ((uint32_t)0x00020000U)  /*!< Tx Time Stamp Status */
+#define ETH_DMATXDESC_IHE                     ((uint32_t)0x00010000U)  /*!< IP Header Error */
+#define ETH_DMATXDESC_ES                      ((uint32_t)0x00008000U)  /*!< Error summary: OR of the following bits: UE || ED || EC || LCO || NC || LCA || FF || JT */
+#define ETH_DMATXDESC_JT                      ((uint32_t)0x00004000U)  /*!< Jabber Timeout */
+#define ETH_DMATXDESC_FF                      ((uint32_t)0x00002000U)  /*!< Frame Flushed: DMA/MTL flushed the frame due to SW flush */
+#define ETH_DMATXDESC_PCE                     ((uint32_t)0x00001000U)  /*!< Payload Checksum Error */
+#define ETH_DMATXDESC_LCA                     ((uint32_t)0x00000800U)  /*!< Loss of Carrier: carrier lost during transmission */
+#define ETH_DMATXDESC_NC                      ((uint32_t)0x00000400U)  /*!< No Carrier: no carrier signal from the transceiver */
+#define ETH_DMATXDESC_LCO                     ((uint32_t)0x00000200U)  /*!< Late Collision: transmission aborted due to collision */
+#define ETH_DMATXDESC_EC                      ((uint32_t)0x00000100U)  /*!< Excessive Collision: transmission aborted after 16 collisions */
+#define ETH_DMATXDESC_VF                      ((uint32_t)0x00000080U)  /*!< VLAN Frame */
+#define ETH_DMATXDESC_CC                      ((uint32_t)0x00000078U)  /*!< Collision Count */
+#define ETH_DMATXDESC_ED                      ((uint32_t)0x00000004U)  /*!< Excessive Deferral */
+#define ETH_DMATXDESC_UF                      ((uint32_t)0x00000002U)  /*!< Underflow Error: late data arrival from the memory */
+#define ETH_DMATXDESC_DB                      ((uint32_t)0x00000001U)  /*!< Deferred Bit */
 
-/** 
+/**
   * @brief  Bit definition of TDES1 register
-  */ 
-#define ETH_DMATXDESC_TBS2  0x1FFF0000U  /*!< Transmit Buffer2 Size */
-#define ETH_DMATXDESC_TBS1  0x00001FFFU  /*!< Transmit Buffer1 Size */
+  */
+#define ETH_DMATXDESC_TBS2  ((uint32_t)0x1FFF0000U)  /*!< Transmit Buffer2 Size */
+#define ETH_DMATXDESC_TBS1  ((uint32_t)0x00001FFFU)  /*!< Transmit Buffer1 Size */
 
-/** 
+/**
   * @brief  Bit definition of TDES2 register
-  */ 
-#define ETH_DMATXDESC_B1AP  0xFFFFFFFFU  /*!< Buffer1 Address Pointer */
+  */
+#define ETH_DMATXDESC_B1AP  ((uint32_t)0xFFFFFFFFU)  /*!< Buffer1 Address Pointer */
 
-/** 
+/**
   * @brief  Bit definition of TDES3 register
-  */ 
-#define ETH_DMATXDESC_B2AP  0xFFFFFFFFU  /*!< Buffer2 Address Pointer */
+  */
+#define ETH_DMATXDESC_B2AP  ((uint32_t)0xFFFFFFFFU)  /*!< Buffer2 Address Pointer */
 
-  /*---------------------------------------------------------------------------------------------
-  TDES6 |                         Transmit Time Stamp Low [31:0]                                 |
-  -----------------------------------------------------------------------------------------------
-  TDES7 |                         Transmit Time Stamp High [31:0]                                |
-  ----------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+TDES6 |                         Transmit Time Stamp Low [31:0]                                 |
+-----------------------------------------------------------------------------------------------
+TDES7 |                         Transmit Time Stamp High [31:0]                                |
+----------------------------------------------------------------------------------------------*/
 
 /* Bit definition of TDES6 register */
- #define ETH_DMAPTPTXDESC_TTSL  0xFFFFFFFFU  /* Transmit Time Stamp Low */
+#define ETH_DMAPTPTXDESC_TTSL  ((uint32_t)0xFFFFFFFFU)  /* Transmit Time Stamp Low */
 
 /* Bit definition of TDES7 register */
- #define ETH_DMAPTPTXDESC_TTSH  0xFFFFFFFFU  /* Transmit Time Stamp High */
+#define ETH_DMAPTPTXDESC_TTSH  ((uint32_t)0xFFFFFFFFU)  /* Transmit Time Stamp High */
 
 /**
   * @}
-  */ 
-/** @defgroup ETH_DMA_RX_Descriptor ETH DMA RX Descriptor
+  */
+
+
+/** @defgroup ETH_DMA_Rx_Descriptor_Bit_Definition ETH DMA Rx Descriptor Bit Definition
   * @{
   */
 
 /*
-  DMA Rx Descriptor
+  DMA Rx Normal Descriptor read format
   --------------------------------------------------------------------------------------------------------------------
   RDES0 | OWN(31) |                                             Status [30:0]                                          |
   ---------------------------------------------------------------------------------------------------------------------
@@ -839,47 +774,47 @@
   ---------------------------------------------------------------------------------------------------------------------
 */
 
-/** 
+/**
   * @brief  Bit definition of RDES0 register: DMA Rx descriptor status register
-  */ 
-#define ETH_DMARXDESC_OWN         0x80000000U  /*!< OWN bit: descriptor is owned by DMA engine  */
-#define ETH_DMARXDESC_AFM         0x40000000U  /*!< DA Filter Fail for the rx frame  */
-#define ETH_DMARXDESC_FL          0x3FFF0000U  /*!< Receive descriptor frame length  */
-#define ETH_DMARXDESC_ES          0x00008000U  /*!< Error summary: OR of the following bits: DE || OE || IPC || LC || RWT || RE || CE */
-#define ETH_DMARXDESC_DE          0x00004000U  /*!< Descriptor error: no more descriptors for receive frame  */
-#define ETH_DMARXDESC_SAF         0x00002000U  /*!< SA Filter Fail for the received frame */
-#define ETH_DMARXDESC_LE          0x00001000U  /*!< Frame size not matching with length field */
-#define ETH_DMARXDESC_OE          0x00000800U  /*!< Overflow Error: Frame was damaged due to buffer overflow */
-#define ETH_DMARXDESC_VLAN        0x00000400U  /*!< VLAN Tag: received frame is a VLAN frame */
-#define ETH_DMARXDESC_FS          0x00000200U  /*!< First descriptor of the frame  */
-#define ETH_DMARXDESC_LS          0x00000100U  /*!< Last descriptor of the frame  */ 
-#define ETH_DMARXDESC_IPV4HCE     0x00000080U  /*!< IPC Checksum Error: Rx Ipv4 header checksum error   */    
-#define ETH_DMARXDESC_LC          0x00000040U  /*!< Late collision occurred during reception   */
-#define ETH_DMARXDESC_FT          0x00000020U  /*!< Frame type - Ethernet, otherwise 802.3    */
-#define ETH_DMARXDESC_RWT         0x00000010U  /*!< Receive Watchdog Timeout: watchdog timer expired during reception    */
-#define ETH_DMARXDESC_RE          0x00000008U  /*!< Receive error: error reported by MII interface  */
-#define ETH_DMARXDESC_DBE         0x00000004U  /*!< Dribble bit error: frame contains non int multiple of 8 bits  */
-#define ETH_DMARXDESC_CE          0x00000002U  /*!< CRC error */
-#define ETH_DMARXDESC_MAMPCE      0x00000001U  /*!< Rx MAC Address/Payload Checksum Error: Rx MAC address matched/ Rx Payload Checksum Error */
+  */
+#define ETH_DMARXDESC_OWN         ((uint32_t)0x80000000U)  /*!< OWN bit: descriptor is owned by DMA engine  */
+#define ETH_DMARXDESC_AFM         ((uint32_t)0x40000000U)  /*!< DA Filter Fail for the rx frame  */
+#define ETH_DMARXDESC_FL          ((uint32_t)0x3FFF0000U)  /*!< Receive descriptor frame length  */
+#define ETH_DMARXDESC_ES          ((uint32_t)0x00008000U)  /*!< Error summary: OR of the following bits: DE || OE || IPC || LC || RWT || RE || CE */
+#define ETH_DMARXDESC_DE          ((uint32_t)0x00004000U)  /*!< Descriptor error: no more descriptors for receive frame  */
+#define ETH_DMARXDESC_SAF         ((uint32_t)0x00002000U)  /*!< SA Filter Fail for the received frame */
+#define ETH_DMARXDESC_LE          ((uint32_t)0x00001000U)  /*!< Frame size not matching with length field */
+#define ETH_DMARXDESC_OE          ((uint32_t)0x00000800U)  /*!< Overflow Error: Frame was damaged due to buffer overflow */
+#define ETH_DMARXDESC_VLAN        ((uint32_t)0x00000400U)  /*!< VLAN Tag: received frame is a VLAN frame */
+#define ETH_DMARXDESC_FS          ((uint32_t)0x00000200U)  /*!< First descriptor of the frame  */
+#define ETH_DMARXDESC_LS          ((uint32_t)0x00000100U)  /*!< Last descriptor of the frame  */
+#define ETH_DMARXDESC_IPV4HCE     ((uint32_t)0x00000080U)  /*!< IPC Checksum Error: Rx Ipv4 header checksum error   */
+#define ETH_DMARXDESC_LC          ((uint32_t)0x00000040U)  /*!< Late collision occurred during reception   */
+#define ETH_DMARXDESC_FT          ((uint32_t)0x00000020U)  /*!< Frame type - Ethernet, otherwise 802.3    */
+#define ETH_DMARXDESC_RWT         ((uint32_t)0x00000010U)  /*!< Receive Watchdog Timeout: watchdog timer expired during reception    */
+#define ETH_DMARXDESC_RE          ((uint32_t)0x00000008U)  /*!< Receive error: error reported by MII interface  */
+#define ETH_DMARXDESC_DBE         ((uint32_t)0x00000004U)  /*!< Dribble bit error: frame contains non int multiple of 8 bits  */
+#define ETH_DMARXDESC_CE          ((uint32_t)0x00000002U)  /*!< CRC error */
+#define ETH_DMARXDESC_MAMPCE      ((uint32_t)0x00000001U)  /*!< Rx MAC Address/Payload Checksum Error: Rx MAC address matched/ Rx Payload Checksum Error */
 
-/** 
+/**
   * @brief  Bit definition of RDES1 register
-  */ 
-#define ETH_DMARXDESC_DIC   0x80000000U  /*!< Disable Interrupt on Completion */
-#define ETH_DMARXDESC_RBS2  0x1FFF0000U  /*!< Receive Buffer2 Size */
-#define ETH_DMARXDESC_RER   0x00008000U  /*!< Receive End of Ring */
-#define ETH_DMARXDESC_RCH   0x00004000U  /*!< Second Address Chained */
-#define ETH_DMARXDESC_RBS1  0x00001FFFU  /*!< Receive Buffer1 Size */
+  */
+#define ETH_DMARXDESC_DIC   ((uint32_t)0x80000000U)  /*!< Disable Interrupt on Completion */
+#define ETH_DMARXDESC_RBS2  ((uint32_t)0x1FFF0000U)  /*!< Receive Buffer2 Size */
+#define ETH_DMARXDESC_RER   ((uint32_t)0x00008000U)  /*!< Receive End of Ring */
+#define ETH_DMARXDESC_RCH   ((uint32_t)0x00004000U)  /*!< Second Address Chained */
+#define ETH_DMARXDESC_RBS1  ((uint32_t)0x00001FFFU)  /*!< Receive Buffer1 Size */
 
-/** 
-  * @brief  Bit definition of RDES2 register  
-  */ 
-#define ETH_DMARXDESC_B1AP  0xFFFFFFFFU  /*!< Buffer1 Address Pointer */
+/**
+  * @brief  Bit definition of RDES2 register
+  */
+#define ETH_DMARXDESC_B1AP  ((uint32_t)0xFFFFFFFFU)  /*!< Buffer1 Address Pointer */
 
-/** 
-  * @brief  Bit definition of RDES3 register  
-  */ 
-#define ETH_DMARXDESC_B2AP  0xFFFFFFFFU  /*!< Buffer2 Address Pointer */
+/**
+  * @brief  Bit definition of RDES3 register
+  */
+#define ETH_DMARXDESC_B2AP  ((uint32_t)0xFFFFFFFFU)  /*!< Buffer2 Address Pointer */
 
 /*---------------------------------------------------------------------------------------------------------------------
   RDES4 |                   Reserved[31:15]              |             Extended Status [14:0]                          |
@@ -892,489 +827,210 @@
   --------------------------------------------------------------------------------------------------------------------*/
 
 /* Bit definition of RDES4 register */
-#define ETH_DMAPTPRXDESC_PTPV     0x00002000U  /* PTP Version */
-#define ETH_DMAPTPRXDESC_PTPFT    0x00001000U  /* PTP Frame Type */
-#define ETH_DMAPTPRXDESC_PTPMT    0x00000F00U  /* PTP Message Type */
-  #define ETH_DMAPTPRXDESC_PTPMT_SYNC                      0x00000100U  /* SYNC message (all clock types) */
-  #define ETH_DMAPTPRXDESC_PTPMT_FOLLOWUP                  0x00000200U  /* FollowUp message (all clock types) */ 
-  #define ETH_DMAPTPRXDESC_PTPMT_DELAYREQ                  0x00000300U  /* DelayReq message (all clock types) */ 
-  #define ETH_DMAPTPRXDESC_PTPMT_DELAYRESP                 0x00000400U  /* DelayResp message (all clock types) */ 
-  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYREQ_ANNOUNCE        0x00000500U  /* PdelayReq message (peer-to-peer transparent clock) or Announce message (Ordinary or Boundary clock) */ 
-  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESP_MANAG          0x00000600U  /* PdelayResp message (peer-to-peer transparent clock) or Management message (Ordinary or Boundary clock)  */ 
-  #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESPFOLLOWUP_SIGNAL 0x00000700U  /* PdelayRespFollowUp message (peer-to-peer transparent clock) or Signaling message (Ordinary or Boundary clock) */           
-#define ETH_DMAPTPRXDESC_IPV6PR   0x00000080U  /* IPv6 Packet Received */
-#define ETH_DMAPTPRXDESC_IPV4PR   0x00000040U  /* IPv4 Packet Received */
-#define ETH_DMAPTPRXDESC_IPCB     0x00000020U  /* IP Checksum Bypassed */
-#define ETH_DMAPTPRXDESC_IPPE     0x00000010U  /* IP Payload Error */
-#define ETH_DMAPTPRXDESC_IPHE     0x00000008U  /* IP Header Error */
-#define ETH_DMAPTPRXDESC_IPPT     0x00000007U  /* IP Payload Type */
-  #define ETH_DMAPTPRXDESC_IPPT_UDP                 0x00000001U  /* UDP payload encapsulated in the IP datagram */
-  #define ETH_DMAPTPRXDESC_IPPT_TCP                 0x00000002U  /* TCP payload encapsulated in the IP datagram */ 
-  #define ETH_DMAPTPRXDESC_IPPT_ICMP                0x00000003U  /* ICMP payload encapsulated in the IP datagram */
+#define ETH_DMAPTPRXDESC_PTPV                            ((uint32_t)0x00002000U)  /* PTP Version */
+#define ETH_DMAPTPRXDESC_PTPFT                           ((uint32_t)0x00001000U)  /* PTP Frame Type */
+#define ETH_DMAPTPRXDESC_PTPMT                           ((uint32_t)0x00000F00U)  /* PTP Message Type */
+#define ETH_DMAPTPRXDESC_PTPMT_SYNC                      ((uint32_t)0x00000100U)  /* SYNC message
+                                                                                     (all clock types) */
+#define ETH_DMAPTPRXDESC_PTPMT_FOLLOWUP                  ((uint32_t)0x00000200U)  /* FollowUp message
+                                                                                     (all clock types) */
+#define ETH_DMAPTPRXDESC_PTPMT_DELAYREQ                  ((uint32_t)0x00000300U)  /* DelayReq message
+                                                                                     (all clock types) */
+#define ETH_DMAPTPRXDESC_PTPMT_DELAYRESP                 ((uint32_t)0x00000400U)  /* DelayResp message
+                                                                                     (all clock types) */
+#define ETH_DMAPTPRXDESC_PTPMT_PDELAYREQ_ANNOUNCE        ((uint32_t)0x00000500U)  /* PdelayReq message
+                                                                                     (peer-to-peer transparent clock)
+                                                                                      or Announce message (Ordinary
+                                                                                      or Boundary clock) */
+#define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESP_MANAG          ((uint32_t)0x00000600U)  /* PdelayResp message
+                                                                                     (peer-to-peer transparent clock)
+                                                                                      or Management message (Ordinary
+                                                                                      or Boundary clock)  */
+#define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESPFOLLOWUP_SIGNAL ((uint32_t)0x00000700U)  /* PdelayRespFollowUp message
+                                                                                    (peer-to-peer transparent clock)
+                                                                                     or Signaling message (Ordinary
+                                                                                     or Boundary clock) */
+#define ETH_DMAPTPRXDESC_IPV6PR                          ((uint32_t)0x00000080U)  /* IPv6 Packet Received */
+#define ETH_DMAPTPRXDESC_IPV4PR                          ((uint32_t)0x00000040U)  /* IPv4 Packet Received */
+#define ETH_DMAPTPRXDESC_IPCB                            ((uint32_t)0x00000020U)  /* IP Checksum Bypassed */
+#define ETH_DMAPTPRXDESC_IPPE                            ((uint32_t)0x00000010U)  /* IP Payload Error */
+#define ETH_DMAPTPRXDESC_IPHE                            ((uint32_t)0x00000008U)  /* IP Header Error */
+#define ETH_DMAPTPRXDESC_IPPT                            ((uint32_t)0x00000007U)  /* IP Payload Type */
+#define ETH_DMAPTPRXDESC_IPPT_UDP                        ((uint32_t)0x00000001U)  /* UDP payload encapsulated in
+                                                                                     the IP datagram */
+#define ETH_DMAPTPRXDESC_IPPT_TCP                        ((uint32_t)0x00000002U)  /* TCP payload encapsulated in
+                                                                                     the IP datagram */
+#define ETH_DMAPTPRXDESC_IPPT_ICMP                       ((uint32_t)0x00000003U)  /* ICMP payload encapsulated in
+                                                                                     the IP datagram */
 
 /* Bit definition of RDES6 register */
-#define ETH_DMAPTPRXDESC_RTSL  0xFFFFFFFFU  /* Receive Time Stamp Low */
+#define ETH_DMAPTPRXDESC_RTSL  ((uint32_t)0xFFFFFFFFU)  /* Receive Time Stamp Low */
 
 /* Bit definition of RDES7 register */
-#define ETH_DMAPTPRXDESC_RTSH  0xFFFFFFFFU  /* Receive Time Stamp High */
-/**
-  * @}
-  */
- /** @defgroup ETH_AutoNegotiation ETH AutoNegotiation 
-  * @{
-  */ 
-#define ETH_AUTONEGOTIATION_ENABLE     0x00000001U
-#define ETH_AUTONEGOTIATION_DISABLE    0x00000000U
+#define ETH_DMAPTPRXDESC_RTSH  ((uint32_t)0xFFFFFFFFU)  /* Receive Time Stamp High */
 
 /**
   * @}
   */
-/** @defgroup ETH_Speed ETH Speed 
-  * @{
-  */ 
-#define ETH_SPEED_10M        0x00000000U
-#define ETH_SPEED_100M       0x00004000U
 
-/**
-  * @}
-  */
-/** @defgroup ETH_Duplex_Mode ETH Duplex Mode
+/** @defgroup ETH_Frame_settings ETH frame settings
   * @{
-  */ 
-#define ETH_MODE_FULLDUPLEX       0x00000800U
-#define ETH_MODE_HALFDUPLEX       0x00000000U
-/**
-  * @}
   */
-/** @defgroup ETH_Rx_Mode ETH Rx Mode
-  * @{
-  */ 
-#define ETH_RXPOLLING_MODE      0x00000000U
-#define ETH_RXINTERRUPT_MODE    0x00000001U
+#define ETH_MAX_PACKET_SIZE      ((uint32_t)1528U)    /*!< ETH_HEADER + 2*VLAN_TAG + MAX_ETH_PAYLOAD + ETH_CRC */
+#define ETH_HEADER               ((uint32_t)14U)    /*!< 6 byte Dest addr, 6 byte Src addr, 2 byte length/type */
+#define ETH_CRC                  ((uint32_t)4U)    /*!< Ethernet CRC */
+#define ETH_VLAN_TAG             ((uint32_t)4U)    /*!< optional 802.1q VLAN Tag */
+#define ETH_MIN_PAYLOAD          ((uint32_t)46U)    /*!< Minimum Ethernet payload size */
+#define ETH_MAX_PAYLOAD          ((uint32_t)1500U)    /*!< Maximum Ethernet payload size */
+#define ETH_JUMBO_FRAME_PAYLOAD  ((uint32_t)9000U)    /*!< Jumbo frame payload size */
 /**
   * @}
   */
 
-/** @defgroup ETH_Checksum_Mode ETH Checksum Mode
+/** @defgroup ETH_Error_Code ETH Error Code
   * @{
-  */ 
-#define ETH_CHECKSUM_BY_HARDWARE      0x00000000U
-#define ETH_CHECKSUM_BY_SOFTWARE      0x00000001U
+  */
+#define HAL_ETH_ERROR_NONE         ((uint32_t)0x00000000U)   /*!< No error            */
+#define HAL_ETH_ERROR_PARAM        ((uint32_t)0x00000001U)   /*!< Busy error          */
+#define HAL_ETH_ERROR_BUSY         ((uint32_t)0x00000002U)   /*!< Parameter error     */
+#define HAL_ETH_ERROR_TIMEOUT      ((uint32_t)0x00000004U)   /*!< Timeout error       */
+#define HAL_ETH_ERROR_DMA          ((uint32_t)0x00000008U)   /*!< DMA transfer error  */
+#define HAL_ETH_ERROR_MAC          ((uint32_t)0x00000010U)   /*!< MAC transfer error  */
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+#define HAL_ETH_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U)    /*!< Invalid Callback error  */
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
 /**
   * @}
   */
 
-/** @defgroup ETH_Media_Interface ETH Media Interface
+/** @defgroup ETH_Tx_Packet_Attributes ETH Tx Packet Attributes
   * @{
-  */ 
-#define ETH_MEDIA_INTERFACE_MII       0x00000000U
-#define ETH_MEDIA_INTERFACE_RMII      ((uint32_t)SYSCFG_PMC_MII_RMII_SEL)
+  */
+#define ETH_TX_PACKETS_FEATURES_CSUM          ((uint32_t)0x00000001U)
+#define ETH_TX_PACKETS_FEATURES_SAIC          ((uint32_t)0x00000002U)
+#define ETH_TX_PACKETS_FEATURES_VLANTAG       ((uint32_t)0x00000004U)
+#define ETH_TX_PACKETS_FEATURES_INNERVLANTAG  ((uint32_t)0x00000008U)
+#define ETH_TX_PACKETS_FEATURES_TSO           ((uint32_t)0x00000010U)
+#define ETH_TX_PACKETS_FEATURES_CRCPAD        ((uint32_t)0x00000020U)
 /**
   * @}
   */
 
-/** @defgroup ETH_Watchdog ETH Watchdog 
+/** @defgroup ETH_Tx_Packet_Source_Addr_Control ETH Tx Packet Source Addr Control
   * @{
-  */ 
-#define ETH_WATCHDOG_ENABLE       0x00000000U
-#define ETH_WATCHDOG_DISABLE      0x00800000U
+  */
+#define ETH_SRC_ADDR_CONTROL_DISABLE          ETH_DMATXNDESCRF_SAIC_DISABLE
+#define ETH_SRC_ADDR_INSERT                   ETH_DMATXNDESCRF_SAIC_INSERT
+#define ETH_SRC_ADDR_REPLACE                  ETH_DMATXNDESCRF_SAIC_REPLACE
 /**
   * @}
   */
 
-/** @defgroup ETH_Jabber ETH Jabber
+/** @defgroup ETH_Tx_Packet_CRC_Pad_Control ETH Tx Packet CRC Pad Control
   * @{
-  */ 
-#define ETH_JABBER_ENABLE    0x00000000U
-#define ETH_JABBER_DISABLE   0x00400000U
+  */
+#define ETH_CRC_PAD_DISABLE      (uint32_t)(ETH_DMATXDESC_DP | ETH_DMATXDESC_DC)
+#define ETH_CRC_PAD_INSERT       ((uint32_t)0x00000000U)
+#define ETH_CRC_INSERT           ETH_DMATXDESC_DP
 /**
   * @}
   */
 
-/** @defgroup ETH_Inter_Frame_Gap ETH Inter Frame Gap 
+/** @defgroup ETH_Tx_Packet_Checksum_Control ETH Tx Packet Checksum Control
   * @{
-  */ 
-#define ETH_INTERFRAMEGAP_96BIT   0x00000000U  /*!< minimum IFG between frames during transmission is 96Bit */
-#define ETH_INTERFRAMEGAP_88BIT   0x00020000U  /*!< minimum IFG between frames during transmission is 88Bit */
-#define ETH_INTERFRAMEGAP_80BIT   0x00040000U  /*!< minimum IFG between frames during transmission is 80Bit */
-#define ETH_INTERFRAMEGAP_72BIT   0x00060000U  /*!< minimum IFG between frames during transmission is 72Bit */
-#define ETH_INTERFRAMEGAP_64BIT   0x00080000U  /*!< minimum IFG between frames during transmission is 64Bit */
-#define ETH_INTERFRAMEGAP_56BIT   0x000A0000U  /*!< minimum IFG between frames during transmission is 56Bit */
-#define ETH_INTERFRAMEGAP_48BIT   0x000C0000U  /*!< minimum IFG between frames during transmission is 48Bit */
-#define ETH_INTERFRAMEGAP_40BIT   0x000E0000U  /*!< minimum IFG between frames during transmission is 40Bit */
+  */
+#define ETH_CHECKSUM_DISABLE                         ETH_DMATXDESC_CIC_BYPASS
+#define ETH_CHECKSUM_IPHDR_INSERT                    ETH_DMATXDESC_CIC_IPV4HEADER
+#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT            ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT
+#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC  ETH_DMATXDESC_CIC_TCPUDPICMP_FULL
 /**
   * @}
   */
 
-/** @defgroup ETH_Carrier_Sense ETH Carrier Sense
+/** @defgroup ETH_Tx_Packet_VLAN_Control ETH Tx Packet VLAN Control
   * @{
-  */ 
-#define ETH_CARRIERSENCE_ENABLE   0x00000000U
-#define ETH_CARRIERSENCE_DISABLE  0x00010000U
+  */
+#define ETH_VLAN_DISABLE  ETH_DMATXNDESCRF_VTIR_DISABLE
+#define ETH_VLAN_REMOVE   ETH_DMATXNDESCRF_VTIR_REMOVE
+#define ETH_VLAN_INSERT   ETH_DMATXNDESCRF_VTIR_INSERT
+#define ETH_VLAN_REPLACE  ETH_DMATXNDESCRF_VTIR_REPLACE
 /**
   * @}
   */
 
-/** @defgroup ETH_Receive_Own ETH Receive Own 
+/** @defgroup ETH_Tx_Packet_Inner_VLAN_Control ETH Tx Packet Inner VLAN Control
   * @{
-  */ 
-#define ETH_RECEIVEOWN_ENABLE     0x00000000U
-#define ETH_RECEIVEOWN_DISABLE    0x00002000U
+  */
+#define ETH_INNER_VLAN_DISABLE  ETH_DMATXCDESC_IVTIR_DISABLE
+#define ETH_INNER_VLAN_REMOVE   ETH_DMATXCDESC_IVTIR_REMOVE
+#define ETH_INNER_VLAN_INSERT   ETH_DMATXCDESC_IVTIR_INSERT
+#define ETH_INNER_VLAN_REPLACE  ETH_DMATXCDESC_IVTIR_REPLACE
 /**
   * @}
   */
 
-/** @defgroup ETH_Loop_Back_Mode ETH Loop Back Mode 
+
+/** @defgroup ETH_Rx_MAC_Filter_Status ETH Rx MAC Filter Status
   * @{
-  */ 
-#define ETH_LOOPBACKMODE_ENABLE        0x00001000U
-#define ETH_LOOPBACKMODE_DISABLE       0x00000000U
+  */
+#define ETH_VLAN_FILTER_PASS        ETH_DMARXDESC_VLAN
+#define ETH_DEST_ADDRESS_FAIL       ETH_DMARXDESC_AFM
+#define ETH_SOURCE_ADDRESS_FAIL     ETH_DMARXDESC_SAF
 /**
   * @}
   */
 
-/** @defgroup ETH_Checksum_Offload ETH Checksum Offload
+/** @defgroup ETH_Rx_Error_Code ETH Rx Error Code
   * @{
-  */ 
-#define ETH_CHECKSUMOFFLAOD_ENABLE     0x00000400U
-#define ETH_CHECKSUMOFFLAOD_DISABLE    0x00000000U
+  */
+#define ETH_DRIBBLE_BIT_ERROR   ETH_DMARXDESC_DBE
+#define ETH_RECEIVE_ERROR       ETH_DMARXDESC_RE
+#define ETH_RECEIVE_OVERFLOW    ETH_DMARXDESC_OE
+#define ETH_WATCHDOG_TIMEOUT    ETH_DMARXDESC_RWT
+#define ETH_GIANT_PACKET        ETH_DMARXDESC_IPV4HC
+#define ETH_CRC_ERROR           ETH_DMARXDESC_CE
 /**
   * @}
   */
 
-/** @defgroup ETH_Retry_Transmission ETH Retry Transmission
+/** @defgroup ETH_DMA_Arbitration ETH DMA Arbitration
   * @{
-  */ 
-#define ETH_RETRYTRANSMISSION_ENABLE   0x00000000U
-#define ETH_RETRYTRANSMISSION_DISABLE  0x00000200U
+  */
+#define ETH_DMAARBITRATION_RX        ETH_DMAMR_DA
+#define ETH_DMAARBITRATION_RX1_TX1   ((uint32_t)0x00000000U)
+#define ETH_DMAARBITRATION_RX2_TX1   ETH_DMAMR_PR_2_1
+#define ETH_DMAARBITRATION_RX3_TX1   ETH_DMAMR_PR_3_1
+#define ETH_DMAARBITRATION_RX4_TX1   ETH_DMAMR_PR_4_1
+#define ETH_DMAARBITRATION_RX5_TX1   ETH_DMAMR_PR_5_1
+#define ETH_DMAARBITRATION_RX6_TX1   ETH_DMAMR_PR_6_1
+#define ETH_DMAARBITRATION_RX7_TX1   ETH_DMAMR_PR_7_1
+#define ETH_DMAARBITRATION_RX8_TX1   ETH_DMAMR_PR_8_1
+#define ETH_DMAARBITRATION_TX        (ETH_DMAMR_TXPR | ETH_DMAMR_DA)
+#define ETH_DMAARBITRATION_TX1_RX1   ((uint32_t)0x00000000U)
+#define ETH_DMAARBITRATION_TX2_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_2_1)
+#define ETH_DMAARBITRATION_TX3_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_3_1)
+#define ETH_DMAARBITRATION_TX4_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_4_1)
+#define ETH_DMAARBITRATION_TX5_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_5_1)
+#define ETH_DMAARBITRATION_TX6_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_6_1)
+#define ETH_DMAARBITRATION_TX7_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_7_1)
+#define ETH_DMAARBITRATION_TX8_RX1   (ETH_DMAMR_TXPR | ETH_DMAMR_PR_8_1)
 /**
   * @}
   */
 
-/** @defgroup ETH_Automatic_Pad_CRC_Strip ETH Automatic Pad CRC Strip
-  * @{
-  */ 
-#define ETH_AUTOMATICPADCRCSTRIP_ENABLE     0x00000080U
-#define ETH_AUTOMATICPADCRCSTRIP_DISABLE    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Back_Off_Limit ETH Back Off Limit
-  * @{
-  */ 
-#define ETH_BACKOFFLIMIT_10  0x00000000U
-#define ETH_BACKOFFLIMIT_8   0x00000020U
-#define ETH_BACKOFFLIMIT_4   0x00000040U
-#define ETH_BACKOFFLIMIT_1   0x00000060U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Deferral_Check ETH Deferral Check
+/** @defgroup ETH_Burst_Mode ETH Burst Mode
   * @{
   */
-#define ETH_DEFFERRALCHECK_ENABLE       0x00000010U
-#define ETH_DEFFERRALCHECK_DISABLE      0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Receive_All ETH Receive All
-  * @{
-  */ 
-#define ETH_RECEIVEALL_ENABLE     0x80000000U
-#define ETH_RECEIVEAll_DISABLE    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Source_Addr_Filter ETH Source Addr Filter
-  * @{
-  */ 
-#define ETH_SOURCEADDRFILTER_NORMAL_ENABLE       0x00000200U
-#define ETH_SOURCEADDRFILTER_INVERSE_ENABLE      0x00000300U
-#define ETH_SOURCEADDRFILTER_DISABLE             0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Pass_Control_Frames ETH Pass Control Frames
-  * @{
-  */ 
-#define ETH_PASSCONTROLFRAMES_BLOCKALL                0x00000040U  /*!< MAC filters all control frames from reaching the application */
-#define ETH_PASSCONTROLFRAMES_FORWARDALL              0x00000080U  /*!< MAC forwards all control frames to application even if they fail the Address Filter */
-#define ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER 0x000000C0U  /*!< MAC forwards control frames that pass the Address Filter. */ 
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Broadcast_Frames_Reception ETH Broadcast Frames Reception
-  * @{
-  */ 
-#define ETH_BROADCASTFRAMESRECEPTION_ENABLE     0x00000000U
-#define ETH_BROADCASTFRAMESRECEPTION_DISABLE    0x00000020U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Destination_Addr_Filter ETH Destination Addr Filter
-  * @{
-  */ 
-#define ETH_DESTINATIONADDRFILTER_NORMAL    0x00000000U
-#define ETH_DESTINATIONADDRFILTER_INVERSE   0x00000008U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Promiscuous_Mode ETH Promiscuous Mode
-  * @{
-  */ 
-#define ETH_PROMISCUOUS_MODE_ENABLE     0x00000001U
-#define ETH_PROMISCUOUS_MODE_DISABLE    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Multicast_Frames_Filter ETH Multicast Frames Filter
-  * @{
-  */ 
-#define ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE    0x00000404U
-#define ETH_MULTICASTFRAMESFILTER_HASHTABLE           0x00000004U
-#define ETH_MULTICASTFRAMESFILTER_PERFECT             0x00000000U
-#define ETH_MULTICASTFRAMESFILTER_NONE                0x00000010U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Unicast_Frames_Filter ETH Unicast Frames Filter
-  * @{
-  */ 
-#define ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE 0x00000402U
-#define ETH_UNICASTFRAMESFILTER_HASHTABLE        0x00000002U
-#define ETH_UNICASTFRAMESFILTER_PERFECT          0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Zero_Quanta_Pause ETH Zero Quanta Pause 
-  * @{
-  */ 
-#define ETH_ZEROQUANTAPAUSE_ENABLE     0x00000000U
-#define ETH_ZEROQUANTAPAUSE_DISABLE    0x00000080U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Pause_Low_Threshold ETH Pause Low Threshold
-  * @{
-  */ 
-#define ETH_PAUSELOWTHRESHOLD_MINUS4        0x00000000U  /*!< Pause time minus 4 slot times */
-#define ETH_PAUSELOWTHRESHOLD_MINUS28       0x00000010U  /*!< Pause time minus 28 slot times */
-#define ETH_PAUSELOWTHRESHOLD_MINUS144      0x00000020U  /*!< Pause time minus 144 slot times */
-#define ETH_PAUSELOWTHRESHOLD_MINUS256      0x00000030U  /*!< Pause time minus 256 slot times */
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Unicast_Pause_Frame_Detect ETH Unicast Pause Frame Detect
-  * @{
-  */ 
-#define ETH_UNICASTPAUSEFRAMEDETECT_ENABLE  0x00000008U
-#define ETH_UNICASTPAUSEFRAMEDETECT_DISABLE 0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Receive_Flow_Control ETH Receive Flow Control
-  * @{
-  */ 
-#define ETH_RECEIVEFLOWCONTROL_ENABLE       0x00000004U
-#define ETH_RECEIVEFLOWCONTROL_DISABLE      0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Transmit_Flow_Control ETH Transmit Flow Control
-  * @{
-  */ 
-#define ETH_TRANSMITFLOWCONTROL_ENABLE      0x00000002U
-#define ETH_TRANSMITFLOWCONTROL_DISABLE     0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_VLAN_Tag_Comparison ETH VLAN Tag Comparison
-  * @{
-  */ 
-#define ETH_VLANTAGCOMPARISON_12BIT    0x00010000U
-#define ETH_VLANTAGCOMPARISON_16BIT    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_MAC_addresses ETH MAC addresses
-  * @{
-  */ 
-#define ETH_MAC_ADDRESS0     0x00000000U
-#define ETH_MAC_ADDRESS1     0x00000008U
-#define ETH_MAC_ADDRESS2     0x00000010U
-#define ETH_MAC_ADDRESS3     0x00000018U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_MAC_addresses_filter_SA_DA ETH MAC addresses filter SA DA 
-  * @{
-  */ 
-#define ETH_MAC_ADDRESSFILTER_SA       0x00000000U
-#define ETH_MAC_ADDRESSFILTER_DA       0x00000008U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_MAC_addresses_filter_Mask_bytes ETH MAC addresses filter Mask bytes
-  * @{
-  */ 
-#define ETH_MAC_ADDRESSMASK_BYTE6      0x20000000U  /*!< Mask MAC Address high reg bits [15:8] */
-#define ETH_MAC_ADDRESSMASK_BYTE5      0x10000000U  /*!< Mask MAC Address high reg bits [7:0] */
-#define ETH_MAC_ADDRESSMASK_BYTE4      0x08000000U  /*!< Mask MAC Address low reg bits [31:24] */
-#define ETH_MAC_ADDRESSMASK_BYTE3      0x04000000U  /*!< Mask MAC Address low reg bits [23:16] */
-#define ETH_MAC_ADDRESSMASK_BYTE2      0x02000000U  /*!< Mask MAC Address low reg bits [15:8] */
-#define ETH_MAC_ADDRESSMASK_BYTE1      0x01000000U  /*!< Mask MAC Address low reg bits [70] */
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Drop_TCP_IP_Checksum_Error_Frame ETH Drop TCP IP Checksum Error Frame
-  * @{
-  */ 
-#define ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE   0x00000000U
-#define ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE  0x04000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Receive_Store_Forward ETH Receive Store Forward
-  * @{
-  */ 
-#define ETH_RECEIVESTOREFORWARD_ENABLE      0x02000000U
-#define ETH_RECEIVESTOREFORWARD_DISABLE     0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Flush_Received_Frame ETH Flush Received Frame
-  * @{
-  */ 
-#define ETH_FLUSHRECEIVEDFRAME_ENABLE       0x00000000U
-#define ETH_FLUSHRECEIVEDFRAME_DISABLE      0x01000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Transmit_Store_Forward ETH Transmit Store Forward
-  * @{
-  */ 
-#define ETH_TRANSMITSTOREFORWARD_ENABLE     0x00200000U
-#define ETH_TRANSMITSTOREFORWARD_DISABLE    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Transmit_Threshold_Control ETH Transmit Threshold Control
-  * @{
-  */ 
-#define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES     0x00000000U  /*!< threshold level of the MTL Transmit FIFO is 64 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_128BYTES    0x00004000U  /*!< threshold level of the MTL Transmit FIFO is 128 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_192BYTES    0x00008000U  /*!< threshold level of the MTL Transmit FIFO is 192 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_256BYTES    0x0000C000U  /*!< threshold level of the MTL Transmit FIFO is 256 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_40BYTES     0x00010000U  /*!< threshold level of the MTL Transmit FIFO is 40 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_32BYTES     0x00014000U  /*!< threshold level of the MTL Transmit FIFO is 32 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_24BYTES     0x00018000U  /*!< threshold level of the MTL Transmit FIFO is 24 Bytes */
-#define ETH_TRANSMITTHRESHOLDCONTROL_16BYTES     0x0001C000U  /*!< threshold level of the MTL Transmit FIFO is 16 Bytes */
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Forward_Error_Frames ETH Forward Error Frames
-  * @{
-  */ 
-#define ETH_FORWARDERRORFRAMES_ENABLE       0x00000080U
-#define ETH_FORWARDERRORFRAMES_DISABLE      0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Forward_Undersized_Good_Frames ETH Forward Undersized Good Frames
-  * @{
-  */ 
-#define ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE   0x00000040U
-#define ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE  0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Receive_Threshold_Control ETH Receive Threshold Control
-  * @{
-  */ 
-#define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES      0x00000000U  /*!< threshold level of the MTL Receive FIFO is 64 Bytes */
-#define ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES      0x00000008U  /*!< threshold level of the MTL Receive FIFO is 32 Bytes */
-#define ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES      0x00000010U  /*!< threshold level of the MTL Receive FIFO is 96 Bytes */
-#define ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES     0x00000018U  /*!< threshold level of the MTL Receive FIFO is 128 Bytes */
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Second_Frame_Operate ETH Second Frame Operate
-  * @{
-  */ 
-#define ETH_SECONDFRAMEOPERARTE_ENABLE       0x00000004U
-#define ETH_SECONDFRAMEOPERARTE_DISABLE      0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Address_Aligned_Beats ETH Address Aligned Beats 
-  * @{
-  */ 
-#define ETH_ADDRESSALIGNEDBEATS_ENABLE      0x02000000U
-#define ETH_ADDRESSALIGNEDBEATS_DISABLE     0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Fixed_Burst ETH Fixed Burst
-  * @{
-  */ 
-#define ETH_FIXEDBURST_ENABLE     0x00010000U
-#define ETH_FIXEDBURST_DISABLE    0x00000000U
-/**
-  * @}
-  */
-
-/** @defgroup ETH_Rx_DMA_Burst_Length ETH Rx DMA Burst Length
-  * @{
-  */ 
-#define ETH_RXDMABURSTLENGTH_1BEAT          0x00020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 1 */
-#define ETH_RXDMABURSTLENGTH_2BEAT          0x00040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 2 */
-#define ETH_RXDMABURSTLENGTH_4BEAT          0x00080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
-#define ETH_RXDMABURSTLENGTH_8BEAT          0x00100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
-#define ETH_RXDMABURSTLENGTH_16BEAT         0x00200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
-#define ETH_RXDMABURSTLENGTH_32BEAT         0x00400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_4BEAT    0x01020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_8BEAT    0x01040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_16BEAT   0x01080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_32BEAT   0x01100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_64BEAT   0x01200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 64 */
-#define ETH_RXDMABURSTLENGTH_4XPBL_128BEAT  0x01400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 128 */
+#define ETH_BURSTLENGTH_FIXED           ETH_DMABMR_FB
+#define ETH_BURSTLENGTH_MIXED           ETH_DMABMR_MB
+#define ETH_BURSTLENGTH_UNSPECIFIED     ((uint32_t)0x00000000U)
 /**
   * @}
   */
 
 /** @defgroup ETH_Tx_DMA_Burst_Length ETH Tx DMA Burst Length
   * @{
-  */ 
+  */
 #define ETH_TXDMABURSTLENGTH_1BEAT          0x00000100U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */
 #define ETH_TXDMABURSTLENGTH_2BEAT          0x00000200U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */
 #define ETH_TXDMABURSTLENGTH_4BEAT          0x00000400U  /*!< maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
@@ -1391,18 +1047,579 @@
   * @}
   */
 
-/** @defgroup ETH_DMA_Enhanced_descriptor_format ETH DMA Enhanced descriptor format
+/** @defgroup ETH_Rx_DMA_Burst_Length ETH Rx DMA Burst Length
   * @{
-  */  
-#define ETH_DMAENHANCEDDESCRIPTOR_ENABLE              0x00000080U
-#define ETH_DMAENHANCEDDESCRIPTOR_DISABLE             0x00000000U
+  */
+#define ETH_RXDMABURSTLENGTH_1BEAT          0x00020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 1 */
+#define ETH_RXDMABURSTLENGTH_2BEAT          0x00040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 2 */
+#define ETH_RXDMABURSTLENGTH_4BEAT          0x00080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
+#define ETH_RXDMABURSTLENGTH_8BEAT          0x00100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
+#define ETH_RXDMABURSTLENGTH_16BEAT         0x00200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
+#define ETH_RXDMABURSTLENGTH_32BEAT         0x00400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_4BEAT    0x01020000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 4 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_8BEAT    0x01040000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 8 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_16BEAT   0x01080000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 16 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_32BEAT   0x01100000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 32 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_64BEAT   0x01200000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 64 */
+#define ETH_RXDMABURSTLENGTH_4XPBL_128BEAT  0x01400000U  /*!< maximum number of beats to be transferred in one RxDMA transaction is 128 */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Interrupts ETH DMA Interrupts
+  * @{
+  */
+#define ETH_DMA_NORMAL_IT                 ETH_DMACIER_NIE
+#define ETH_DMA_ABNORMAL_IT               ETH_DMACIER_AIE
+#define ETH_DMA_CONTEXT_DESC_ERROR_IT     ETH_DMACIER_CDEE
+#define ETH_DMA_FATAL_BUS_ERROR_IT        ETH_DMACIER_FBEE
+#define ETH_DMA_EARLY_RX_IT               ETH_DMACIER_ERIE
+#define ETH_DMA_EARLY_TX_IT               ETH_DMACIER_ETIE
+#define ETH_DMA_RX_WATCHDOG_TIMEOUT_IT    ETH_DMACIER_RWTE
+#define ETH_DMA_RX_PROCESS_STOPPED_IT     ETH_DMACIER_RSE
+#define ETH_DMA_RX_BUFFER_UNAVAILABLE_IT  ETH_DMACIER_RBUE
+#define ETH_DMA_RX_IT                     ETH_DMACIER_RIE
+#define ETH_DMA_TX_BUFFER_UNAVAILABLE_IT  ETH_DMACIER_TBUE
+#define ETH_DMA_TX_PROCESS_STOPPED_IT     ETH_DMACIER_TXSE
+#define ETH_DMA_TX_IT                     ETH_DMACIER_TIE
+/**
+  * @}
+  */
+
+/** @defgroup ETH_DMA_Status_Flags ETH DMA Status Flags
+  * @{
+  */
+#define ETH_DMA_RX_NO_ERROR_FLAG                 ((uint32_t)0x00000000U)
+#define ETH_DMA_RX_DESC_READ_ERROR_FLAG          (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_1 | ETH_DMACSR_REB_BIT_0)
+#define ETH_DMA_RX_DESC_WRITE_ERROR_FLAG         (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_1)
+#define ETH_DMA_RX_BUFFER_READ_ERROR_FLAG        (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_0)
+#define ETH_DMA_RX_BUFFER_WRITE_ERROR_FLAG        ETH_DMACSR_REB_BIT_2
+#define ETH_DMA_TX_NO_ERROR_FLAG                 ((uint32_t)0x00000000U)
+#define ETH_DMA_TX_DESC_READ_ERROR_FLAG          (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_1 | ETH_DMACSR_TEB_BIT_0)
+#define ETH_DMA_TX_DESC_WRITE_ERROR_FLAG         (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_1)
+#define ETH_DMA_TX_BUFFER_READ_ERROR_FLAG        (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_0)
+#define ETH_DMA_TX_BUFFER_WRITE_ERROR_FLAG        ETH_DMACSR_TEB_BIT_2
+#define ETH_DMA_CONTEXT_DESC_ERROR_FLAG           ETH_DMACSR_CDE
+#define ETH_DMA_FATAL_BUS_ERROR_FLAG              ETH_DMACSR_FBE
+#define ETH_DMA_EARLY_TX_IT_FLAG                  ETH_DMACSR_ERI
+#define ETH_DMA_RX_WATCHDOG_TIMEOUT_FLAG          ETH_DMACSR_RWT
+#define ETH_DMA_RX_PROCESS_STOPPED_FLAG           ETH_DMACSR_RPS
+#define ETH_DMA_RX_BUFFER_UNAVAILABLE_FLAG        ETH_DMACSR_RBU
+#define ETH_DMA_TX_PROCESS_STOPPED_FLAG           ETH_DMACSR_TPS
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Mode ETH Transmit Mode
+  * @{
+  */
+#define ETH_TRANSMITSTOREFORWARD       ETH_MTLTQOMR_TSF
+#define ETH_TRANSMITTHRESHOLD_32       ETH_MTLTQOMR_TTC_32BITS
+#define ETH_TRANSMITTHRESHOLD_64       ETH_MTLTQOMR_TTC_64BITS
+#define ETH_TRANSMITTHRESHOLD_96       ETH_MTLTQOMR_TTC_96BITS
+#define ETH_TRANSMITTHRESHOLD_128      ETH_MTLTQOMR_TTC_128BITS
+#define ETH_TRANSMITTHRESHOLD_192      ETH_MTLTQOMR_TTC_192BITS
+#define ETH_TRANSMITTHRESHOLD_256      ETH_MTLTQOMR_TTC_256BITS
+#define ETH_TRANSMITTHRESHOLD_384      ETH_MTLTQOMR_TTC_384BITS
+#define ETH_TRANSMITTHRESHOLD_512      ETH_MTLTQOMR_TTC_512BITS
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Mode ETH Receive Mode
+  * @{
+  */
+#define ETH_RECEIVESTOREFORWARD        ETH_MTLRQOMR_RSF
+#define ETH_RECEIVETHRESHOLD8_64       ETH_MTLRQOMR_RTC_64BITS
+#define ETH_RECEIVETHRESHOLD8_32       ETH_MTLRQOMR_RTC_32BITS
+#define ETH_RECEIVETHRESHOLD8_96       ETH_MTLRQOMR_RTC_96BITS
+#define ETH_RECEIVETHRESHOLD8_128      ETH_MTLRQOMR_RTC_128BITS
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Pause_Low_Threshold  ETH Pause Low Threshold
+  * @{
+  */
+#define ETH_PAUSELOWTHRESHOLD_MINUS_4        ETH_MACTFCR_PLT_MINUS4
+#define ETH_PAUSELOWTHRESHOLD_MINUS_28       ETH_MACTFCR_PLT_MINUS28
+#define ETH_PAUSELOWTHRESHOLD_MINUS_36       ETH_MACTFCR_PLT_MINUS36
+#define ETH_PAUSELOWTHRESHOLD_MINUS_144      ETH_MACTFCR_PLT_MINUS144
+#define ETH_PAUSELOWTHRESHOLD_MINUS_256      ETH_MACTFCR_PLT_MINUS256
+#define ETH_PAUSELOWTHRESHOLD_MINUS_512      ETH_MACTFCR_PLT_MINUS512
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Watchdog_Timeout ETH Watchdog Timeout
+  * @{
+  */
+#define ETH_WATCHDOGTIMEOUT_2KB      ETH_MACWTR_WTO_2KB
+#define ETH_WATCHDOGTIMEOUT_3KB      ETH_MACWTR_WTO_3KB
+#define ETH_WATCHDOGTIMEOUT_4KB      ETH_MACWTR_WTO_4KB
+#define ETH_WATCHDOGTIMEOUT_5KB      ETH_MACWTR_WTO_5KB
+#define ETH_WATCHDOGTIMEOUT_6KB      ETH_MACWTR_WTO_6KB
+#define ETH_WATCHDOGTIMEOUT_7KB      ETH_MACWTR_WTO_7KB
+#define ETH_WATCHDOGTIMEOUT_8KB      ETH_MACWTR_WTO_8KB
+#define ETH_WATCHDOGTIMEOUT_9KB      ETH_MACWTR_WTO_9KB
+#define ETH_WATCHDOGTIMEOUT_10KB     ETH_MACWTR_WTO_10KB
+#define ETH_WATCHDOGTIMEOUT_11KB     ETH_MACWTR_WTO_12KB
+#define ETH_WATCHDOGTIMEOUT_12KB     ETH_MACWTR_WTO_12KB
+#define ETH_WATCHDOGTIMEOUT_13KB     ETH_MACWTR_WTO_13KB
+#define ETH_WATCHDOGTIMEOUT_14KB     ETH_MACWTR_WTO_14KB
+#define ETH_WATCHDOGTIMEOUT_15KB     ETH_MACWTR_WTO_15KB
+#define ETH_WATCHDOGTIMEOUT_16KB     ETH_MACWTR_WTO_16KB
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Inter_Packet_Gap ETH Inter Packet Gap
+  * @{
+  */
+#define ETH_INTERPACKETGAP_96BIT   ETH_MACCR_IPG_96BIT
+#define ETH_INTERPACKETGAP_88BIT   ETH_MACCR_IPG_88BIT
+#define ETH_INTERPACKETGAP_80BIT   ETH_MACCR_IPG_80BIT
+#define ETH_INTERPACKETGAP_72BIT   ETH_MACCR_IPG_72BIT
+#define ETH_INTERPACKETGAP_64BIT   ETH_MACCR_IPG_64BIT
+#define ETH_INTERPACKETGAP_56BIT   ETH_MACCR_IPG_56BIT
+#define ETH_INTERPACKETGAP_48BIT   ETH_MACCR_IPG_48BIT
+#define ETH_INTERPACKETGAP_40BIT   ETH_MACCR_IPG_40BIT
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Speed  ETH Speed
+  * @{
+  */
+#define ETH_SPEED_10M        ((uint32_t)0x00000000U)
+#define ETH_SPEED_100M       0x00004000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Duplex_Mode ETH Duplex Mode
+  * @{
+  */
+#define ETH_FULLDUPLEX_MODE       ETH_MACCR_DM
+#define ETH_HALFDUPLEX_MODE       ((uint32_t)0x00000000U)
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Back_Off_Limit ETH Back Off Limit
+  * @{
+  */
+#define ETH_BACKOFFLIMIT_10  0x00000000U
+#define ETH_BACKOFFLIMIT_8   0x00000020U
+#define ETH_BACKOFFLIMIT_4   0x00000040U
+#define ETH_BACKOFFLIMIT_1   0x00000060U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Preamble_Length ETH Preamble Length
+  * @{
+  */
+#define ETH_PREAMBLELENGTH_7      ETH_MACCR_PRELEN_7
+#define ETH_PREAMBLELENGTH_5      ETH_MACCR_PRELEN_5
+#define ETH_PREAMBLELENGTH_3      ETH_MACCR_PRELEN_3
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Source_Addr_Control ETH Source Addr Control
+  * @{
+  */
+#define ETH_SOURCEADDRESS_DISABLE           ((uint32_t)0x00000000U)
+#define ETH_SOURCEADDRESS_INSERT_ADDR0      ETH_MACCR_SARC_INSADDR0
+#define ETH_SOURCEADDRESS_INSERT_ADDR1      ETH_MACCR_SARC_INSADDR1
+#define ETH_SOURCEADDRESS_REPLACE_ADDR0     ETH_MACCR_SARC_REPADDR0
+#define ETH_SOURCEADDRESS_REPLACE_ADDR1     ETH_MACCR_SARC_REPADDR1
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Control_Packets_Filter ETH Control Packets Filter
+  * @{
+  */
+#define ETH_CTRLPACKETS_BLOCK_ALL                      ETH_MACPFR_PCF_BLOCKALL
+#define ETH_CTRLPACKETS_FORWARD_ALL_EXCEPT_PA          ETH_MACPFR_PCF_FORWARDALLEXCEPTPA
+#define ETH_CTRLPACKETS_FORWARD_ALL                    ETH_MACPFR_PCF_FORWARDALL
+#define ETH_CTRLPACKETS_FORWARD_PASSED_ADDR_FILTER     ETH_MACPFR_PCF_FORWARDPASSEDADDRFILTER
+/**
+  * @}
+  */
+
+/** @defgroup ETH_VLAN_Tag_Comparison ETH VLAN Tag Comparison
+  * @{
+  */
+#define ETH_VLANTAGCOMPARISON_12BIT    0x00010000U
+#define ETH_VLANTAGCOMPARISON_16BIT    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses ETH MAC addresses
+  * @{
+  */
+#define ETH_MAC_ADDRESS0     ((uint32_t)0x00000000U)
+#define ETH_MAC_ADDRESS1     ((uint32_t)0x00000008U)
+#define ETH_MAC_ADDRESS2     ((uint32_t)0x00000010U)
+#define ETH_MAC_ADDRESS3     ((uint32_t)0x00000018U)
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_Interrupts ETH MAC Interrupts
+  * @{
+  */
+#define ETH_MAC_PMT_IT           ETH_MACSR_PMTS
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_Wake_Up_Event ETH MAC Wake Up Event
+  * @{
+  */
+#define ETH_WAKEUP_PACKET_RECIEVED    ETH_MACPCSR_RWKPRCVD
+#define ETH_MAGIC_PACKET_RECIEVED     ETH_MACPCSR_MGKPRCVD
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_Rx_Tx_Status ETH MAC Rx Tx Status
+  * @{
+  */
+#define ETH_RECEIVE_WATCHDOG_TIMEOUT        ETH_MACRXTXSR_RWT
+#define ETH_EXECESSIVE_COLLISIONS           ETH_MACRXTXSR_EXCOL
+#define ETH_LATE_COLLISIONS                 ETH_MACRXTXSR_LCOL
+#define ETH_EXECESSIVE_DEFERRAL             ETH_MACRXTXSR_EXDEF
+#define ETH_LOSS_OF_CARRIER                 ETH_MACRXTXSR_LCARR
+#define ETH_NO_CARRIER                      ETH_MACRXTXSR_NCARR
+#define ETH_TRANSMIT_JABBR_TIMEOUT          ETH_MACRXTXSR_TJT
+/**
+  * @}
+  */
+
+/** @defgroup HAL_ETH_StateTypeDef ETH States
+  * @{
+  */
+#define HAL_ETH_STATE_RESET       ((uint32_t)0x00000000U)    /*!< Peripheral not yet Initialized or disabled */
+#define HAL_ETH_STATE_READY       ((uint32_t)0x00000010U)    /*!< Peripheral Communication started           */
+#define HAL_ETH_STATE_BUSY        ((uint32_t)0x00000023U)    /*!< an internal process is ongoing             */
+#define HAL_ETH_STATE_STARTED     ((uint32_t)0x00000023U)    /*!< an internal process is started             */
+#define HAL_ETH_STATE_ERROR       ((uint32_t)0x000000E0U)    /*!< Error State                                */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_AutoNegotiation ETH AutoNegotiation
+  * @{
+  */
+#define ETH_AUTONEGOTIATION_ENABLE     0x00000001U
+#define ETH_AUTONEGOTIATION_DISABLE    0x00000000U
+
+/**
+  * @}
+  */
+/** @defgroup ETH_Rx_Mode ETH Rx Mode
+  * @{
+  */
+#define ETH_RXPOLLING_MODE      0x00000000U
+#define ETH_RXINTERRUPT_MODE    0x00000001U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Checksum_Mode ETH Checksum Mode
+  * @{
+  */
+#define ETH_CHECKSUM_BY_HARDWARE      0x00000000U
+#define ETH_CHECKSUM_BY_SOFTWARE      0x00000001U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Media_Interface ETH Media Interface
+  * @{
+  */
+#define ETH_MEDIA_INTERFACE_MII       0x00000000U
+#define ETH_MEDIA_INTERFACE_RMII      ((uint32_t)SYSCFG_PMC_MII_RMII_SEL)
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Watchdog ETH Watchdog
+  * @{
+  */
+#define ETH_WATCHDOG_ENABLE       0x00000000U
+#define ETH_WATCHDOG_DISABLE      0x00800000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Jabber ETH Jabber
+  * @{
+  */
+#define ETH_JABBER_ENABLE    0x00000000U
+#define ETH_JABBER_DISABLE   0x00400000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Inter_Frame_Gap ETH Inter Frame Gap
+  * @{
+  */
+#define ETH_INTERFRAMEGAP_96BIT   0x00000000U  /*!< minimum IFG between frames during transmission is 96Bit */
+#define ETH_INTERFRAMEGAP_88BIT   0x00020000U  /*!< minimum IFG between frames during transmission is 88Bit */
+#define ETH_INTERFRAMEGAP_80BIT   0x00040000U  /*!< minimum IFG between frames during transmission is 80Bit */
+#define ETH_INTERFRAMEGAP_72BIT   0x00060000U  /*!< minimum IFG between frames during transmission is 72Bit */
+#define ETH_INTERFRAMEGAP_64BIT   0x00080000U  /*!< minimum IFG between frames during transmission is 64Bit */
+#define ETH_INTERFRAMEGAP_56BIT   0x000A0000U  /*!< minimum IFG between frames during transmission is 56Bit */
+#define ETH_INTERFRAMEGAP_48BIT   0x000C0000U  /*!< minimum IFG between frames during transmission is 48Bit */
+#define ETH_INTERFRAMEGAP_40BIT   0x000E0000U  /*!< minimum IFG between frames during transmission is 40Bit */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Carrier_Sense ETH Carrier Sense
+  * @{
+  */
+#define ETH_CARRIERSENCE_ENABLE   0x00000000U
+#define ETH_CARRIERSENCE_DISABLE  0x00010000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Own ETH Receive Own
+  * @{
+  */
+#define ETH_RECEIVEOWN_ENABLE     0x00000000U
+#define ETH_RECEIVEOWN_DISABLE    0x00002000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Loop_Back_Mode ETH Loop Back Mode
+  * @{
+  */
+#define ETH_LOOPBACKMODE_ENABLE        0x00001000U
+#define ETH_LOOPBACKMODE_DISABLE       0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Checksum_Offload ETH Checksum Offload
+  * @{
+  */
+#define ETH_CHECKSUMOFFLAOD_ENABLE     0x00000400U
+#define ETH_CHECKSUMOFFLAOD_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Retry_Transmission ETH Retry Transmission
+  * @{
+  */
+#define ETH_RETRYTRANSMISSION_ENABLE   0x00000000U
+#define ETH_RETRYTRANSMISSION_DISABLE  0x00000200U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Automatic_Pad_CRC_Strip ETH Automatic Pad CRC Strip
+  * @{
+  */
+#define ETH_AUTOMATICPADCRCSTRIP_ENABLE     0x00000080U
+#define ETH_AUTOMATICPADCRCSTRIP_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Deferral_Check ETH Deferral Check
+  * @{
+  */
+#define ETH_DEFFERRALCHECK_ENABLE       0x00000010U
+#define ETH_DEFFERRALCHECK_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_All ETH Receive All
+  * @{
+  */
+#define ETH_RECEIVEALL_ENABLE     0x80000000U
+#define ETH_RECEIVEALL_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Source_Addr_Filter ETH Source Addr Filter
+  * @{
+  */
+#define ETH_SOURCEADDRFILTER_NORMAL_ENABLE       0x00000200U
+#define ETH_SOURCEADDRFILTER_INVERSE_ENABLE      0x00000300U
+#define ETH_SOURCEADDRFILTER_DISABLE             0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Pass_Control_Frames ETH Pass Control Frames
+  * @{
+  */
+#define ETH_PASSCONTROLFRAMES_BLOCKALL                0x00000040U  /*!< MAC filters all control frames from reaching the application */
+#define ETH_PASSCONTROLFRAMES_FORWARDALL              0x00000080U  /*!< MAC forwards all control frames to application even if they fail the Address Filter */
+#define ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER 0x000000C0U  /*!< MAC forwards control frames that pass the Address Filter. */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Broadcast_Frames_Reception ETH Broadcast Frames Reception
+  * @{
+  */
+#define ETH_BROADCASTFRAMESRECEPTION_ENABLE     0x00000000U
+#define ETH_BROADCASTFRAMESRECEPTION_DISABLE    0x00000020U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Destination_Addr_Filter ETH Destination Addr Filter
+  * @{
+  */
+#define ETH_DESTINATIONADDRFILTER_NORMAL    0x00000000U
+#define ETH_DESTINATIONADDRFILTER_INVERSE   0x00000008U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Promiscuous_Mode ETH Promiscuous Mode
+  * @{
+  */
+#define ETH_PROMISCUOUS_MODE_ENABLE     0x00000001U
+#define ETH_PROMISCUOUS_MODE_DISABLE    0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Multicast_Frames_Filter ETH Multicast Frames Filter
+  * @{
+  */
+#define ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE    0x00000404U
+#define ETH_MULTICASTFRAMESFILTER_HASHTABLE           0x00000004U
+#define ETH_MULTICASTFRAMESFILTER_PERFECT             0x00000000U
+#define ETH_MULTICASTFRAMESFILTER_NONE                0x00000010U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Unicast_Frames_Filter ETH Unicast Frames Filter
+  * @{
+  */
+#define ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE 0x00000402U
+#define ETH_UNICASTFRAMESFILTER_HASHTABLE        0x00000002U
+#define ETH_UNICASTFRAMESFILTER_PERFECT          0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Zero_Quanta_Pause ETH Zero Quanta Pause
+  * @{
+  */
+#define ETH_ZEROQUANTAPAUSE_ENABLE     0x00000000U
+#define ETH_ZEROQUANTAPAUSE_DISABLE    0x00000080U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Pause_Low_Threshold ETH Pause Low Threshold
+  * @{
+  */
+#define ETH_PAUSELOWTHRESHOLD_MINUS4        0x00000000U  /*!< Pause time minus 4 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS28       0x00000010U  /*!< Pause time minus 28 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS144      0x00000020U  /*!< Pause time minus 144 slot times */
+#define ETH_PAUSELOWTHRESHOLD_MINUS256      0x00000030U  /*!< Pause time minus 256 slot times */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Unicast_Pause_Frame_Detect ETH Unicast Pause Frame Detect
+  * @{
+  */
+#define ETH_UNICASTPAUSEFRAMEDETECT_ENABLE  0x00000008U
+#define ETH_UNICASTPAUSEFRAMEDETECT_DISABLE 0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Flow_Control ETH Receive Flow Control
+  * @{
+  */
+#define ETH_RECEIVEFLOWCONTROL_ENABLE       0x00000004U
+#define ETH_RECEIVEFLOWCONTROL_DISABLE      0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Flow_Control ETH Transmit Flow Control
+  * @{
+  */
+#define ETH_TRANSMITFLOWCONTROL_ENABLE      0x00000002U
+#define ETH_TRANSMITFLOWCONTROL_DISABLE     0x00000000U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses_filter_SA_DA ETH MAC addresses filter SA DA
+  * @{
+  */
+#define ETH_MAC_ADDRESSFILTER_SA       0x00000000U
+#define ETH_MAC_ADDRESSFILTER_DA       0x00000008U
+/**
+  * @}
+  */
+
+/** @defgroup ETH_MAC_addresses_filter_Mask_bytes ETH MAC addresses filter Mask bytes
+  * @{
+  */
+#define ETH_MAC_ADDRESSMASK_BYTE6      0x20000000U  /*!< Mask MAC Address high reg bits [15:8] */
+#define ETH_MAC_ADDRESSMASK_BYTE5      0x10000000U  /*!< Mask MAC Address high reg bits [7:0] */
+#define ETH_MAC_ADDRESSMASK_BYTE4      0x08000000U  /*!< Mask MAC Address low reg bits [31:24] */
+#define ETH_MAC_ADDRESSMASK_BYTE3      0x04000000U  /*!< Mask MAC Address low reg bits [23:16] */
+#define ETH_MAC_ADDRESSMASK_BYTE2      0x02000000U  /*!< Mask MAC Address low reg bits [15:8] */
+#define ETH_MAC_ADDRESSMASK_BYTE1      0x01000000U  /*!< Mask MAC Address low reg bits [70] */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Transmit_Threshold_Control ETH Transmit Threshold Control
+  * @{
+  */
+#define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES     0x00000000U  /*!< threshold level of the MTL Transmit FIFO is 64 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_128BYTES    0x00004000U  /*!< threshold level of the MTL Transmit FIFO is 128 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_192BYTES    0x00008000U  /*!< threshold level of the MTL Transmit FIFO is 192 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_256BYTES    0x0000C000U  /*!< threshold level of the MTL Transmit FIFO is 256 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_40BYTES     0x00010000U  /*!< threshold level of the MTL Transmit FIFO is 40 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_32BYTES     0x00014000U  /*!< threshold level of the MTL Transmit FIFO is 32 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_24BYTES     0x00018000U  /*!< threshold level of the MTL Transmit FIFO is 24 Bytes */
+#define ETH_TRANSMITTHRESHOLDCONTROL_16BYTES     0x0001C000U  /*!< threshold level of the MTL Transmit FIFO is 16 Bytes */
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Receive_Threshold_Control ETH Receive Threshold Control
+  * @{
+  */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES      0x00000000U  /*!< threshold level of the MTL Receive FIFO is 64 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES      0x00000008U  /*!< threshold level of the MTL Receive FIFO is 32 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES      0x00000010U  /*!< threshold level of the MTL Receive FIFO is 96 Bytes */
+#define ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES     0x00000018U  /*!< threshold level of the MTL Receive FIFO is 128 Bytes */
 /**
   * @}
   */
 
 /** @defgroup ETH_DMA_Arbitration ETH DMA Arbitration
   * @{
-  */ 
+  */
 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1   0x00000000U
 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1   0x00004000U
 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1   0x00008000U
@@ -1414,7 +1631,7 @@
 
 /** @defgroup ETH_DMA_Tx_descriptor_segment ETH DMA Tx descriptor segment
   * @{
-  */ 
+  */
 #define ETH_DMATXDESC_LASTSEGMENTS      0x40000000U  /*!< Last Segment */
 #define ETH_DMATXDESC_FIRSTSEGMENT      0x20000000U  /*!< First Segment */
 /**
@@ -1423,7 +1640,7 @@
 
 /** @defgroup ETH_DMA_Tx_descriptor_Checksum_Insertion_Control ETH DMA Tx descriptor Checksum Insertion Control
   * @{
-  */ 
+  */
 #define ETH_DMATXDESC_CHECKSUMBYPASS             0x00000000U   /*!< Checksum engine bypass */
 #define ETH_DMATXDESC_CHECKSUMIPV4HEADER         0x00400000U   /*!< IPv4 header checksum insertion  */
 #define ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT  0x00800000U   /*!< TCP/UDP/ICMP checksum insertion. Pseudo header checksum is assumed to be present */
@@ -1432,9 +1649,9 @@
   * @}
   */
 
-/** @defgroup ETH_DMA_Rx_descriptor_buffers ETH DMA Rx descriptor buffers 
+/** @defgroup ETH_DMA_Rx_descriptor_buffers ETH DMA Rx descriptor buffers
   * @{
-  */ 
+  */
 #define ETH_DMARXDESC_BUFFER1     0x00000000U  /*!< DMA Rx Desc Buffer1 */
 #define ETH_DMARXDESC_BUFFER2     0x00000001U  /*!< DMA Rx Desc Buffer2 */
 /**
@@ -1443,7 +1660,7 @@
 
 /** @defgroup ETH_PMT_Flags ETH PMT Flags
   * @{
-  */ 
+  */
 #define ETH_PMT_FLAG_WUFFRPR      0x80000000U  /*!< Wake-Up Frame Filter Register Pointer Reset */
 #define ETH_PMT_FLAG_WUFR         0x00000040U  /*!< Wake-Up Frame Received */
 #define ETH_PMT_FLAG_MPR          0x00000020U  /*!< Magic Packet Received */
@@ -1453,7 +1670,7 @@
 
 /** @defgroup ETH_MMC_Tx_Interrupts ETH MMC Tx Interrupts
   * @{
-  */ 
+  */
 #define ETH_MMC_IT_TGF       0x00200000U  /*!< When Tx good frame counter reaches half the maximum value */
 #define ETH_MMC_IT_TGFMSC    0x00008000U  /*!< When Tx good multi col counter reaches half the maximum value */
 #define ETH_MMC_IT_TGFSC     0x00004000U  /*!< When Tx good single col counter reaches half the maximum value */
@@ -1473,7 +1690,7 @@
 
 /** @defgroup ETH_MAC_Flags ETH MAC Flags
   * @{
-  */ 
+  */
 #define ETH_MAC_FLAG_TST     0x00000200U  /*!< Time stamp trigger flag (on MAC) */
 #define ETH_MAC_FLAG_MMCT    0x00000040U  /*!< MMC transmit flag  */
 #define ETH_MAC_FLAG_MMCR    0x00000020U  /*!< MMC receive flag */
@@ -1485,7 +1702,7 @@
 
 /** @defgroup ETH_DMA_Flags ETH DMA Flags
   * @{
-  */ 
+  */
 #define ETH_DMA_FLAG_TST               0x20000000U  /*!< Time-stamp trigger interrupt (on DMA) */
 #define ETH_DMA_FLAG_PMT               0x10000000U  /*!< PMT interrupt (on DMA) */
 #define ETH_DMA_FLAG_MMC               0x08000000U  /*!< MMC interrupt (on DMA) */
@@ -1511,9 +1728,9 @@
   * @}
   */
 
-/** @defgroup ETH_MAC_Interrupts ETH MAC Interrupts 
+/** @defgroup ETH_MAC_Interrupts ETH MAC Interrupts
   * @{
-  */ 
+  */
 #define ETH_MAC_IT_TST       0x00000200U  /*!< Time stamp trigger interrupt (on MAC) */
 #define ETH_MAC_IT_MMCT      0x00000040U  /*!< MMC transmit interrupt */
 #define ETH_MAC_IT_MMCR      0x00000020U  /*!< MMC receive interrupt */
@@ -1523,9 +1740,9 @@
   * @}
   */
 
-/** @defgroup ETH_DMA_Interrupts ETH DMA Interrupts 
+/** @defgroup ETH_DMA_Interrupts ETH DMA Interrupts
   * @{
-  */ 
+  */
 #define ETH_DMA_IT_TST       0x20000000U  /*!< Time-stamp trigger interrupt (on DMA) */
 #define ETH_DMA_IT_PMT       0x10000000U  /*!< PMT interrupt (on DMA) */
 #define ETH_DMA_IT_MMC       0x08000000U  /*!< MMC interrupt (on DMA) */
@@ -1548,9 +1765,9 @@
   * @}
   */
 
-/** @defgroup ETH_DMA_transmit_process_state ETH DMA transmit process state 
+/** @defgroup ETH_DMA_transmit_process_state ETH DMA transmit process state
   * @{
-  */ 
+  */
 #define ETH_DMA_TRANSMITPROCESS_STOPPED     0x00000000U  /*!< Stopped - Reset or Stop Tx Command issued */
 #define ETH_DMA_TRANSMITPROCESS_FETCHING    0x00100000U  /*!< Running - fetching the Tx descriptor */
 #define ETH_DMA_TRANSMITPROCESS_WAITING     0x00200000U  /*!< Running - waiting for status */
@@ -1560,12 +1777,12 @@
 
 /**
   * @}
-  */ 
+  */
 
 
-/** @defgroup ETH_DMA_receive_process_state ETH DMA receive process state 
+/** @defgroup ETH_DMA_receive_process_state ETH DMA receive process state
   * @{
-  */ 
+  */
 #define ETH_DMA_RECEIVEPROCESS_STOPPED      0x00000000U  /*!< Stopped - Reset or Stop Rx Command issued */
 #define ETH_DMA_RECEIVEPROCESS_FETCHING     0x00020000U  /*!< Running - fetching the Rx descriptor */
 #define ETH_DMA_RECEIVEPROCESS_WAITING      0x00060000U  /*!< Running - waiting for packet */
@@ -1579,611 +1796,330 @@
 
 /** @defgroup ETH_DMA_overflow ETH DMA overflow
   * @{
-  */ 
+  */
 #define ETH_DMA_OVERFLOW_RXFIFOCOUNTER      0x10000000U  /*!< Overflow bit for FIFO overflow counter */
 #define ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER 0x00010000U  /*!< Overflow bit for missed frame counter */
 /**
   * @}
-  */ 
-
-/** @defgroup ETH_EXTI_LINE_WAKEUP ETH EXTI LINE WAKEUP
+  */
+/** @defgroup ETH_PTP_Config_Status ETH PTP Config Status
   * @{
-  */ 
-#define ETH_EXTI_LINE_WAKEUP              0x00080000U  /*!< External interrupt line 19 Connected to the ETH EXTI Line */
-
+  */
+#define HAL_ETH_PTP_NOT_CONFIGURATED       ((uint32_t)0x00000000U)    /*!< ETH PTP Configuration not done */
+#define HAL_ETH_PTP_CONFIGURATED           ((uint32_t)0x00000001U)    /*!< ETH PTP Configuration done     */
 /**
   * @}
   */
-
 /**
   * @}
   */
 
 /* Exported macro ------------------------------------------------------------*/
 /** @defgroup ETH_Exported_Macros ETH Exported Macros
- *  @brief macros to handle interrupts and specific clock configurations
- * @{
- */
- 
+  * @{
+  */
+
 /** @brief Reset ETH handle state
-  * @param  __HANDLE__ specifies the ETH handle.
+  * @param  __HANDLE__: specifies the ETH handle.
   * @retval None
   */
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__)  do{                                                 \
-                                                       (__HANDLE__)->State = HAL_ETH_STATE_RESET;     \
-                                                       (__HANDLE__)->MspInitCallback = NULL;          \
-                                                       (__HANDLE__)->MspDeInitCallback = NULL;        \
-                                                     } while(0)
+#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__)  do{                                                   \
+                                                      (__HANDLE__)->gState = HAL_ETH_STATE_RESET;      \
+                                                      (__HANDLE__)->MspInitCallback = NULL;             \
+                                                      (__HANDLE__)->MspDeInitCallback = NULL;           \
+                                                    } while(0)
 #else
-#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ETH_STATE_RESET)
+#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__)  do{                                                   \
+                                                      (__HANDLE__)->gState = HAL_ETH_STATE_RESET;      \
+                                                    } while(0)
 #endif /*USE_HAL_ETH_REGISTER_CALLBACKS */
 
-/** 
-  * @brief  Checks whether the specified ETHERNET DMA Tx Desc flag is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @param  __FLAG__ specifies the flag of TDES0 to check.
-  * @retval the ETH_DMATxDescFlag (SET or RESET).
-  */
-#define __HAL_ETH_DMATXDESC_GET_FLAG(__HANDLE__, __FLAG__)             ((__HANDLE__)->TxDesc->Status & (__FLAG__) == (__FLAG__))
-
 /**
-  * @brief  Checks whether the specified ETHERNET DMA Rx Desc flag is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @param  __FLAG__ specifies the flag of RDES0 to check.
-  * @retval the ETH_DMATxDescFlag (SET or RESET).
-  */
-#define __HAL_ETH_DMARXDESC_GET_FLAG(__HANDLE__, __FLAG__)             ((__HANDLE__)->RxDesc->Status & (__FLAG__) == (__FLAG__))
-
-/**
-  * @brief  Enables the specified DMA Rx Desc receive interrupt.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_DMARXDESC_ENABLE_IT(__HANDLE__)                          ((__HANDLE__)->RxDesc->ControlBufferSize &=(~(uint32_t)ETH_DMARXDESC_DIC))
-
-/**
-  * @brief  Disables the specified DMA Rx Desc receive interrupt.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_DMARXDESC_DISABLE_IT(__HANDLE__)                         ((__HANDLE__)->RxDesc->ControlBufferSize |= ETH_DMARXDESC_DIC)
-
-/**
-  * @brief  Set the specified DMA Rx Desc Own bit.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_DMARXDESC_SET_OWN_BIT(__HANDLE__)                           ((__HANDLE__)->RxDesc->Status |= ETH_DMARXDESC_OWN)
-
-/**
-  * @brief  Returns the specified ETHERNET DMA Tx Desc collision count.
-  * @param  __HANDLE__ ETH Handle                     
-  * @retval The Transmit descriptor collision counter value.
-  */
-#define __HAL_ETH_DMATXDESC_GET_COLLISION_COUNT(__HANDLE__)                   (((__HANDLE__)->TxDesc->Status & ETH_DMATXDESC_CC) >> ETH_DMATXDESC_COLLISION_COUNTSHIFT)
-
-/**
-  * @brief  Set the specified DMA Tx Desc Own bit.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_SET_OWN_BIT(__HANDLE__)                       ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_OWN)
-
-/**
-  * @brief  Enables the specified DMA Tx Desc Transmit interrupt.
-  * @param  __HANDLE__ ETH Handle                   
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_ENABLE_IT(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_IC)
-
-/**
-  * @brief  Disables the specified DMA Tx Desc Transmit interrupt.
-  * @param  __HANDLE__ ETH Handle             
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_DISABLE_IT(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_IC)
-
-/**
-  * @brief  Selects the specified ETHERNET DMA Tx Desc Checksum Insertion.
-  * @param  __HANDLE__ ETH Handle  
-  * @param  __CHECKSUM__ specifies is the DMA Tx desc checksum insertion.
-  *   This parameter can be one of the following values:
-  *     @arg ETH_DMATXDESC_CHECKSUMBYPASS : Checksum bypass
-  *     @arg ETH_DMATXDESC_CHECKSUMIPV4HEADER : IPv4 header checksum
-  *     @arg ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT : TCP/UDP/ICMP checksum. Pseudo header checksum is assumed to be present
-  *     @arg ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL : TCP/UDP/ICMP checksum fully in hardware including pseudo header
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_CHECKSUM_INSERTION(__HANDLE__, __CHECKSUM__)     ((__HANDLE__)->TxDesc->Status |= (__CHECKSUM__))
-
-/**
-  * @brief  Enables the DMA Tx Desc CRC.
-  * @param  __HANDLE__ ETH Handle 
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_CRC_ENABLE(__HANDLE__)                          ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DC)
-
-/**
-  * @brief  Disables the DMA Tx Desc CRC.
-  * @param  __HANDLE__ ETH Handle 
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_CRC_DISABLE(__HANDLE__)                         ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DC)
-
-/**
-  * @brief  Enables the DMA Tx Desc padding for frame shorter than 64 bytes.
-  * @param  __HANDLE__ ETH Handle 
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_ENABLE(__HANDLE__)            ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DP)
-
-/**
-  * @brief  Disables the DMA Tx Desc padding for frame shorter than 64 bytes.
-  * @param  __HANDLE__ ETH Handle 
-  * @retval None
-  */
-#define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_DISABLE(__HANDLE__)           ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DP)
-
-/** 
- * @brief  Enables the specified ETHERNET MAC interrupts.
-  * @param  __HANDLE__    ETH Handle
-  * @param  __INTERRUPT__ specifies the ETHERNET MAC interrupt sources to be
-  *   enabled or disabled.
-  *   This parameter can be any combination of the following values:
-  *     @arg ETH_MAC_IT_TST : Time stamp trigger interrupt 
-  *     @arg ETH_MAC_IT_PMT : PMT interrupt 
-  * @retval None
-  */
-#define __HAL_ETH_MAC_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->MACIMR |= (__INTERRUPT__))
-
-/**
-  * @brief  Disables the specified ETHERNET MAC interrupts.
-  * @param  __HANDLE__    ETH Handle
-  * @param  __INTERRUPT__ specifies the ETHERNET MAC interrupt sources to be
-  *   enabled or disabled.
-  *   This parameter can be any combination of the following values:
-  *     @arg ETH_MAC_IT_TST : Time stamp trigger interrupt 
-  *     @arg ETH_MAC_IT_PMT : PMT interrupt
-  * @retval None
-  */
-#define __HAL_ETH_MAC_DISABLE_IT(__HANDLE__, __INTERRUPT__)                ((__HANDLE__)->Instance->MACIMR &= ~(__INTERRUPT__))
-
-/**
-  * @brief  Initiate a Pause Control Frame (Full-duplex only).
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_INITIATE_PAUSE_CONTROL_FRAME(__HANDLE__)              ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA)
-
-/**
-  * @brief  Checks whether the ETHERNET flow control busy bit is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @retval The new state of flow control busy status bit (SET or RESET).
-  */
-#define __HAL_ETH_GET_FLOW_CONTROL_BUSY_STATUS(__HANDLE__)               (((__HANDLE__)->Instance->MACFCR & ETH_MACFCR_FCBBPA) == ETH_MACFCR_FCBBPA)
-
-/**
-  * @brief  Enables the MAC Back Pressure operation activation (Half-duplex only).
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_BACK_PRESSURE_ACTIVATION_ENABLE(__HANDLE__)          ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA)
-
-/**
-  * @brief  Disables the MAC BackPressure operation activation (Half-duplex only).
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_BACK_PRESSURE_ACTIVATION_DISABLE(__HANDLE__)         ((__HANDLE__)->Instance->MACFCR &= ~ETH_MACFCR_FCBBPA)
-
-/**
-  * @brief  Checks whether the specified ETHERNET MAC flag is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @param  __FLAG__ specifies the flag to check.
-  *   This parameter can be one of the following values:
-  *     @arg ETH_MAC_FLAG_TST  : Time stamp trigger flag   
-  *     @arg ETH_MAC_FLAG_MMCT : MMC transmit flag  
-  *     @arg ETH_MAC_FLAG_MMCR : MMC receive flag   
-  *     @arg ETH_MAC_FLAG_MMC  : MMC flag  
-  *     @arg ETH_MAC_FLAG_PMT  : PMT flag  
-  * @retval The state of ETHERNET MAC flag.
-  */
-#define __HAL_ETH_MAC_GET_FLAG(__HANDLE__, __FLAG__)                   (((__HANDLE__)->Instance->MACSR &( __FLAG__)) == ( __FLAG__))
-
-/** 
   * @brief  Enables the specified ETHERNET DMA interrupts.
-  * @param  __HANDLE__    ETH Handle
-  * @param  __INTERRUPT__ specifies the ETHERNET DMA interrupt sources to be
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the ETHERNET DMA interrupt sources to be
   *   enabled @ref ETH_DMA_Interrupts
   * @retval None
   */
-#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->DMAIER |= (__INTERRUPT__))
+#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->DMAIER \
+                                                                            |= (__INTERRUPT__))
 
 /**
   * @brief  Disables the specified ETHERNET DMA interrupts.
-  * @param  __HANDLE__    ETH Handle
-  * @param  __INTERRUPT__ specifies the ETHERNET DMA interrupt sources to be
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the ETHERNET DMA interrupt sources to be
   *   disabled. @ref ETH_DMA_Interrupts
   * @retval None
   */
-#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)                ((__HANDLE__)->Instance->DMAIER &= ~(__INTERRUPT__))
+#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__)                ((__HANDLE__)->Instance->DMAIER \
+                                                                            &= ~(__INTERRUPT__))
+
+/**
+  * @brief  Gets the ETHERNET DMA IT source enabled or disabled.
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the interrupt source to get . @ref ETH_DMA_Interrupts
+  * @retval The ETH DMA IT Source enabled or disabled
+  */
+#define __HAL_ETH_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)      (((__HANDLE__)->Instance->DMAIER &\
+                                                                      (__INTERRUPT__)) == (__INTERRUPT__))
+
+/**
+  * @brief  Gets the ETHERNET DMA IT pending bit.
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the interrupt source to get . @ref ETH_DMA_Interrupts
+  * @retval The state of ETH DMA IT (SET or RESET)
+  */
+#define __HAL_ETH_DMA_GET_IT(__HANDLE__, __INTERRUPT__)      (((__HANDLE__)->Instance->DMASR &\
+                                                               (__INTERRUPT__)) == (__INTERRUPT__))
 
 /**
   * @brief  Clears the ETHERNET DMA IT pending bit.
-  * @param  __HANDLE__    ETH Handle
-  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear. @ref ETH_DMA_Interrupts
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the interrupt pending bit to clear. @ref ETH_DMA_Interrupts
   * @retval None
   */
-#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->DMASR =(__INTERRUPT__))
+#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->DMASR = (__INTERRUPT__))
 
 /**
   * @brief  Checks whether the specified ETHERNET DMA flag is set or not.
-* @param  __HANDLE__ ETH Handle
-  * @param  __FLAG__ specifies the flag to check. @ref ETH_DMA_Flags
-  * @retval The new state of ETH_DMA_FLAG (SET or RESET).
+  * @param  __HANDLE__: ETH Handle
+  * @param  __FLAG__: specifies the flag to check. @ref ETH_DMA_Status_Flags
+  * @retval The state of ETH DMA FLAG (SET or RESET).
   */
-#define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__)                   (((__HANDLE__)->Instance->DMASR &( __FLAG__)) == ( __FLAG__))
+#define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__)                   (((__HANDLE__)->Instance->DMACSR &\
+                                                                         ( __FLAG__)) == ( __FLAG__))
 
 /**
-  * @brief  Checks whether the specified ETHERNET DMA flag is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @param  __FLAG__ specifies the flag to clear. @ref ETH_DMA_Flags
-  * @retval The new state of ETH_DMA_FLAG (SET or RESET).
+  * @brief  Clears the specified ETHERNET DMA flag.
+  * @param  __HANDLE__: ETH Handle
+  * @param  __FLAG__: specifies the flag to check. @ref ETH_DMA_Status_Flags
+  * @retval The state of ETH DMA FLAG (SET or RESET).
   */
-#define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)                 ((__HANDLE__)->Instance->DMASR = (__FLAG__))
+#define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)                   ((__HANDLE__)->Instance->DMACSR = ( __FLAG__))
 
 /**
-  * @brief  Checks whether the specified ETHERNET DMA overflow flag is set or not.
-  * @param  __HANDLE__ ETH Handle
-  * @param  __OVERFLOW__ specifies the DMA overflow flag to check.
-  *   This parameter can be one of the following values:
-  *     @arg ETH_DMA_OVERFLOW_RXFIFOCOUNTER : Overflow for FIFO Overflows Counter
-  *     @arg ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER : Overflow for Buffer Unavailable Missed Frame Counter
-  * @retval The state of ETHERNET DMA overflow Flag (SET or RESET).
-  */
-#define __HAL_ETH_GET_DMA_OVERFLOW_STATUS(__HANDLE__, __OVERFLOW__)       (((__HANDLE__)->Instance->DMAMFBOCR & (__OVERFLOW__)) == (__OVERFLOW__))
-
-/**
-  * @brief  Set the DMA Receive status watchdog timer register value
-  * @param  __HANDLE__ ETH Handle
-  * @param  __VALUE__ DMA Receive status watchdog timer register value   
+  * @brief  Enables the specified ETHERNET MAC interrupts.
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the ETHERNET MAC interrupt sources to be
+  *   enabled @ref ETH_MAC_Interrupts
   * @retval None
   */
-#define __HAL_ETH_SET_RECEIVE_WATCHDOG_TIMER(__HANDLE__, __VALUE__)       ((__HANDLE__)->Instance->DMARSWTR = (__VALUE__))
-
-/** 
-  * @brief  Enables any unicast packet filtered by the MAC address
-  *   recognition to be a wake-up frame.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_ENABLE(__HANDLE__)               ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_GU)
+#define __HAL_ETH_MAC_ENABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->MACIER \
+                                                                            |= (__INTERRUPT__))
 
 /**
-  * @brief  Disables any unicast packet filtered by the MAC address
-  *   recognition to be a wake-up frame.
-  * @param  __HANDLE__ ETH Handle.
+  * @brief  Disables the specified ETHERNET MAC interrupts.
+  * @param  __HANDLE__   : ETH Handle
+  * @param  __INTERRUPT__: specifies the ETHERNET MAC interrupt sources to be
+  *   enabled @ref ETH_MAC_Interrupts
   * @retval None
   */
-#define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_DISABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_GU)
+#define __HAL_ETH_MAC_DISABLE_IT(__HANDLE__, __INTERRUPT__)                 ((__HANDLE__)->Instance->MACIER \
+                                                                             &= ~(__INTERRUPT__))
 
 /**
-  * @brief  Enables the MAC Wake-Up Frame Detection.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
+  * @brief  Checks whether the specified ETHERNET MAC flag is set or not.
+  * @param  __HANDLE__: ETH Handle
+  * @param  __INTERRUPT__: specifies the flag to check. @ref ETH_MAC_Interrupts
+  * @retval The state of ETH MAC IT (SET or RESET).
   */
-#define __HAL_ETH_WAKEUP_FRAME_DETECTION_ENABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_WFE)
+#define __HAL_ETH_MAC_GET_IT(__HANDLE__, __INTERRUPT__)                   (((__HANDLE__)->Instance->MACSR &\
+                                                                            ( __INTERRUPT__)) == ( __INTERRUPT__))
+
+/*!< External interrupt line 19 Connected to the ETH wakeup EXTI Line */
+#define ETH_WAKEUP_EXTI_LINE  ((uint32_t)0x00080000U)
 
 /**
-  * @brief  Disables the MAC Wake-Up Frame Detection.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_FRAME_DETECTION_DISABLE(__HANDLE__)             ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE)
-
-/**
-  * @brief  Enables the MAC Magic Packet Detection.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MAGIC_PACKET_DETECTION_ENABLE(__HANDLE__)              ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_MPE)
-
-/**
-  * @brief  Disables the MAC Magic Packet Detection.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MAGIC_PACKET_DETECTION_DISABLE(__HANDLE__)             ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE)
-
-/**
-  * @brief  Enables the MAC Power Down.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_POWER_DOWN_ENABLE(__HANDLE__)                         ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_PD)
-
-/**
-  * @brief  Disables the MAC Power Down.
-  * @param  __HANDLE__ ETH Handle
-  * @retval None
-  */
-#define __HAL_ETH_POWER_DOWN_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_PD)
-
-/**
-  * @brief  Checks whether the specified ETHERNET PMT flag is set or not.
-  * @param  __HANDLE__ ETH Handle.
-  * @param  __FLAG__ specifies the flag to check.
-  *   This parameter can be one of the following values:
-  *     @arg ETH_PMT_FLAG_WUFFRPR : Wake-Up Frame Filter Register Pointer Reset 
-  *     @arg ETH_PMT_FLAG_WUFR    : Wake-Up Frame Received 
-  *     @arg ETH_PMT_FLAG_MPR     : Magic Packet Received
-  * @retval The new state of ETHERNET PMT Flag (SET or RESET).
-  */
-#define __HAL_ETH_GET_PMT_FLAG_STATUS(__HANDLE__, __FLAG__)               (((__HANDLE__)->Instance->MACPMTCSR &( __FLAG__)) == ( __FLAG__))
-
-/** 
-  * @brief  Preset and Initialize the MMC counters to almost-full value: 0xFFFF_FFF0 (full - 16)
-  * @param   __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MMC_COUNTER_FULL_PRESET(__HANDLE__)                     ((__HANDLE__)->Instance->MMCCR |= (ETH_MMCCR_MCFHP | ETH_MMCCR_MCP))
-
-/**
-  * @brief  Preset and Initialize the MMC counters to almost-half value: 0x7FFF_FFF0 (half - 16)
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MMC_COUNTER_HALF_PRESET(__HANDLE__)                     do{(__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCFHP;\
-                                                                          (__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCP;} while (0)
-
-/**
-  * @brief  Enables the MMC Counter Freeze.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MMC_COUNTER_FREEZE_ENABLE(__HANDLE__)                  ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCF)
-
-/**
-  * @brief  Disables the MMC Counter Freeze.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MMC_COUNTER_FREEZE_DISABLE(__HANDLE__)                 ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCF)
-
-/**
-  * @brief  Enables the MMC Reset On Read.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_ETH_MMC_RESET_ONREAD_ENABLE(__HANDLE__)                ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_ROR)
-
-/**
-  * @brief  Disables the MMC Reset On Read.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_ETH_MMC_RESET_ONREAD_DISABLE(__HANDLE__)               ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_ROR)
-
-/**
-  * @brief  Enables the MMC Counter Stop Rollover.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_ENABLE(__HANDLE__)            ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_CSR)
-
-/**
-  * @brief  Disables the MMC Counter Stop Rollover.
-  * @param  __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_DISABLE(__HANDLE__)           ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CSR)
-
-/**
-  * @brief  Resets the MMC Counters.
-  * @param   __HANDLE__ ETH Handle.
-  * @retval None
-  */
-#define __HAL_ETH_MMC_COUNTERS_RESET(__HANDLE__)                         ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CR)
-
-/**
-  * @brief  Enables the specified ETHERNET MMC Rx interrupts.
-  * @param   __HANDLE__ ETH Handle.
-  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
-  *   This parameter can be one of the following values:  
-  *     @arg ETH_MMC_IT_RGUF  : When Rx good unicast frames counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_RFAE  : When Rx alignment error counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_RFCE  : When Rx crc error counter reaches half the maximum value
-  * @retval None
-  */
-#define __HAL_ETH_MMC_RX_IT_ENABLE(__HANDLE__, __INTERRUPT__)               (__HANDLE__)->Instance->MMCRIMR &= ~((__INTERRUPT__) & 0xEFFFFFFFU)
-/**
-  * @brief  Disables the specified ETHERNET MMC Rx interrupts.
-  * @param   __HANDLE__ ETH Handle.
-  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
-  *   This parameter can be one of the following values: 
-  *     @arg ETH_MMC_IT_RGUF  : When Rx good unicast frames counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_RFAE  : When Rx alignment error counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_RFCE  : When Rx crc error counter reaches half the maximum value
-  * @retval None
-  */
-#define __HAL_ETH_MMC_RX_IT_DISABLE(__HANDLE__, __INTERRUPT__)              (__HANDLE__)->Instance->MMCRIMR |= ((__INTERRUPT__) & 0xEFFFFFFFU)
-/**
-  * @brief  Enables the specified ETHERNET MMC Tx interrupts.
-  * @param   __HANDLE__ ETH Handle.
-  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
-  *   This parameter can be one of the following values:  
-  *     @arg ETH_MMC_IT_TGF   : When Tx good frame counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_TGFMSC: When Tx good multi col counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_TGFSC : When Tx good single col counter reaches half the maximum value 
-  * @retval None
-  */
-#define __HAL_ETH_MMC_TX_IT_ENABLE(__HANDLE__, __INTERRUPT__)            ((__HANDLE__)->Instance->MMCRIMR &= ~ (__INTERRUPT__))
-
-/**
-  * @brief  Disables the specified ETHERNET MMC Tx interrupts.
-  * @param   __HANDLE__ ETH Handle.
-  * @param  __INTERRUPT__ specifies the ETHERNET MMC interrupt sources to be enabled or disabled.
-  *   This parameter can be one of the following values:  
-  *     @arg ETH_MMC_IT_TGF   : When Tx good frame counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_TGFMSC: When Tx good multi col counter reaches half the maximum value 
-  *     @arg ETH_MMC_IT_TGFSC : When Tx good single col counter reaches half the maximum value 
-  * @retval None
-  */
-#define __HAL_ETH_MMC_TX_IT_DISABLE(__HANDLE__, __INTERRUPT__)           ((__HANDLE__)->Instance->MMCRIMR |= (__INTERRUPT__))
-
-/**
-  * @brief  Enables the ETH External interrupt line.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT()    EXTI->IMR |= (ETH_EXTI_LINE_WAKEUP)
-
-/**
-  * @brief  Disables the ETH External interrupt line.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_EXTI_DISABLE_IT()   EXTI->IMR &= ~(ETH_EXTI_LINE_WAKEUP)
-
-/**
-  * @brief Enable event on ETH External event line.
+  * @brief Enable the ETH WAKEUP Exti Line.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be enabled.
+  *   @arg ETH_WAKEUP_EXTI_LINE
   * @retval None.
   */
-#define __HAL_ETH_WAKEUP_EXTI_ENABLE_EVENT()  EXTI->EMR |= (ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__)   (EXTI->IMR |= (__EXTI_LINE__))
 
 /**
-  * @brief Disable event on ETH External event line
+  * @brief checks whether the specified ETH WAKEUP Exti interrupt flag is set or not.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
+  *   @arg ETH_WAKEUP_EXTI_LINE
+  * @retval EXTI ETH WAKEUP Line Status.
+  */
+#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__)  (EXTI->PR & (__EXTI_LINE__))
+
+/**
+  * @brief Clear the ETH WAKEUP Exti flag.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
+  *   @arg ETH_WAKEUP_EXTI_LINE
   * @retval None.
   */
-#define __HAL_ETH_WAKEUP_EXTI_DISABLE_EVENT() EXTI->EMR &= ~(ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
+
 
 /**
-  * @brief  Get flag of the ETH External interrupt line.
+  * @brief  enable rising edge interrupt on selected EXTI line.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
+  *  @arg ETH_WAKEUP_EXTI_LINE
   * @retval None
   */
-#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG()     EXTI->PR & (ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR &= ~(__EXTI_LINE__)); \
+  (EXTI->RTSR |= (__EXTI_LINE__))
 
 /**
-  * @brief  Clear flag of the ETH External interrupt line.
+  * @brief  enable falling edge interrupt on selected EXTI line.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
+  *  @arg ETH_WAKEUP_EXTI_LINE
   * @retval None
   */
-#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG()   EXTI->PR = (ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR &= ~(__EXTI_LINE__));\
+  (EXTI->FTSR |= (__EXTI_LINE__))
 
 /**
-  * @brief  Enables rising edge trigger to the ETH External interrupt line.
+  * @brief  enable falling edge interrupt on selected EXTI line.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
+  *  @arg ETH_WAKEUP_EXTI_LINE
   * @retval None
   */
-#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER()  EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP
-                                                            
+#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR |= (__EXTI_LINE__));\
+  (EXTI->FTSR |= (__EXTI_LINE__))
+
 /**
-  * @brief  Disables the rising edge trigger to the ETH External interrupt line.
+  * @brief  Generates a Software interrupt on selected EXTI line.
+  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
+  *  @arg ETH_WAKEUP_EXTI_LINE
   * @retval None
   */
-#define __HAL_ETH_WAKEUP_EXTI_DISABLE_RISING_EDGE_TRIGGER()  EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
 
-/**
-  * @brief  Enables falling edge trigger to the ETH External interrupt line.
-  * @retval None
-  */                                                      
-#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER()  EXTI->FTSR |= (ETH_EXTI_LINE_WAKEUP)
+#define __HAL_ETH_GET_PTP_CONTROL(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->PTPTSCR) & \
+                                                           (__FLAG__)) == (__FLAG__)) ? SET : RESET)
 
-/**
-  * @brief  Disables falling edge trigger to the ETH External interrupt line.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLING_EDGE_TRIGGER()  EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP)
-
-/**
-  * @brief  Enables rising/falling edge trigger to the ETH External interrupt line.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER()  do{EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP;\
-                                                                 EXTI->FTSR |= ETH_EXTI_LINE_WAKEUP;\
-                                                                }while(0U)
-
-/**
-  * @brief  Disables rising/falling edge trigger to the ETH External interrupt line.
-  * @retval None
-  */
-#define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLINGRISING_TRIGGER() do{EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP);\
-                                                                 EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP);\
-                                                                }while(0U)
-
-/**
-  * @brief Generate a Software interrupt on selected EXTI line.
-  * @retval None.
-  */
-#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT()                  EXTI->SWIER|= ETH_EXTI_LINE_WAKEUP
-
+#define __HAL_ETH_SET_PTP_CONTROL(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->PTPTSCR |= (__FLAG__))
 /**
   * @}
   */
+
+
 /* Exported functions --------------------------------------------------------*/
 
 /** @addtogroup ETH_Exported_Functions
   * @{
   */
 
-/* Initialization and de-initialization functions  ****************************/
-
 /** @addtogroup ETH_Exported_Functions_Group1
   * @{
   */
+/* Initialization and de initialization functions  **********************************/
 HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth);
 HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth);
-void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
-void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
-HAL_StatusTypeDef HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t* TxBuff, uint32_t TxBuffCount);
-HAL_StatusTypeDef HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount);
+void              HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
+void              HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
+
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID, pETH_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID,
+                                           pETH_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_ETH_UnRegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID);
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
-/* IO operation functions  ****************************************************/
 
 /** @addtogroup ETH_Exported_Functions_Group2
   * @{
   */
-HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength);
-HAL_StatusTypeDef HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth);
-/* Communication with PHY functions*/
-HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue);
-HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t RegValue);
-/* Non-Blocking mode: Interrupt */
-HAL_StatusTypeDef HAL_ETH_GetReceivedFrame_IT(ETH_HandleTypeDef *heth);
-void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
-/* Callback in non blocking modes (Interrupt) */
-void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
-void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
-void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
+/* IO operation functions *******************************************************/
+HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_Start_IT(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_Stop_IT(ETH_HandleTypeDef *heth);
+
+HAL_StatusTypeDef HAL_ETH_ReadData(ETH_HandleTypeDef *heth, void **pAppBuff);
+HAL_StatusTypeDef HAL_ETH_RegisterRxAllocateCallback(ETH_HandleTypeDef *heth,
+                                                     pETH_rxAllocateCallbackTypeDef rxAllocateCallback);
+HAL_StatusTypeDef HAL_ETH_UnRegisterRxAllocateCallback(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback);
+HAL_StatusTypeDef HAL_ETH_UnRegisterRxLinkCallback(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(ETH_HandleTypeDef *heth, uint32_t *pErrorCode);
+HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback);
+HAL_StatusTypeDef HAL_ETH_UnRegisterTxFreeCallback(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_ReleaseTxPacket(ETH_HandleTypeDef *heth);
+
+#ifdef HAL_ETH_USE_PTP
+HAL_StatusTypeDef HAL_ETH_PTP_SetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
+HAL_StatusTypeDef HAL_ETH_PTP_GetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
+HAL_StatusTypeDef HAL_ETH_PTP_SetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
+HAL_StatusTypeDef HAL_ETH_PTP_GetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
+HAL_StatusTypeDef HAL_ETH_PTP_AddTimeOffset(ETH_HandleTypeDef *heth, ETH_PtpUpdateTypeDef ptpoffsettype,
+                                            ETH_TimeTypeDef *timeoffset);
+HAL_StatusTypeDef HAL_ETH_PTP_InsertTxTimestamp(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_PTP_GetTxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
+HAL_StatusTypeDef HAL_ETH_PTP_GetRxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
+HAL_StatusTypeDef HAL_ETH_RegisterTxPtpCallback(ETH_HandleTypeDef *heth, pETH_txPtpCallbackTypeDef txPtpCallback);
+HAL_StatusTypeDef HAL_ETH_UnRegisterTxPtpCallback(ETH_HandleTypeDef *heth);
+#endif /* HAL_ETH_USE_PTP */
+
+HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig, uint32_t Timeout);
+HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig);
+
+HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
+                                           uint32_t RegValue);
+HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
+                                          uint32_t *pRegValue);
+
+void              HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
+void              HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
+void              HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
+void              HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
+void              HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth);
+void              HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth);
+void              HAL_ETH_RxAllocateCallback(uint8_t **buff);
+void              HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length);
+void              HAL_ETH_TxFreeCallback(uint32_t *buff);
+void              HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp);
 /**
   * @}
   */
 
-/* Peripheral Control functions  **********************************************/
-
 /** @addtogroup ETH_Exported_Functions_Group3
   * @{
   */
+/* Peripheral Control functions  **********************************************/
+/* MAC & DMA Configuration APIs  **********************************************/
+HAL_StatusTypeDef HAL_ETH_GetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
+HAL_StatusTypeDef HAL_ETH_GetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
+HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
+HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
+void              HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth);
 
-HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth);
-HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth);
-HAL_StatusTypeDef HAL_ETH_ConfigMAC(ETH_HandleTypeDef *heth, ETH_MACInitTypeDef *macconf);
-HAL_StatusTypeDef HAL_ETH_ConfigDMA(ETH_HandleTypeDef *heth, ETH_DMAInitTypeDef *dmaconf);
+/* MAC VLAN Processing APIs    ************************************************/
+void              HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits,
+                                              uint32_t VLANIdentifier);
+
+/* MAC L2 Packet Filtering APIs  **********************************************/
+HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig);
+HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig);
+HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable);
+HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(ETH_HandleTypeDef *heth, uint32_t AddrNbr, uint8_t *pMACAddr);
+
+/* MAC Power Down APIs    *****************************************************/
+void              HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth, ETH_PowerDownConfigTypeDef *pPowerDownConfig);
+void              HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth);
+HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count);
+
 /**
   * @}
-  */ 
-
-/* Peripheral State functions  ************************************************/
+  */
 
 /** @addtogroup ETH_Exported_Functions_Group4
   * @{
   */
+/* Peripheral State functions  **************************************************/
 HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth);
+uint32_t             HAL_ETH_GetError(ETH_HandleTypeDef *heth);
+uint32_t             HAL_ETH_GetDMAError(ETH_HandleTypeDef *heth);
+uint32_t             HAL_ETH_GetMACError(ETH_HandleTypeDef *heth);
+uint32_t             HAL_ETH_GetMACWakeUpSource(ETH_HandleTypeDef *heth);
 /**
   * @}
   */
@@ -2200,14 +2136,12 @@
   * @}
   */
 
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx ||\
-          STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
-  
+#endif /* ETH */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_ETH_H */
+#endif /* STM32F4xx_HAL_ETH_H */
 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_exti.h b/Inc/stm32f4xx_hal_exti.h
index 8570112..b18a228 100644
--- a/Inc/stm32f4xx_hal_exti.h
+++ b/Inc/stm32f4xx_hal_exti.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2018 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.Clause
   *
   ******************************************************************************
   */
@@ -365,4 +364,3 @@
 
 #endif /* STM32f4xx_HAL_EXTI_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_flash.h b/Inc/stm32f4xx_hal_flash.h
index b817f63..26d789e 100644
--- a/Inc/stm32f4xx_hal_flash.h
+++ b/Inc/stm32f4xx_hal_flash.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -425,4 +423,3 @@
 
 #endif /* __STM32F4xx_HAL_FLASH_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_flash_ex.h b/Inc/stm32f4xx_hal_flash_ex.h
index 4dbad67..1cf8c45 100644
--- a/Inc/stm32f4xx_hal_flash_ex.h
+++ b/Inc/stm32f4xx_hal_flash_ex.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -1063,4 +1061,3 @@
 
 #endif /* __STM32F4xx_HAL_FLASH_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_flash_ramfunc.h b/Inc/stm32f4xx_hal_flash_ramfunc.h
index 9fab0c9..05917ec 100644
--- a/Inc/stm32f4xx_hal_flash_ramfunc.h
+++ b/Inc/stm32f4xx_hal_flash_ramfunc.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -76,4 +74,3 @@
 
 #endif /* __STM32F4xx_FLASH_RAMFUNC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_fmpi2c.h b/Inc/stm32f4xx_hal_fmpi2c.h
index b7f370a..400b923 100644
--- a/Inc/stm32f4xx_hal_fmpi2c.h
+++ b/Inc/stm32f4xx_hal_fmpi2c.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -277,7 +276,7 @@
 typedef  void (*pFMPI2C_CallbackTypeDef)(FMPI2C_HandleTypeDef *hfmpi2c);
 /*!< pointer to an FMPI2C callback function */
 typedef  void (*pFMPI2C_AddrCallbackTypeDef)(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t TransferDirection,
-                                             uint16_t AddrMatchCode);
+                                          uint16_t AddrMatchCode);
 /*!< pointer to an FMPI2C Address Match callback function */
 
 #endif /* USE_HAL_FMPI2C_REGISTER_CALLBACKS */
@@ -621,13 +620,13 @@
 /* IO operation functions  ****************************************************/
 /******* Blocking mode: Polling */
 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t *pData,
-                                             uint16_t Size, uint32_t Timeout);
+                                          uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t *pData,
-                                            uint16_t Size, uint32_t Timeout);
+                                         uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t Size,
-                                            uint32_t Timeout);
+                                         uint32_t Timeout);
 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t Size,
-                                           uint32_t Timeout);
+                                        uint32_t Timeout);
 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint16_t MemAddress,
                                     uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint16_t MemAddress,
@@ -783,9 +782,9 @@
                                                                           FMPI2C_CR2_RD_WRN)))
 
 #define FMPI2C_GET_ADDR_MATCH(__HANDLE__)            ((uint16_t)(((__HANDLE__)->Instance->ISR & FMPI2C_ISR_ADDCODE) \
-                                                                  >> 16U))
+                                                              >> 16U))
 #define FMPI2C_GET_DIR(__HANDLE__)                   ((uint8_t)(((__HANDLE__)->Instance->ISR & FMPI2C_ISR_DIR) \
-                                                                  >> 16U))
+                                                             >> 16U))
 #define FMPI2C_GET_STOP_MODE(__HANDLE__)             ((__HANDLE__)->Instance->CR2 & FMPI2C_CR2_AUTOEND)
 #define FMPI2C_GET_OWN_ADDRESS1(__HANDLE__)          ((uint16_t)((__HANDLE__)->Instance->OAR1 & FMPI2C_OAR1_OA1))
 #define FMPI2C_GET_OWN_ADDRESS2(__HANDLE__)          ((uint16_t)((__HANDLE__)->Instance->OAR2 & FMPI2C_OAR2_OA2))
@@ -836,5 +835,3 @@
 
 
 #endif /* STM32F4xx_HAL_FMPI2C_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_fmpi2c_ex.h b/Inc/stm32f4xx_hal_fmpi2c_ex.h
index 6a5df0b..8b90f40 100644
--- a/Inc/stm32f4xx_hal_fmpi2c_ex.h
+++ b/Inc/stm32f4xx_hal_fmpi2c_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -149,5 +148,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_FMPI2C_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_fmpsmbus.h b/Inc/stm32f4xx_hal_fmpsmbus.h
index 9d5e030..6d1ff4b 100644
--- a/Inc/stm32f4xx_hal_fmpsmbus.h
+++ b/Inc/stm32f4xx_hal_fmpsmbus.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -373,9 +372,9 @@
 #define FMPSMBUS_IT_RXI                            FMPI2C_CR1_RXIE
 #define FMPSMBUS_IT_TXI                            FMPI2C_CR1_TXIE
 #define FMPSMBUS_IT_TX                             (FMPSMBUS_IT_ERRI | FMPSMBUS_IT_TCI | FMPSMBUS_IT_STOPI | \
-                                                   FMPSMBUS_IT_NACKI | FMPSMBUS_IT_TXI)
+                                                 FMPSMBUS_IT_NACKI | FMPSMBUS_IT_TXI)
 #define FMPSMBUS_IT_RX                             (FMPSMBUS_IT_ERRI | FMPSMBUS_IT_TCI | FMPSMBUS_IT_NACKI | \
-                                                   FMPSMBUS_IT_RXI)
+                                                 FMPSMBUS_IT_RXI)
 #define FMPSMBUS_IT_ALERT                          (FMPSMBUS_IT_ERRI)
 #define FMPSMBUS_IT_ADDR                           (FMPSMBUS_IT_ADDRI | FMPSMBUS_IT_STOPI | FMPSMBUS_IT_NACKI)
 /**
@@ -623,11 +622,11 @@
 
 #define FMPSMBUS_RESET_CR1(__HANDLE__)                    ((__HANDLE__)->Instance->CR1 &= \
                                                         (uint32_t)~((uint32_t)(FMPI2C_CR1_SMBHEN | FMPI2C_CR1_SMBDEN | \
-                                                                    FMPI2C_CR1_PECEN)))
+                                                                               FMPI2C_CR1_PECEN)))
 #define FMPSMBUS_RESET_CR2(__HANDLE__)                    ((__HANDLE__)->Instance->CR2 &= \
                                                         (uint32_t)~((uint32_t)(FMPI2C_CR2_SADD | FMPI2C_CR2_HEAD10R | \
-                                                                    FMPI2C_CR2_NBYTES | FMPI2C_CR2_RELOAD | \
-                                                                    FMPI2C_CR2_RD_WRN)))
+                                                                               FMPI2C_CR2_NBYTES | FMPI2C_CR2_RELOAD | \
+                                                                               FMPI2C_CR2_RD_WRN)))
 
 #define FMPSMBUS_GENERATE_START(__ADDMODE__,__ADDRESS__)     (((__ADDMODE__) == FMPSMBUS_ADDRESSINGMODE_7BIT) ? \
                                                            (uint32_t)((((uint32_t)(__ADDRESS__) & (FMPI2C_CR2_SADD)) | \
@@ -677,13 +676,13 @@
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_FMPSMBUS_REGISTER_CALLBACKS == 1)
 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                HAL_FMPSMBUS_CallbackIDTypeDef CallbackID,
-                                                pFMPSMBUS_CallbackTypeDef pCallback);
+                                             HAL_FMPSMBUS_CallbackIDTypeDef CallbackID,
+                                             pFMPSMBUS_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_FMPSMBUS_UnRegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                  HAL_FMPSMBUS_CallbackIDTypeDef CallbackID);
+                                               HAL_FMPSMBUS_CallbackIDTypeDef CallbackID);
 
 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterAddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                    pFMPSMBUS_AddrCallbackTypeDef pCallback);
+                                                 pFMPSMBUS_AddrCallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_FMPSMBUS_UnRegisterAddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus);
 #endif /* USE_HAL_FMPSMBUS_REGISTER_CALLBACKS */
 /**
@@ -710,9 +709,9 @@
   */
 /******* Non-Blocking mode: Interrupt */
 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Transmit_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress,
-                                                  uint8_t *pData, uint16_t Size, uint32_t XferOptions);
+                                               uint8_t *pData, uint16_t Size, uint32_t XferOptions);
 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Receive_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress,
-                                                 uint8_t *pData, uint16_t Size, uint32_t XferOptions);
+                                              uint8_t *pData, uint16_t Size, uint32_t XferOptions);
 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Abort_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress);
 HAL_StatusTypeDef HAL_FMPSMBUS_Slave_Transmit_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint8_t *pData, uint16_t Size,
                                               uint32_t XferOptions);
@@ -789,5 +788,3 @@
 
 
 #endif /* STM32F4xx_HAL_FMPSMBUS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_fmpsmbus_ex.h b/Inc/stm32f4xx_hal_fmpsmbus_ex.h
index d5439e7..001dc54 100644
--- a/Inc/stm32f4xx_hal_fmpsmbus_ex.h
+++ b/Inc/stm32f4xx_hal_fmpsmbus_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -105,9 +104,9 @@
   * @{
   */
 #define IS_FMPSMBUS_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & (FMPSMBUS_FASTMODEPLUS_SCL)) == \
-                                              FMPSMBUS_FASTMODEPLUS_SCL) || \
+                                            FMPSMBUS_FASTMODEPLUS_SCL) || \
                                            (((__CONFIG__) & (FMPSMBUS_FASTMODEPLUS_SDA)) == \
-                                              FMPSMBUS_FASTMODEPLUS_SDA))
+                                            FMPSMBUS_FASTMODEPLUS_SDA))
 /**
   * @}
   */
@@ -135,5 +134,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_FMPSMBUS_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_gpio.h b/Inc/stm32f4xx_hal_gpio.h
index cacfdee..5f3d749 100644
--- a/Inc/stm32f4xx_hal_gpio.h
+++ b/Inc/stm32f4xx_hal_gpio.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -324,4 +323,3 @@
 
 #endif /* __STM32F4xx_HAL_GPIO_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_gpio_ex.h b/Inc/stm32f4xx_hal_gpio_ex.h
index 7db36cc..5e0b7cc 100644
--- a/Inc/stm32f4xx_hal_gpio_ex.h
+++ b/Inc/stm32f4xx_hal_gpio_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -1589,4 +1588,3 @@
 
 #endif /* __STM32F4xx_HAL_GPIO_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_hash.h b/Inc/stm32f4xx_hal_hash.h
index 3b73282..9a93fbb 100644
--- a/Inc/stm32f4xx_hal_hash.h
+++ b/Inc/stm32f4xx_hal_hash.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -633,4 +632,3 @@
 
 #endif /* STM32F4xx_HAL_HASH_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_hash_ex.h b/Inc/stm32f4xx_hal_hash_ex.h
index 0a9844c..91e65dc 100644
--- a/Inc/stm32f4xx_hal_hash_ex.h
+++ b/Inc/stm32f4xx_hal_hash_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -174,4 +173,3 @@
 
 #endif /* STM32F4xx_HAL_HASH_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_hcd.h b/Inc/stm32f4xx_hal_hcd.h
index 6025e03..9cd1486 100644
--- a/Inc/stm32f4xx_hal_hcd.h
+++ b/Inc/stm32f4xx_hal_hcd.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -315,5 +314,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_HCD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_i2c.h b/Inc/stm32f4xx_hal_i2c.h
index 9a622b8..9a7a67e 100644
--- a/Inc/stm32f4xx_hal_i2c.h
+++ b/Inc/stm32f4xx_hal_i2c.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -740,4 +739,3 @@
 
 #endif /* __STM32F4xx_HAL_I2C_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_i2c_ex.h b/Inc/stm32f4xx_hal_i2c_ex.h
index 6864d83..31ad99c 100644
--- a/Inc/stm32f4xx_hal_i2c_ex.h
+++ b/Inc/stm32f4xx_hal_i2c_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -114,4 +113,3 @@
 #endif /* __STM32F4xx_HAL_I2C_EX_H */
 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_i2s.h b/Inc/stm32f4xx_hal_i2s.h
index 1e9676f..66cee01 100644
--- a/Inc/stm32f4xx_hal_i2s.h
+++ b/Inc/stm32f4xx_hal_i2s.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -617,4 +616,3 @@
 
 #endif /* STM32F4xx_HAL_I2S_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_i2s_ex.h b/Inc/stm32f4xx_hal_i2s_ex.h
index 10335f4..3aaa45b 100644
--- a/Inc/stm32f4xx_hal_i2s_ex.h
+++ b/Inc/stm32f4xx_hal_i2s_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -182,4 +181,3 @@
 
 #endif /* STM32F4xx_HAL_I2S_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_irda.h b/Inc/stm32f4xx_hal_irda.h
index 4d83abc..0d1c5f1 100644
--- a/Inc/stm32f4xx_hal_irda.h
+++ b/Inc/stm32f4xx_hal_irda.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -145,7 +144,7 @@
 
   IRDA_InitTypeDef            Init;             /*!<  IRDA communication parameters      */
 
-  uint8_t                     *pTxBuffPtr;      /*!<  Pointer to IRDA Tx transfer Buffer */
+  const uint8_t               *pTxBuffPtr;      /*!<  Pointer to IRDA Tx transfer Buffer */
 
   uint16_t                    TxXferSize;       /*!<  IRDA Tx Transfer size              */
 
@@ -560,11 +559,11 @@
   * @{
   */
 /* IO operation functions *******************************************************/
-HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
-HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
 HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
@@ -681,4 +680,3 @@
 
 #endif /* __STM32F4xx_HAL_IRDA_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_iwdg.h b/Inc/stm32f4xx_hal_iwdg.h
index 32f5ff0..5273730 100644
--- a/Inc/stm32f4xx_hal_iwdg.h
+++ b/Inc/stm32f4xx_hal_iwdg.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -219,5 +218,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_IWDG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_lptim.h b/Inc/stm32f4xx_hal_lptim.h
index 80ea203..7a41ee9 100644
--- a/Inc/stm32f4xx_hal_lptim.h
+++ b/Inc/stm32f4xx_hal_lptim.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -819,11 +818,13 @@
 #define IS_LPTIM_COUNTER_SOURCE(__SOURCE__)     (((__SOURCE__) == LPTIM_COUNTERSOURCE_INTERNAL) || \
                                                  ((__SOURCE__) == LPTIM_COUNTERSOURCE_EXTERNAL))
 
-#define IS_LPTIM_AUTORELOAD(__AUTORELOAD__)     ((__AUTORELOAD__) <= 0x0000FFFFUL)
+#define IS_LPTIM_AUTORELOAD(__AUTORELOAD__)     ((0x00000001UL <= (__AUTORELOAD__)) &&\
+                                                 ((__AUTORELOAD__) <= 0x0000FFFFUL))
 
 #define IS_LPTIM_COMPARE(__COMPARE__)           ((__COMPARE__) <= 0x0000FFFFUL)
 
-#define IS_LPTIM_PERIOD(__PERIOD__)             ((__PERIOD__) <= 0x0000FFFFUL)
+#define IS_LPTIM_PERIOD(__PERIOD__)             ((0x00000001UL <= (__PERIOD__)) &&\
+                                                 ((__PERIOD__) <= 0x0000FFFFUL))
 
 #define IS_LPTIM_PULSE(__PULSE__)               ((__PULSE__) <= 0x0000FFFFUL)
 
@@ -854,5 +855,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_LPTIM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_ltdc.h b/Inc/stm32f4xx_hal_ltdc.h
index 0cab844..ab951d3 100644
--- a/Inc/stm32f4xx_hal_ltdc.h
+++ b/Inc/stm32f4xx_hal_ltdc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -80,28 +79,36 @@
                                                       This parameter can be one of value of @ref LTDC_PC_POLARITY */
 
   uint32_t            HorizontalSync;            /*!< configures the number of Horizontal synchronization width.
-                                                      This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = 0x000 and Max_Data = 0xFFF. */
 
   uint32_t            VerticalSync;              /*!< configures the number of Vertical synchronization height.
-                                                      This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = 0x000 and Max_Data = 0x7FF. */
 
   uint32_t            AccumulatedHBP;            /*!< configures the accumulated horizontal back porch width.
-                                                      This parameter must be a number between Min_Data = LTDC_HorizontalSync and Max_Data = 0xFFF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_HorizontalSync and Max_Data = 0xFFF. */
 
   uint32_t            AccumulatedVBP;            /*!< configures the accumulated vertical back porch height.
-                                                      This parameter must be a number between Min_Data = LTDC_VerticalSync and Max_Data = 0x7FF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_VerticalSync and Max_Data = 0x7FF. */
 
   uint32_t            AccumulatedActiveW;        /*!< configures the accumulated active width.
-                                                      This parameter must be a number between Min_Data = LTDC_AccumulatedHBP and Max_Data = 0xFFF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_AccumulatedHBP and Max_Data = 0xFFF. */
 
   uint32_t            AccumulatedActiveH;        /*!< configures the accumulated active height.
-                                                      This parameter must be a number between Min_Data = LTDC_AccumulatedVBP and Max_Data = 0x7FF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_AccumulatedVBP and Max_Data = 0x7FF. */
 
   uint32_t            TotalWidth;                /*!< configures the total width.
-                                                      This parameter must be a number between Min_Data = LTDC_AccumulatedActiveW and Max_Data = 0xFFF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_AccumulatedActiveW and Max_Data = 0xFFF. */
 
   uint32_t            TotalHeigh;                /*!< configures the total height.
-                                                      This parameter must be a number between Min_Data = LTDC_AccumulatedActiveH and Max_Data = 0x7FF. */
+                                                      This parameter must be a number between
+                                                      Min_Data = LTDC_AccumulatedActiveH and Max_Data = 0x7FF. */
 
   LTDC_ColorTypeDef   Backcolor;                 /*!< Configures the background color. */
 } LTDC_InitTypeDef;
@@ -112,25 +119,31 @@
 typedef struct
 {
   uint32_t WindowX0;                   /*!< Configures the Window Horizontal Start Position.
-                                            This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x000 and Max_Data = 0xFFF. */
 
   uint32_t WindowX1;                   /*!< Configures the Window Horizontal Stop Position.
-                                            This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x000 and Max_Data = 0xFFF. */
 
   uint32_t WindowY0;                   /*!< Configures the Window vertical Start Position.
-                                            This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x000 and Max_Data = 0x7FF. */
 
   uint32_t WindowY1;                   /*!< Configures the Window vertical Stop Position.
-                                            This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x7FF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x0000 and Max_Data = 0x7FF. */
 
   uint32_t PixelFormat;                /*!< Specifies the pixel format.
                                             This parameter can be one of value of @ref LTDC_Pixelformat */
 
   uint32_t Alpha;                      /*!< Specifies the constant alpha used for blending.
-                                            This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x00 and Max_Data = 0xFF. */
 
   uint32_t Alpha0;                     /*!< Configures the default alpha value.
-                                            This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x00 and Max_Data = 0xFF. */
 
   uint32_t BlendingFactor1;            /*!< Select the blending factor 1.
                                             This parameter can be one of value of @ref LTDC_BlendingFactor1 */
@@ -141,10 +154,12 @@
   uint32_t FBStartAdress;              /*!< Configures the color frame buffer address */
 
   uint32_t ImageWidth;                 /*!< Configures the color frame buffer line length.
-                                            This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x1FFF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x0000 and Max_Data = 0x1FFF. */
 
   uint32_t ImageHeight;                /*!< Specifies the number of line in frame buffer.
-                                            This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */
+                                            This parameter must be a number between
+                                            Min_Data = 0x000 and Max_Data = 0x7FF. */
 
   LTDC_ColorTypeDef   Backcolor;       /*!< Configures the layer background color. */
 } LTDC_LayerCfgTypeDef;
@@ -400,7 +415,7 @@
   * @retval None
   */
 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
-#define __HAL_LTDC_RESET_HANDLE_STATE(__HANDLE__) do{                                                  \
+#define __HAL_LTDC_RESET_HANDLE_STATE(__HANDLE__) do{                                                 \
                                                       (__HANDLE__)->State = HAL_LTDC_STATE_RESET;     \
                                                       (__HANDLE__)->MspInitCallback = NULL;           \
                                                       (__HANDLE__)->MspDeInitCallback = NULL;         \
@@ -430,7 +445,8 @@
   *                     This parameter can be LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1).
   * @retval None.
   */
-#define __HAL_LTDC_LAYER_ENABLE(__HANDLE__, __LAYER__)  ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR |= (uint32_t)LTDC_LxCR_LEN)
+#define __HAL_LTDC_LAYER_ENABLE(__HANDLE__, __LAYER__)  ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR\
+                                                         |= (uint32_t)LTDC_LxCR_LEN)
 
 /**
   * @brief  Disable the LTDC Layer.
@@ -439,7 +455,8 @@
   *                     This parameter can be LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1).
   * @retval None.
   */
-#define __HAL_LTDC_LAYER_DISABLE(__HANDLE__, __LAYER__) ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR &= ~(uint32_t)LTDC_LxCR_LEN)
+#define __HAL_LTDC_LAYER_DISABLE(__HANDLE__, __LAYER__) ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR\
+                                                         &= ~(uint32_t)LTDC_LxCR_LEN)
 
 /**
   * @brief  Reload immediately all LTDC Layers.
@@ -545,7 +562,8 @@
 
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
-HAL_StatusTypeDef HAL_LTDC_RegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID, pLTDC_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_LTDC_RegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID,
+                                            pLTDC_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_LTDC_UnRegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID);
 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
 
@@ -583,9 +601,12 @@
 HAL_StatusTypeDef HAL_LTDC_EnableDither(LTDC_HandleTypeDef *hltdc);
 HAL_StatusTypeDef HAL_LTDC_DisableDither(LTDC_HandleTypeDef *hltdc);
 HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType);
-HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx);
-HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx);
-HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx);
+HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg,
+                                                uint32_t LayerIdx);
+HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize,
+                                                  uint32_t LayerIdx);
+HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0,
+                                                      uint32_t LayerIdx);
 HAL_StatusTypeDef HAL_LTDC_SetPixelFormat_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx);
 HAL_StatusTypeDef HAL_LTDC_SetAlpha_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx);
 HAL_StatusTypeDef HAL_LTDC_SetAddress_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx);
@@ -621,12 +642,18 @@
 /** @defgroup LTDC_Private_Macros LTDC Private Macros
   * @{
   */
-#define LTDC_LAYER(__HANDLE__, __LAYER__)              ((LTDC_Layer_TypeDef *)((uint32_t)(((uint32_t)((__HANDLE__)->Instance)) + 0x84U + (0x80U*(__LAYER__)))))
+#define LTDC_LAYER(__HANDLE__, __LAYER__)              ((LTDC_Layer_TypeDef *)((uint32_t)(\
+                                                                               ((uint32_t)((__HANDLE__)->Instance))\
+                                                                               + 0x84U + (0x80U*(__LAYER__)))))
 #define IS_LTDC_LAYER(__LAYER__)                       ((__LAYER__) < MAX_LAYER)
-#define IS_LTDC_HSPOL(__HSPOL__)                       (((__HSPOL__) == LTDC_HSPOLARITY_AL) || ((__HSPOL__) == LTDC_HSPOLARITY_AH))
-#define IS_LTDC_VSPOL(__VSPOL__)                       (((__VSPOL__) == LTDC_VSPOLARITY_AL) || ((__VSPOL__) == LTDC_VSPOLARITY_AH))
-#define IS_LTDC_DEPOL(__DEPOL__)                       (((__DEPOL__) == LTDC_DEPOLARITY_AL) || ((__DEPOL__) ==  LTDC_DEPOLARITY_AH))
-#define IS_LTDC_PCPOL(__PCPOL__)                       (((__PCPOL__) == LTDC_PCPOLARITY_IPC) || ((__PCPOL__) ==  LTDC_PCPOLARITY_IIPC))
+#define IS_LTDC_HSPOL(__HSPOL__)                       (((__HSPOL__) == LTDC_HSPOLARITY_AL)\
+                                                        || ((__HSPOL__) == LTDC_HSPOLARITY_AH))
+#define IS_LTDC_VSPOL(__VSPOL__)                       (((__VSPOL__) == LTDC_VSPOLARITY_AL)\
+                                                        || ((__VSPOL__) == LTDC_VSPOLARITY_AH))
+#define IS_LTDC_DEPOL(__DEPOL__)                       (((__DEPOL__) == LTDC_DEPOLARITY_AL)\
+                                                        || ((__DEPOL__) ==  LTDC_DEPOLARITY_AH))
+#define IS_LTDC_PCPOL(__PCPOL__)                       (((__PCPOL__) == LTDC_PCPOLARITY_IPC)\
+                                                        || ((__PCPOL__) ==  LTDC_PCPOLARITY_IIPC))
 #define IS_LTDC_HSYNC(__HSYNC__)                       ((__HSYNC__)  <= LTDC_HORIZONTALSYNC)
 #define IS_LTDC_VSYNC(__VSYNC__)                       ((__VSYNC__)  <= LTDC_VERTICALSYNC)
 #define IS_LTDC_AHBP(__AHBP__)                         ((__AHBP__)   <= LTDC_HORIZONTALSYNC)
@@ -642,10 +669,14 @@
                                                         ((__BLENDING_FACTOR1__) == LTDC_BLENDING_FACTOR1_PAxCA))
 #define IS_LTDC_BLENDING_FACTOR2(__BLENDING_FACTOR1__) (((__BLENDING_FACTOR1__) == LTDC_BLENDING_FACTOR2_CA) || \
                                                         ((__BLENDING_FACTOR1__) == LTDC_BLENDING_FACTOR2_PAxCA))
-#define IS_LTDC_PIXEL_FORMAT(__PIXEL_FORMAT__)         (((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB8888) || ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_RGB888)   || \
-                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_RGB565)   || ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB1555) || \
-                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB4444) || ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_L8)       || \
-                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_AL44)     || ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_AL88))
+#define IS_LTDC_PIXEL_FORMAT(__PIXEL_FORMAT__)         (((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB8888) || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_RGB888)   || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_RGB565)   || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB1555) || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_ARGB4444) || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_L8)       || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_AL44)     || \
+                                                        ((__PIXEL_FORMAT__) == LTDC_PIXEL_FORMAT_AL88))
 #define IS_LTDC_ALPHA(__ALPHA__)                       ((__ALPHA__) <= LTDC_ALPHA)
 #define IS_LTDC_HCONFIGST(__HCONFIGST__)               ((__HCONFIGST__) <= LTDC_STARTPOSITION)
 #define IS_LTDC_HCONFIGSP(__HCONFIGSP__)               ((__HCONFIGSP__) <= LTDC_STOPPOSITION)
@@ -655,7 +686,8 @@
 #define IS_LTDC_CFBLL(__CFBLL__)                       ((__CFBLL__) <= LTDC_COLOR_FRAME_BUFFER)
 #define IS_LTDC_CFBLNBR(__CFBLNBR__)                   ((__CFBLNBR__) <= LTDC_LINE_NUMBER)
 #define IS_LTDC_LIPOS(__LIPOS__)                       ((__LIPOS__) <= 0x7FFU)
-#define IS_LTDC_RELOAD(__RELOADTYPE__)                 (((__RELOADTYPE__) == LTDC_RELOAD_IMMEDIATE) || ((__RELOADTYPE__) == LTDC_RELOAD_VERTICAL_BLANKING))
+#define IS_LTDC_RELOAD(__RELOADTYPE__)                 (((__RELOADTYPE__) == LTDC_RELOAD_IMMEDIATE) || \
+                                                        ((__RELOADTYPE__) == LTDC_RELOAD_VERTICAL_BLANKING))
 /**
   * @}
   */
@@ -685,4 +717,3 @@
 
 #endif /* STM32F4xx_HAL_LTDC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_ltdc_ex.h b/Inc/stm32f4xx_hal_ltdc_ex.h
index 37a5fdf..b9c39e4 100644
--- a/Inc/stm32f4xx_hal_ltdc_ex.h
+++ b/Inc/stm32f4xx_hal_ltdc_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -82,5 +81,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_LTDC_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_mmc.h b/Inc/stm32f4xx_hal_mmc.h
index e65172a..30921aa 100644
--- a/Inc/stm32f4xx_hal_mmc.h
+++ b/Inc/stm32f4xx_hal_mmc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -145,6 +144,8 @@
   
   uint32_t                     CID[4U];          /*!< MMC card identification number table */
   
+  uint32_t                     Ext_CSD[128];
+
 #if defined (USE_HAL_MMC_REGISTER_CALLBACKS) && (USE_HAL_MMC_REGISTER_CALLBACKS == 1U)
   void (* TxCpltCallback)                 (struct __MMC_HandleTypeDef *hmmc);
   void (* RxCpltCallback)                 (struct __MMC_HandleTypeDef *hmmc);
@@ -334,10 +335,12 @@
 /** 
   * @brief 
   */
-#define MMC_HIGH_VOLTAGE_RANGE         0x80FF8000U  /*!< VALUE OF ARGUMENT            */
-#define MMC_DUAL_VOLTAGE_RANGE         0x80FF8080U  /*!< VALUE OF ARGUMENT            */
-#define eMMC_HIGH_VOLTAGE_RANGE        0xC0FF8000U  /*!< for eMMC > 2Gb sector mode   */
-#define eMMC_DUAL_VOLTAGE_RANGE        0xC0FF8080U  /*!< for eMMC > 2Gb sector mode   */
+#define MMC_HIGH_VOLTAGE_RANGE         0x80FF8000U  /*!< High voltage in byte mode    */
+#define MMC_DUAL_VOLTAGE_RANGE         0x80FF8080U  /*!< Dual voltage in byte mode    */
+#define MMC_LOW_VOLTAGE_RANGE          0x80000080U  /*!< Low voltage in byte mode     */
+#define EMMC_HIGH_VOLTAGE_RANGE        0xC0FF8000U  /*!< High voltage in sector mode  */
+#define EMMC_DUAL_VOLTAGE_RANGE        0xC0FF8080U  /*!< Dual voltage in sector mode  */
+#define EMMC_LOW_VOLTAGE_RANGE         0xC0000080U  /*!< Low voltage in sector mode   */
 #define MMC_INVALID_VOLTAGE_RANGE      0x0001FF01U 
 /**
   * @}
@@ -636,6 +639,7 @@
 HAL_StatusTypeDef HAL_MMC_GetCardCID(MMC_HandleTypeDef *hmmc, HAL_MMC_CardCIDTypeDef *pCID);
 HAL_StatusTypeDef HAL_MMC_GetCardCSD(MMC_HandleTypeDef *hmmc, HAL_MMC_CardCSDTypeDef *pCSD);
 HAL_StatusTypeDef HAL_MMC_GetCardInfo(MMC_HandleTypeDef *hmmc, HAL_MMC_CardInfoTypeDef *pCardInfo);
+HAL_StatusTypeDef HAL_MMC_GetCardExtCSD(MMC_HandleTypeDef *hmmc, uint32_t *pExtCSD, uint32_t Timeout);
 /**
   * @}
   */
@@ -649,7 +653,7 @@
   * @}
   */
 
-/** @defgroup MMC_Exported_Functions_Group6 Perioheral Abort management
+/** @defgroup MMC_Exported_Functions_Group6 Peripheral Abort management
   * @{
   */
 HAL_StatusTypeDef HAL_MMC_Abort(MMC_HandleTypeDef *hmmc);
@@ -741,5 +745,3 @@
 #endif /* SDIO */
 
 #endif /* STM32F4xx_HAL_MMC_H */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_nand.h b/Inc/stm32f4xx_hal_nand.h
index e6aaabb..26f6502 100644
--- a/Inc/stm32f4xx_hal_nand.h
+++ b/Inc/stm32f4xx_hal_nand.h
@@ -6,35 +6,32 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_NAND_H
-#define __STM32F4xx_HAL_NAND_H
+#ifndef STM32F4xx_HAL_NAND_H
+#define STM32F4xx_HAL_NAND_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
-/* Includes ------------------------------------------------------------------*/
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-  #include "stm32f4xx_ll_fsmc.h"
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-  #include "stm32f4xx_ll_fmc.h"
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\
-          STM32F479xx */
+/* Includes ------------------------------------------------------------------*/
+#if defined(FSMC_Bank2_3)
+#include "stm32f4xx_ll_fsmc.h"
+#else
+#include "stm32f4xx_ll_fmc.h"
+#endif /* FSMC_Bank2_3 */
 
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
@@ -42,11 +39,7 @@
 
 /** @addtogroup NAND
   * @{
-  */ 
-
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+  */
 
 /* Exported typedef ----------------------------------------------------------*/
 /* Exported types ------------------------------------------------------------*/
@@ -54,7 +47,7 @@
   * @{
   */
 
-/** 
+/**
   * @brief  HAL NAND State structures definition
   */
 typedef enum
@@ -63,65 +56,65 @@
   HAL_NAND_STATE_READY     = 0x01U,  /*!< NAND initialized and ready for use   */
   HAL_NAND_STATE_BUSY      = 0x02U,  /*!< NAND internal process is ongoing     */
   HAL_NAND_STATE_ERROR     = 0x03U   /*!< NAND error state                     */
-}HAL_NAND_StateTypeDef;
-   
-/** 
+} HAL_NAND_StateTypeDef;
+
+/**
   * @brief  NAND Memory electronic signature Structure definition
   */
 typedef struct
 {
   /*<! NAND memory electronic signature maker and device IDs */
 
-  uint8_t Maker_Id; 
+  uint8_t Maker_Id;
 
   uint8_t Device_Id;
 
   uint8_t Third_Id;
 
   uint8_t Fourth_Id;
-}NAND_IDTypeDef;
+} NAND_IDTypeDef;
 
-/** 
+/**
   * @brief  NAND Memory address Structure definition
   */
-typedef struct 
-{
-  uint16_t Page;   /*!< NAND memory Page address    */
-
-  uint16_t Plane;   /*!< NAND memory Plane address  */
-
-  uint16_t Block;  /*!< NAND memory Block address   */
-
-}NAND_AddressTypeDef;
-
-/** 
-  * @brief  NAND Memory info Structure definition
-  */ 
 typedef struct
 {
-  uint32_t        PageSize;              /*!< NAND memory page (without spare area) size measured in bytes 
-                                              for 8 bits adressing or words for 16 bits addressing             */
+  uint16_t Page;   /*!< NAND memory Page address  */
 
-  uint32_t        SpareAreaSize;         /*!< NAND memory spare area size measured in bytes 
-                                              for 8 bits adressing or words for 16 bits addressing             */
-  
+  uint16_t Plane;   /*!< NAND memory Zone address  */
+
+  uint16_t Block;  /*!< NAND memory Block address */
+
+} NAND_AddressTypeDef;
+
+/**
+  * @brief  NAND Memory info Structure definition
+  */
+typedef struct
+{
+  uint32_t        PageSize;              /*!< NAND memory page (without spare area) size measured in bytes
+                                              for 8 bits addressing or words for 16 bits addressing             */
+
+  uint32_t        SpareAreaSize;         /*!< NAND memory spare area size measured in bytes
+                                              for 8 bits addressing or words for 16 bits addressing             */
+
   uint32_t        BlockSize;             /*!< NAND memory block size measured in number of pages               */
 
   uint32_t        BlockNbr;              /*!< NAND memory number of total blocks                               */
-     
+
   uint32_t        PlaneNbr;              /*!< NAND memory number of planes                                     */
 
-  uint32_t        PlaneSize;             /*!< NAND memory plane size measured in number of blocks               */
+  uint32_t        PlaneSize;             /*!< NAND memory zone size measured in number of blocks               */
 
-  FunctionalState ExtraCommandEnable;    /*!< NAND extra command needed for Page reading mode. This 
-                                              parameter is mandatory for some NAND parts after the read 
-                                              command (NAND_CMD_AREA_TRUE1) and before DATA reading sequence. 
+  FunctionalState ExtraCommandEnable;    /*!< NAND extra command needed for Page reading mode. This
+                                              parameter is mandatory for some NAND parts after the read
+                                              command (NAND_CMD_AREA_TRUE1) and before DATA reading sequence.
                                               Example: Toshiba THTH58BYG3S0HBAI6.
                                               This parameter could be ENABLE or DISABLE
                                               Please check the Read Mode sequnece in the NAND device datasheet */
-}NAND_DeviceConfigTypeDef; 
+} NAND_DeviceConfigTypeDef;
 
-/** 
+/**
   * @brief  NAND handle Structure definition
   */
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
@@ -131,7 +124,7 @@
 #endif /* USE_HAL_NAND_REGISTER_CALLBACKS  */
 {
   FMC_NAND_TypeDef               *Instance;  /*!< Register base address                                 */
-  
+
   FMC_NAND_InitTypeDef           Init;       /*!< NAND device control configuration parameters          */
 
   HAL_LockTypeDef                Lock;       /*!< NAND locking object                                   */
@@ -141,10 +134,10 @@
   NAND_DeviceConfigTypeDef       Config;     /*!< NAND phusical characteristic information structure    */
 
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
-  void  (* MspInitCallback)        ( struct __NAND_HandleTypeDef * hnand);    /*!< NAND Msp Init callback              */
-  void  (* MspDeInitCallback)      ( struct __NAND_HandleTypeDef * hnand);    /*!< NAND Msp DeInit callback            */
-  void  (* ItCallback)             ( struct __NAND_HandleTypeDef * hnand);    /*!< NAND IT callback                    */
-#endif
+  void (* MspInitCallback)(struct __NAND_HandleTypeDef *hnand);               /*!< NAND Msp Init callback              */
+  void (* MspDeInitCallback)(struct __NAND_HandleTypeDef *hnand);             /*!< NAND Msp DeInit callback            */
+  void (* ItCallback)(struct __NAND_HandleTypeDef *hnand);                    /*!< NAND IT callback                    */
+#endif /* USE_HAL_NAND_REGISTER_CALLBACKS */
 } NAND_HandleTypeDef;
 
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
@@ -156,23 +149,23 @@
   HAL_NAND_MSP_INIT_CB_ID       = 0x00U,  /*!< NAND MspInit Callback ID          */
   HAL_NAND_MSP_DEINIT_CB_ID     = 0x01U,  /*!< NAND MspDeInit Callback ID        */
   HAL_NAND_IT_CB_ID             = 0x02U   /*!< NAND IT Callback ID               */
-}HAL_NAND_CallbackIDTypeDef;
+} HAL_NAND_CallbackIDTypeDef;
 
 /**
   * @brief  HAL NAND Callback pointer definition
   */
 typedef void (*pNAND_CallbackTypeDef)(NAND_HandleTypeDef *hnand);
-#endif
+#endif /* USE_HAL_NAND_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
 
 /* Exported constants --------------------------------------------------------*/
-/* Exported macros ------------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
 /** @defgroup NAND_Exported_Macros NAND Exported Macros
- * @{
- */ 
+  * @{
+  */
 
 /** @brief Reset NAND handle state
   * @param  __HANDLE__ specifies the NAND handle.
@@ -186,7 +179,7 @@
                                                              } while(0)
 #else
 #define __HAL_NAND_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_NAND_STATE_RESET)
-#endif
+#endif /* USE_HAL_NAND_REGISTER_CALLBACKS */
 
 /**
   * @}
@@ -196,14 +189,14 @@
 /** @addtogroup NAND_Exported_Functions NAND Exported Functions
   * @{
   */
-    
-/** @addtogroup NAND_Exported_Functions_Group1 Initialization and de-initialization functions 
+
+/** @addtogroup NAND_Exported_Functions_Group1 Initialization and de-initialization functions
   * @{
   */
 
 /* Initialization/de-initialization functions  ********************************/
-/* Initialization/de-initialization functions  ********************************/
-HAL_StatusTypeDef  HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing, FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing);
+HAL_StatusTypeDef  HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing,
+                                 FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing);
 HAL_StatusTypeDef  HAL_NAND_DeInit(NAND_HandleTypeDef *hnand);
 
 HAL_StatusTypeDef  HAL_NAND_ConfigDevice(NAND_HandleTypeDef *hnand, NAND_DeviceConfigTypeDef *pDeviceConfig);
@@ -218,40 +211,48 @@
 /**
   * @}
   */
-  
-/** @addtogroup NAND_Exported_Functions_Group2 Input and Output functions 
+
+/** @addtogroup NAND_Exported_Functions_Group2 Input and Output functions
   * @{
   */
 
 /* IO operation functions  ****************************************************/
 HAL_StatusTypeDef  HAL_NAND_Reset(NAND_HandleTypeDef *hnand);
 
-HAL_StatusTypeDef  HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToRead);
-HAL_StatusTypeDef  HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToWrite);
-HAL_StatusTypeDef  HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaToRead);
-HAL_StatusTypeDef  HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaTowrite);
+HAL_StatusTypeDef  HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer,
+                                         uint32_t NumPageToRead);
+HAL_StatusTypeDef  HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer,
+                                          uint32_t NumPageToWrite);
+HAL_StatusTypeDef  HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                              uint8_t *pBuffer, uint32_t NumSpareAreaToRead);
+HAL_StatusTypeDef  HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                               uint8_t *pBuffer, uint32_t NumSpareAreaTowrite);
 
-HAL_StatusTypeDef  HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToRead);
-HAL_StatusTypeDef  HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToWrite);
-HAL_StatusTypeDef  HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaToRead);
-HAL_StatusTypeDef  HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaTowrite);
+HAL_StatusTypeDef  HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer,
+                                          uint32_t NumPageToRead);
+HAL_StatusTypeDef  HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer,
+                                           uint32_t NumPageToWrite);
+HAL_StatusTypeDef  HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                               uint16_t *pBuffer, uint32_t NumSpareAreaToRead);
+HAL_StatusTypeDef  HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                                uint16_t *pBuffer, uint32_t NumSpareAreaTowrite);
 
 HAL_StatusTypeDef  HAL_NAND_Erase_Block(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress);
 
-uint32_t           HAL_NAND_Read_Status(NAND_HandleTypeDef *hnand);
 uint32_t           HAL_NAND_Address_Inc(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress);
 
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
 /* NAND callback registering/unregistering */
-HAL_StatusTypeDef  HAL_NAND_RegisterCallback(NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId, pNAND_CallbackTypeDef pCallback);
+HAL_StatusTypeDef  HAL_NAND_RegisterCallback(NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId,
+                                             pNAND_CallbackTypeDef pCallback);
 HAL_StatusTypeDef  HAL_NAND_UnRegisterCallback(NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId);
-#endif
+#endif /* USE_HAL_NAND_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
 
-/** @addtogroup NAND_Exported_Functions_Group3 Peripheral Control functions 
+/** @addtogroup NAND_Exported_Functions_Group3 Peripheral Control functions
   * @{
   */
 
@@ -263,12 +264,13 @@
 /**
   * @}
   */
-    
-/** @addtogroup NAND_Exported_Functions_Group4 Peripheral State functions 
+
+/** @addtogroup NAND_Exported_Functions_Group4 Peripheral State functions
   * @{
   */
 /* NAND State functions *******************************************************/
 HAL_NAND_StateTypeDef HAL_NAND_GetState(NAND_HandleTypeDef *hnand);
+uint32_t              HAL_NAND_Read_Status(NAND_HandleTypeDef *hnand);
 /**
   * @}
   */
@@ -276,19 +278,23 @@
 /**
   * @}
   */
-    
+
 /* Private types -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private constants ---------------------------------------------------------*/
 /** @defgroup NAND_Private_Constants NAND Private Constants
   * @{
   */
-#define NAND_DEVICE1               0x70000000U 
-#define NAND_DEVICE2               0x80000000U 
-#define NAND_WRITE_TIMEOUT         0x01000000U
+#if defined(FMC_Bank2_3)
+#define NAND_DEVICE1               0x70000000UL
+#define NAND_DEVICE2               0x80000000UL
+#else
+#define NAND_DEVICE                0x80000000UL
+#endif
+#define NAND_WRITE_TIMEOUT         0x01000000UL
 
-#define CMD_AREA                   ((uint32_t)(1U<<16U))  /* A16 = CLE high */
-#define ADDR_AREA                  ((uint32_t)(1U<<17U))  /* A17 = ALE high */
+#define CMD_AREA                   (1UL<<16U)  /* A16 = CLE high */
+#define ADDR_AREA                  (1UL<<17U)  /* A17 = ALE high */
 
 #define NAND_CMD_AREA_A            ((uint8_t)0x00)
 #define NAND_CMD_AREA_B            ((uint8_t)0x01)
@@ -305,12 +311,12 @@
 #define NAND_CMD_RESET             ((uint8_t)0xFF)
 
 /* NAND memory status */
-#define NAND_VALID_ADDRESS         0x00000100U
-#define NAND_INVALID_ADDRESS       0x00000200U
-#define NAND_TIMEOUT_ERROR         0x00000400U
-#define NAND_BUSY                  0x00000000U
-#define NAND_ERROR                 0x00000001U
-#define NAND_READY                 0x00000040U
+#define NAND_VALID_ADDRESS         0x00000100UL
+#define NAND_INVALID_ADDRESS       0x00000200UL
+#define NAND_TIMEOUT_ERROR         0x00000400UL
+#define NAND_BUSY                  0x00000000UL
+#define NAND_ERROR                 0x00000001UL
+#define NAND_READY                 0x00000040UL
 /**
   * @}
   */
@@ -323,11 +329,14 @@
 /**
   * @brief  NAND memory address computation.
   * @param  __ADDRESS__ NAND memory address.
-  * @param  __HANDLE__ NAND handle.
+  * @param  __HANDLE__  NAND handle.
   * @retval NAND Raw address value
   */
 #define ARRAY_ADDRESS(__ADDRESS__ , __HANDLE__) ((__ADDRESS__)->Page + \
-                         (((__ADDRESS__)->Block + (((__ADDRESS__)->Plane) * ((__HANDLE__)->Config.PlaneSize)))* ((__HANDLE__)->Config.BlockSize)))
+                                                 (((__ADDRESS__)->Block + \
+                                                   (((__ADDRESS__)->Plane) * \
+                                                    ((__HANDLE__)->Config.PlaneSize))) * \
+                                                  ((__HANDLE__)->Config.BlockSize)))
 
 /**
   * @brief  NAND memory Column address computation.
@@ -351,31 +360,29 @@
   * @param  __ADDRESS__ NAND memory address.
   * @retval NAND Column address cycling value.
   */
-#define COLUMN_1ST_CYCLE(__ADDRESS__)       (uint8_t)(__ADDRESS__)              /* 1st Column addressing cycle */
+#define COLUMN_1ST_CYCLE(__ADDRESS__)       (uint8_t)((__ADDRESS__) & 0xFFU)    /* 1st Column addressing cycle */
 #define COLUMN_2ND_CYCLE(__ADDRESS__)       (uint8_t)((__ADDRESS__) >> 8)       /* 2nd Column addressing cycle */
 
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
-          STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\
-          STM32F446xx || STM32F469xx || STM32F479xx */
-    
-/**
-  * @}
-  */
-/**
-  * @}
-  */ 
 
 /**
   * @}
-  */ 
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3) || defined(FSMC_Bank2_3 */
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_NAND_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_NAND_H */
diff --git a/Inc/stm32f4xx_hal_nor.h b/Inc/stm32f4xx_hal_nor.h
index dcd25c5..cc7f1b5 100644
--- a/Inc/stm32f4xx_hal_nor.h
+++ b/Inc/stm32f4xx_hal_nor.h
@@ -6,35 +6,32 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_NOR_H
-#define __STM32F4xx_HAL_NOR_H
+#ifndef STM32F4xx_HAL_NOR_H
+#define STM32F4xx_HAL_NOR_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
-/* Includes ------------------------------------------------------------------*/
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
-  #include "stm32f4xx_ll_fsmc.h"
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
+#if defined(FMC_Bank1) || defined(FSMC_Bank1)
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-  #include "stm32f4xx_ll_fmc.h"
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+/* Includes ------------------------------------------------------------------*/
+#if defined(FSMC_Bank1)
+#include "stm32f4xx_ll_fsmc.h"
+#else
+#include "stm32f4xx_ll_fmc.h"
+#endif /* FMC_Bank1 */
 
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
@@ -42,29 +39,24 @@
 
 /** @addtogroup NOR
   * @{
-  */ 
-
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
+  */
 
 /* Exported typedef ----------------------------------------------------------*/
 /** @defgroup NOR_Exported_Types NOR Exported Types
   * @{
   */
 
-/** 
-  * @brief  HAL SRAM State structures definition  
-  */ 
+/**
+  * @brief  HAL SRAM State structures definition
+  */
 typedef enum
-{  
+{
   HAL_NOR_STATE_RESET             = 0x00U,  /*!< NOR not yet initialized or disabled  */
   HAL_NOR_STATE_READY             = 0x01U,  /*!< NOR initialized and ready for use    */
   HAL_NOR_STATE_BUSY              = 0x02U,  /*!< NOR internal processing is ongoing   */
   HAL_NOR_STATE_ERROR             = 0x03U,  /*!< NOR error state                      */
   HAL_NOR_STATE_PROTECTED         = 0x04U   /*!< NOR NORSRAM device write protected   */
-}HAL_NOR_StateTypeDef;
+} HAL_NOR_StateTypeDef;
 
 /**
   * @brief  FMC NOR Status typedef
@@ -75,7 +67,7 @@
   HAL_NOR_STATUS_ONGOING,
   HAL_NOR_STATUS_ERROR,
   HAL_NOR_STATUS_TIMEOUT
-}HAL_NOR_StatusTypeDef;
+} HAL_NOR_StatusTypeDef;
 
 /**
   * @brief  FMC NOR ID typedef
@@ -88,11 +80,11 @@
 
   uint16_t Device_Code2;
 
-  uint16_t Device_Code3;       /*!< Defines the device's codes used to identify the memory. 
-                                    These codes can be accessed by performing read operations with specific 
-                                    control signals and addresses set.They can also be accessed by issuing 
+  uint16_t Device_Code3;       /*!< Defines the device's codes used to identify the memory.
+                                    These codes can be accessed by performing read operations with specific
+                                    control signals and addresses set.They can also be accessed by issuing
                                     an Auto Select command                                                   */
-}NOR_IDTypeDef;
+} NOR_IDTypeDef;
 
 /**
   * @brief  FMC NOR CFI typedef
@@ -100,7 +92,7 @@
 typedef struct
 {
   /*!< Defines the information stored in the memory's Common flash interface
-       which contains a description of various electrical and timing parameters, 
+       which contains a description of various electrical and timing parameters,
        density information and functions supported by the memory                   */
 
   uint16_t CFI_1;
@@ -110,9 +102,9 @@
   uint16_t CFI_3;
 
   uint16_t CFI_4;
-}NOR_CFITypeDef;
+} NOR_CFITypeDef;
 
-/** 
+/**
   * @brief  NOR handle Structure definition
   */
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
@@ -132,10 +124,12 @@
 
   __IO HAL_NOR_StateTypeDef     State;        /*!< NOR device access state                      */
 
+  uint32_t                      CommandSet;   /*!< NOR algorithm command set and control        */
+
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
-  void  (* MspInitCallback)        ( struct __NOR_HandleTypeDef * hnor);    /*!< NOR Msp Init callback              */
-  void  (* MspDeInitCallback)      ( struct __NOR_HandleTypeDef * hnor);    /*!< NOR Msp DeInit callback            */
-#endif
+  void (* MspInitCallback)(struct __NOR_HandleTypeDef *hnor);               /*!< NOR Msp Init callback              */
+  void (* MspDeInitCallback)(struct __NOR_HandleTypeDef *hnor);             /*!< NOR Msp DeInit callback            */
+#endif /* USE_HAL_NOR_REGISTER_CALLBACKS */
 } NOR_HandleTypeDef;
 
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
@@ -146,19 +140,19 @@
 {
   HAL_NOR_MSP_INIT_CB_ID       = 0x00U,  /*!< NOR MspInit Callback ID          */
   HAL_NOR_MSP_DEINIT_CB_ID     = 0x01U   /*!< NOR MspDeInit Callback ID        */
-}HAL_NOR_CallbackIDTypeDef;
+} HAL_NOR_CallbackIDTypeDef;
 
 /**
   * @brief  HAL NOR Callback pointer definition
   */
 typedef void (*pNOR_CallbackTypeDef)(NOR_HandleTypeDef *hnor);
-#endif
+#endif /* USE_HAL_NOR_REGISTER_CALLBACKS */
 /**
   * @}
   */
-  
+
 /* Exported constants --------------------------------------------------------*/
-/* Exported macros ------------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
 /** @defgroup NOR_Exported_Macros NOR Exported Macros
   * @{
   */
@@ -174,21 +168,23 @@
                                                              } while(0)
 #else
 #define __HAL_NOR_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_NOR_STATE_RESET)
-#endif
+#endif /* USE_HAL_NOR_REGISTER_CALLBACKS */
 /**
   * @}
   */
 
 /* Exported functions --------------------------------------------------------*/
-/** @addtogroup NOR_Exported_Functions 
- *  @{
- */
+/** @addtogroup NOR_Exported_Functions NOR Exported Functions
+  * @{
+  */
 
-/** @addtogroup NOR_Exported_Functions_Group1
- *  @{
- */
+/** @addtogroup NOR_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @{
+  */
+
 /* Initialization/de-initialization functions  ********************************/
-HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming);
+HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing,
+                               FMC_NORSRAM_TimingTypeDef *ExtTiming);
 HAL_StatusTypeDef HAL_NOR_DeInit(NOR_HandleTypeDef *hnor);
 void HAL_NOR_MspInit(NOR_HandleTypeDef *hnor);
 void HAL_NOR_MspDeInit(NOR_HandleTypeDef *hnor);
@@ -196,18 +192,21 @@
 /**
   * @}
   */
-  
-/** @addtogroup NOR_Exported_Functions_Group2
- *  @{
- */
+
+/** @addtogroup NOR_Exported_Functions_Group2 Input and Output functions
+  * @{
+  */
+
 /* I/O operation functions  ***************************************************/
 HAL_StatusTypeDef HAL_NOR_Read_ID(NOR_HandleTypeDef *hnor, NOR_IDTypeDef *pNOR_ID);
 HAL_StatusTypeDef HAL_NOR_ReturnToReadMode(NOR_HandleTypeDef *hnor);
 HAL_StatusTypeDef HAL_NOR_Read(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);
 HAL_StatusTypeDef HAL_NOR_Program(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);
 
-HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize);
-HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize);
+HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
+                                     uint32_t uwBufferSize);
+HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
+                                        uint32_t uwBufferSize);
 
 HAL_StatusTypeDef HAL_NOR_Erase_Block(NOR_HandleTypeDef *hnor, uint32_t BlockAddress, uint32_t Address);
 HAL_StatusTypeDef HAL_NOR_Erase_Chip(NOR_HandleTypeDef *hnor, uint32_t Address);
@@ -215,37 +214,40 @@
 
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
 /* NOR callback registering/unregistering */
-HAL_StatusTypeDef HAL_NOR_RegisterCallback(NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId, pNOR_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_NOR_RegisterCallback(NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId,
+                                           pNOR_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_NOR_UnRegisterCallback(NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId);
-#endif
+#endif /* USE_HAL_NOR_REGISTER_CALLBACKS */
 /**
   * @}
   */
-  
-/** @addtogroup NOR_Exported_Functions_Group3
- *  @{
- */
+
+/** @addtogroup NOR_Exported_Functions_Group3 NOR Control functions
+  * @{
+  */
+
 /* NOR Control functions  *****************************************************/
 HAL_StatusTypeDef HAL_NOR_WriteOperation_Enable(NOR_HandleTypeDef *hnor);
 HAL_StatusTypeDef HAL_NOR_WriteOperation_Disable(NOR_HandleTypeDef *hnor);
 /**
   * @}
   */
-  
-/** @addtogroup NOR_Exported_Functions_Group4
- *  @{
- */
+
+/** @addtogroup NOR_Exported_Functions_Group4 NOR State functions
+  * @{
+  */
+
 /* NOR State functions ********************************************************/
 HAL_NOR_StateTypeDef  HAL_NOR_GetState(NOR_HandleTypeDef *hnor);
 HAL_NOR_StatusTypeDef HAL_NOR_GetStatus(NOR_HandleTypeDef *hnor, uint32_t Address, uint32_t Timeout);
 /**
   * @}
   */
-    
+
 /**
   * @}
   */
-  
+
 /* Private types -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private constants ---------------------------------------------------------*/
@@ -266,16 +268,16 @@
 
 /* NOR operation wait timeout */
 #define NOR_TMEOUT               ((uint16_t)0xFFFF)
-   
+
 /* NOR memory data width */
 #define NOR_MEMORY_8B            ((uint8_t)0x00)
 #define NOR_MEMORY_16B           ((uint8_t)0x01)
 
 /* NOR memory device read/write start address */
-#define NOR_MEMORY_ADRESS1       0x60000000U
-#define NOR_MEMORY_ADRESS2       0x64000000U
-#define NOR_MEMORY_ADRESS3       0x68000000U
-#define NOR_MEMORY_ADRESS4       0x6C000000U
+#define NOR_MEMORY_ADRESS1       (0x60000000U)
+#define NOR_MEMORY_ADRESS2       (0x64000000U)
+#define NOR_MEMORY_ADRESS3       (0x68000000U)
+#define NOR_MEMORY_ADRESS4       (0x6C000000U)
 /**
   * @}
   */
@@ -286,41 +288,43 @@
   */
 /**
   * @brief  NOR memory address shifting.
-  * @param  __NOR_ADDRESS__ NOR base address 
-  * @param  NOR_MEMORY_WIDTH NOR memory width
-  * @param  ADDRESS NOR memory address 
+  * @param  __NOR_ADDRESS NOR base address
+  * @param  __NOR_MEMORY_WIDTH_ NOR memory width
+  * @param  __ADDRESS__ NOR memory address
   * @retval NOR shifted address value
   */
-#define NOR_ADDR_SHIFT(__NOR_ADDRESS__, NOR_MEMORY_WIDTH, ADDRESS)    (uint32_t)(((NOR_MEMORY_WIDTH) == NOR_MEMORY_16B)? ((uint32_t)((__NOR_ADDRESS__) + (2U * (ADDRESS)))):\
-                                                                                 ((uint32_t)((__NOR_ADDRESS__) + (ADDRESS))))
- 
+#define NOR_ADDR_SHIFT(__NOR_ADDRESS, __NOR_MEMORY_WIDTH_, __ADDRESS__)         \
+  ((uint32_t)(((__NOR_MEMORY_WIDTH_) == NOR_MEMORY_16B)?            \
+              ((uint32_t)((__NOR_ADDRESS) + (2U * (__ADDRESS__)))):              \
+              ((uint32_t)((__NOR_ADDRESS) + (__ADDRESS__)))))
+
 /**
   * @brief  NOR memory write data to specified address.
-  * @param  ADDRESS NOR memory address 
-  * @param  DATA Data to write
+  * @param  __ADDRESS__ NOR memory address
+  * @param  __DATA__ Data to write
   * @retval None
   */
-#define NOR_WRITE(ADDRESS, DATA)  (*(__IO uint16_t *)((uint32_t)(ADDRESS)) = (DATA))
+#define NOR_WRITE(__ADDRESS__, __DATA__)   do{                                                             \
+                                               (*(__IO uint16_t *)((uint32_t)(__ADDRESS__)) = (__DATA__)); \
+                                               __DSB();                                                    \
+                                             } while(0)
 
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
-          STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\
-          STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx ||\
-          STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
-/**
-  * @}
-  */ 
 
 /**
   * @}
   */
 
+/**
+  * @}
+  */
+
+#endif /* FMC_Bank1 || FSMC_Bank1 */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_NOR_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_NOR_H */
diff --git a/Inc/stm32f4xx_hal_pccard.h b/Inc/stm32f4xx_hal_pccard.h
index 41d7824..47fbb26 100644
--- a/Inc/stm32f4xx_hal_pccard.h
+++ b/Inc/stm32f4xx_hal_pccard.h
@@ -6,60 +6,56 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_PCCARD_H
-#define __STM32F4xx_HAL_PCCARD_H
+#ifndef STM32F4xx_HAL_PCCARD_H
+#define STM32F4xx_HAL_PCCARD_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
-/* Includes ------------------------------------------------------------------*/
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-  #include "stm32f4xx_ll_fsmc.h"
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#if defined(FMC_Bank4) || defined(FSMC_Bank4)
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
-  #include "stm32f4xx_ll_fmc.h"
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+/* Includes ------------------------------------------------------------------*/
+#if defined(FSMC_Bank4)
+#include "stm32f4xx_ll_fsmc.h"
+#else
+#include "stm32f4xx_ll_fmc.h"
+#endif /* FSMC_Bank4 */
 
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
-
 /** @addtogroup PCCARD
   * @{
-  */ 
+  */
 
 /* Exported typedef ----------------------------------------------------------*/
 /** @defgroup PCCARD_Exported_Types PCCARD Exported Types
   * @{
   */
 
-/** 
-  * @brief  HAL PCCARD State structures definition  
-  */ 
+/**
+  * @brief  HAL PCCARD State structures definition
+  */
 typedef enum
 {
   HAL_PCCARD_STATE_RESET     = 0x00U,    /*!< PCCARD peripheral not yet initialized or disabled */
   HAL_PCCARD_STATE_READY     = 0x01U,    /*!< PCCARD peripheral ready                           */
   HAL_PCCARD_STATE_BUSY      = 0x02U,    /*!< PCCARD peripheral busy                            */
   HAL_PCCARD_STATE_ERROR     = 0x04U     /*!< PCCARD peripheral error                           */
-}HAL_PCCARD_StateTypeDef;
+} HAL_PCCARD_StateTypeDef;
 
 typedef enum
 {
@@ -67,19 +63,19 @@
   HAL_PCCARD_STATUS_ONGOING,
   HAL_PCCARD_STATUS_ERROR,
   HAL_PCCARD_STATUS_TIMEOUT
-}HAL_PCCARD_StatusTypeDef;
+} HAL_PCCARD_StatusTypeDef;
 
 /**
   * @brief  FMC_PCCARD handle Structure definition
   */
-#if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)  
+#if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
 typedef struct __PCCARD_HandleTypeDef
 #else
 typedef struct
 #endif /* USE_HAL_PCCARD_REGISTER_CALLBACKS  */
 {
   FMC_PCCARD_TypeDef           *Instance;              /*!< Register base address for PCCARD device          */
-  
+
   FMC_PCCARD_InitTypeDef       Init;                   /*!< PCCARD device control configuration parameters   */
 
   __IO HAL_PCCARD_StateTypeDef State;                  /*!< PCCARD device access state                       */
@@ -87,9 +83,9 @@
   HAL_LockTypeDef              Lock;                   /*!< PCCARD Lock                                      */
 
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
-  void  (* MspInitCallback)        ( struct __PCCARD_HandleTypeDef * hpccard);    /*!< PCCARD Msp Init callback              */
-  void  (* MspDeInitCallback)      ( struct __PCCARD_HandleTypeDef * hpccard);    /*!< PCCARD Msp DeInit callback            */
-  void  (* ItCallback)             ( struct __PCCARD_HandleTypeDef * hpccard);    /*!< PCCARD IT callback                    */
+  void (* MspInitCallback)(struct __PCCARD_HandleTypeDef *hpccard);               /*!< PCCARD Msp Init callback              */
+  void (* MspDeInitCallback)(struct __PCCARD_HandleTypeDef *hpccard);             /*!< PCCARD Msp DeInit callback            */
+  void (* ItCallback)(struct __PCCARD_HandleTypeDef *hpccard);                    /*!< PCCARD IT callback                    */
 #endif
 } PCCARD_HandleTypeDef;
 
@@ -102,7 +98,7 @@
   HAL_PCCARD_MSP_INIT_CB_ID       = 0x00U,  /*!< PCCARD MspInit Callback ID          */
   HAL_PCCARD_MSP_DEINIT_CB_ID     = 0x01U,  /*!< PCCARD MspDeInit Callback ID        */
   HAL_PCCARD_IT_CB_ID             = 0x02U   /*!< PCCARD IT Callback ID               */
-}HAL_PCCARD_CallbackIDTypeDef;
+} HAL_PCCARD_CallbackIDTypeDef;
 
 /**
   * @brief  HAL PCCARD Callback pointer definition
@@ -133,18 +129,19 @@
 #endif
 /**
   * @}
-  */ 
+  */
 
 /* Exported functions --------------------------------------------------------*/
-/** @addtogroup PCCARD_Exported_Functions 
+/** @addtogroup PCCARD_Exported_Functions
   * @{
   */
 
-/** @addtogroup PCCARD_Exported_Functions_Group1 
+/** @addtogroup PCCARD_Exported_Functions_Group1
   * @{
   */
 /* Initialization/de-initialization functions  **********************************/
-HAL_StatusTypeDef  HAL_PCCARD_Init(PCCARD_HandleTypeDef *hpccard, FMC_NAND_PCC_TimingTypeDef *ComSpaceTiming, FMC_NAND_PCC_TimingTypeDef *AttSpaceTiming, FMC_NAND_PCC_TimingTypeDef *IOSpaceTiming);
+HAL_StatusTypeDef  HAL_PCCARD_Init(PCCARD_HandleTypeDef *hpccard, FMC_NAND_PCC_TimingTypeDef *ComSpaceTiming,
+                                   FMC_NAND_PCC_TimingTypeDef *AttSpaceTiming, FMC_NAND_PCC_TimingTypeDef *IOSpaceTiming);
 HAL_StatusTypeDef  HAL_PCCARD_DeInit(PCCARD_HandleTypeDef *hpccard);
 void HAL_PCCARD_MspInit(PCCARD_HandleTypeDef *hpccard);
 void HAL_PCCARD_MspDeInit(PCCARD_HandleTypeDef *hpccard);
@@ -157,8 +154,10 @@
   */
 /* IO operation functions  *****************************************************/
 HAL_StatusTypeDef  HAL_PCCARD_Read_ID(PCCARD_HandleTypeDef *hpccard, uint8_t CompactFlash_ID[], uint8_t *pStatus);
-HAL_StatusTypeDef  HAL_PCCARD_Write_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,  uint8_t *pStatus);
-HAL_StatusTypeDef  HAL_PCCARD_Read_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress, uint8_t *pStatus);
+HAL_StatusTypeDef  HAL_PCCARD_Write_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,
+                                           uint8_t *pStatus);
+HAL_StatusTypeDef  HAL_PCCARD_Read_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,
+                                          uint8_t *pStatus);
 HAL_StatusTypeDef  HAL_PCCARD_Erase_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t SectorAddress, uint8_t *pStatus);
 HAL_StatusTypeDef  HAL_PCCARD_Reset(PCCARD_HandleTypeDef *hpccard);
 void               HAL_PCCARD_IRQHandler(PCCARD_HandleTypeDef *hpccard);
@@ -166,8 +165,10 @@
 
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
 /* PCCARD callback registering/unregistering */
-HAL_StatusTypeDef  HAL_PCCARD_RegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId, pPCCARD_CallbackTypeDef pCallback);
-HAL_StatusTypeDef  HAL_PCCARD_UnRegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId);
+HAL_StatusTypeDef  HAL_PCCARD_RegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId,
+                                               pPCCARD_CallbackTypeDef pCallback);
+HAL_StatusTypeDef  HAL_PCCARD_UnRegisterCallback(PCCARD_HandleTypeDef *hpccard,
+                                                 HAL_PCCARD_CallbackIDTypeDef CallbackId);
 #endif
 /**
   * @}
@@ -223,7 +224,7 @@
 #define PCCARD_PROGR                   ((uint8_t)0x01)
 #define PCCARD_READY                   ((uint8_t)0x40)
 
-#define PCCARD_SECTOR_SIZE             255U               /* In half words */ 
+#define PCCARD_SECTOR_SIZE             255U               /* In half words */
 
 /**
   * @}
@@ -254,14 +255,14 @@
 
 #define CF_DEVICE_ADDRESS           PCCARD_DEVICE_ADDRESS
 #define CF_ATTRIBUTE_SPACE_ADDRESS  PCCARD_ATTRIBUTE_SPACE_ADDRESS
-#define CF_COMMON_SPACE_ADDRESS     PCCARD_COMMON_SPACE_ADDRESS   
-#define CF_IO_SPACE_ADDRESS         PCCARD_IO_SPACE_ADDRESS       
-#define CF_IO_SPACE_PRIMARY_ADDR    PCCARD_IO_SPACE_PRIMARY_ADDR  
+#define CF_COMMON_SPACE_ADDRESS     PCCARD_COMMON_SPACE_ADDRESS
+#define CF_IO_SPACE_ADDRESS         PCCARD_IO_SPACE_ADDRESS
+#define CF_IO_SPACE_PRIMARY_ADDR    PCCARD_IO_SPACE_PRIMARY_ADDR
 
 #define CF_TIMEOUT_ERROR            PCCARD_TIMEOUT_ERROR
-#define CF_BUSY                     PCCARD_BUSY         
-#define CF_PROGR                    PCCARD_PROGR        
-#define CF_READY                    PCCARD_READY        
+#define CF_BUSY                     PCCARD_BUSY
+#define CF_PROGR                    PCCARD_PROGR
+#define CF_READY                    PCCARD_READY
 
 #define CF_SECTOR_SIZE              PCCARD_SECTOR_SIZE
 
@@ -270,18 +271,15 @@
   * @}
   */
 
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
-          STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
-
 
 /**
   * @}
   */
-  
+
+#endif /*  FMC_Bank4 || FSMC_Bank4 */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_PCCARD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_PCCARD_H */
diff --git a/Inc/stm32f4xx_hal_pcd.h b/Inc/stm32f4xx_hal_pcd.h
index e28285d..92488b2 100644
--- a/Inc/stm32f4xx_hal_pcd.h
+++ b/Inc/stm32f4xx_hal_pcd.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -107,6 +106,7 @@
   uint32_t                Setup[12];   /*!< Setup packet buffer               */
   PCD_LPM_StateTypeDef    LPM_State;   /*!< LPM State                         */
   uint32_t                BESL;
+  uint32_t                FrameNumber; /*!< Store Current Frame number        */
 
 
   uint32_t lpm_active;                 /*!< Enable or disable the Link Power Management .
@@ -290,12 +290,10 @@
   * @}
   */
 
-HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd,
-                                           HAL_PCD_CallbackIDTypeDef CallbackID,
+HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID,
                                            pPCD_CallbackTypeDef pCallback);
 
-HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd,
-                                             HAL_PCD_CallbackIDTypeDef CallbackID);
+HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID);
 
 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd,
                                                        pPCD_DataOutStageCallbackTypeDef pCallback);
@@ -317,14 +315,10 @@
 
 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd);
 
-HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd,
-                                              pPCD_BcdCallbackTypeDef pCallback);
-
+HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd);
 
-HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd,
-                                              pPCD_LpmCallbackTypeDef pCallback);
-
+HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd);
 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 /**
@@ -364,22 +358,17 @@
 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address);
-HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr,
-                                  uint16_t ep_mps, uint8_t ep_type);
-
+HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
-HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr,
-                                     uint8_t *pBuf, uint32_t len);
-
-HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr,
-                                      uint8_t *pBuf, uint32_t len);
-
-
+HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
+HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
+HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
+HAL_StatusTypeDef HAL_PCD_SetTestMode(PCD_HandleTypeDef *hpcd, uint8_t testmode);
 
 uint32_t          HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
 /**
@@ -468,5 +457,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_PCD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_pcd_ex.h b/Inc/stm32f4xx_hal_pcd_ex.h
index 71e9a2c..72ded2b 100644
--- a/Inc/stm32f4xx_hal_pcd_ex.h
+++ b/Inc/stm32f4xx_hal_pcd_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -23,7 +22,7 @@
 
 #ifdef __cplusplus
 extern "C" {
-#endif
+#endif /* __cplusplus */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal_def.h"
@@ -83,9 +82,7 @@
 
 #ifdef __cplusplus
 }
-#endif
+#endif /* __cplusplus */
 
 
 #endif /* STM32F4xx_HAL_PCD_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_pwr.h b/Inc/stm32f4xx_hal_pwr.h
index 6f3bf71..d97f255 100644
--- a/Inc/stm32f4xx_hal_pwr.h
+++ b/Inc/stm32f4xx_hal_pwr.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -427,5 +425,3 @@
 
 
 #endif /* __STM32F4xx_HAL_PWR_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_pwr_ex.h b/Inc/stm32f4xx_hal_pwr_ex.h
index 10e017a..57fd4d9 100644
--- a/Inc/stm32f4xx_hal_pwr_ex.h
+++ b/Inc/stm32f4xx_hal_pwr_ex.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -340,5 +338,3 @@
 
 
 #endif /* __STM32F4xx_HAL_PWR_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_qspi.h b/Inc/stm32f4xx_hal_qspi.h
index 97e9324..56287af 100644
--- a/Inc/stm32f4xx_hal_qspi.h
+++ b/Inc/stm32f4xx_hal_qspi.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -457,7 +456,7 @@
   * @{
   */
 /** @brief Reset QSPI handle state.
-  * @param  __HANDLE__ : QSPI handle.
+  * @param  __HANDLE__ QSPI handle.
   * @retval None
   */
 #if (USE_HAL_QSPI_REGISTER_CALLBACKS == 1)
@@ -471,20 +470,20 @@
 #endif
 
 /** @brief  Enable the QSPI peripheral.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
+  * @param  __HANDLE__ specifies the QSPI Handle.
   * @retval None
   */
 #define __HAL_QSPI_ENABLE(__HANDLE__)                       SET_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN)
 
 /** @brief  Disable the QSPI peripheral.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
+  * @param  __HANDLE__ specifies the QSPI Handle.
   * @retval None
   */
 #define __HAL_QSPI_DISABLE(__HANDLE__)                      CLEAR_BIT((__HANDLE__)->Instance->CR, QUADSPI_CR_EN)
 
 /** @brief  Enable the specified QSPI interrupt.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
-  * @param  __INTERRUPT__ : specifies the QSPI interrupt source to enable.
+  * @param  __HANDLE__ specifies the QSPI Handle.
+  * @param  __INTERRUPT__ specifies the QSPI interrupt source to enable.
   *          This parameter can be one of the following values:
   *            @arg QSPI_IT_TO: QSPI Timeout interrupt
   *            @arg QSPI_IT_SM: QSPI Status match interrupt
@@ -497,8 +496,8 @@
 
 
 /** @brief  Disable the specified QSPI interrupt.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
-  * @param  __INTERRUPT__ : specifies the QSPI interrupt source to disable.
+  * @param  __HANDLE__ specifies the QSPI Handle.
+  * @param  __INTERRUPT__ specifies the QSPI interrupt source to disable.
   *          This parameter can be one of the following values:
   *            @arg QSPI_IT_TO: QSPI Timeout interrupt
   *            @arg QSPI_IT_SM: QSPI Status match interrupt
@@ -510,8 +509,8 @@
 #define __HAL_QSPI_DISABLE_IT(__HANDLE__, __INTERRUPT__)    CLEAR_BIT((__HANDLE__)->Instance->CR, (__INTERRUPT__))
 
 /** @brief  Check whether the specified QSPI interrupt source is enabled or not.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
-  * @param  __INTERRUPT__ : specifies the QSPI interrupt source to check.
+  * @param  __HANDLE__ specifies the QSPI Handle.
+  * @param  __INTERRUPT__ specifies the QSPI interrupt source to check.
   *          This parameter can be one of the following values:
   *            @arg QSPI_IT_TO: QSPI Timeout interrupt
   *            @arg QSPI_IT_SM: QSPI Status match interrupt
@@ -524,8 +523,8 @@
 
 /**
   * @brief  Check whether the selected QSPI flag is set or not.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
-  * @param  __FLAG__ : specifies the QSPI flag to check.
+  * @param  __HANDLE__ specifies the QSPI Handle.
+  * @param  __FLAG__ specifies the QSPI flag to check.
   *          This parameter can be one of the following values:
   *            @arg QSPI_FLAG_BUSY: QSPI Busy flag
   *            @arg QSPI_FLAG_TO:   QSPI Timeout flag
@@ -538,8 +537,8 @@
 #define __HAL_QSPI_GET_FLAG(__HANDLE__, __FLAG__)           ((READ_BIT((__HANDLE__)->Instance->SR, (__FLAG__)) != 0U) ? SET : RESET)
 
 /** @brief  Clears the specified QSPI's flag status.
-  * @param  __HANDLE__ : specifies the QSPI Handle.
-  * @param  __FLAG__ : specifies the QSPI clear register flag that needs to be set
+  * @param  __HANDLE__ specifies the QSPI Handle.
+  * @param  __FLAG__ specifies the QSPI clear register flag that needs to be set
   *          This parameter can be one of the following values:
   *            @arg QSPI_FLAG_TO: QSPI Timeout flag
   *            @arg QSPI_FLAG_SM: QSPI Status match flag
@@ -742,12 +741,10 @@
   * @}
   */
 
-#endif /* defined(QUADSPI) || defined(QUADSPI1) || defined(QUADSPI2) */
+#endif /* defined(QUADSPI) */
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* STM32F4xx_HAL_QSPI_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_rcc.h b/Inc/stm32f4xx_hal_rcc.h
index 2eeff34..dcf5814 100644
--- a/Inc/stm32f4xx_hal_rcc.h
+++ b/Inc/stm32f4xx_hal_rcc.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -1459,4 +1457,3 @@
 
 #endif /* __STM32F4xx_HAL_RCC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_rcc_ex.h b/Inc/stm32f4xx_hal_rcc_ex.h
index df6a66a..909a717 100644
--- a/Inc/stm32f4xx_hal_rcc_ex.h
+++ b/Inc/stm32f4xx_hal_rcc_ex.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -7111,4 +7109,3 @@
 
 #endif /* __STM32F4xx_HAL_RCC_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_rng.h b/Inc/stm32f4xx_hal_rng.h
index cde4859..7d4dca1 100644
--- a/Inc/stm32f4xx_hal_rng.h
+++ b/Inc/stm32f4xx_hal_rng.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -360,4 +359,3 @@
 
 #endif /* STM32F4xx_HAL_RNG_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_rtc.h b/Inc/stm32f4xx_hal_rtc.h
index 9afa8a1..24affc5 100644
--- a/Inc/stm32f4xx_hal_rtc.h
+++ b/Inc/stm32f4xx_hal_rtc.h
@@ -6,26 +6,26 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_RTC_H
-#define __STM32F4xx_HAL_RTC_H
+#ifndef STM32F4xx_HAL_RTC_H
+#define STM32F4xx_HAL_RTC_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
 /* Includes ------------------------------------------------------------------*/
+
 #include "stm32f4xx_hal_def.h"
 
 /** @addtogroup STM32F4xx_HAL_Driver
@@ -37,6 +37,7 @@
   */
 
 /* Exported types ------------------------------------------------------------*/
+
 /** @defgroup RTC_Exported_Types RTC Exported Types
   * @{
   */
@@ -51,7 +52,7 @@
   HAL_RTC_STATE_BUSY              = 0x02U,  /*!< RTC process is ongoing              */
   HAL_RTC_STATE_TIMEOUT           = 0x03U,  /*!< RTC timeout state                   */
   HAL_RTC_STATE_ERROR             = 0x04U   /*!< RTC error state                     */
-}HAL_RTCStateTypeDef;
+} HAL_RTCStateTypeDef;
 
 /**
   * @brief  RTC Configuration Structure definition
@@ -65,7 +66,7 @@
                                  This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F */
 
   uint32_t SynchPrediv;     /*!< Specifies the RTC Synchronous Predivider value.
-                                 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7FFFU */
+                                 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x7FFF */
 
   uint32_t OutPut;          /*!< Specifies which signal will be routed to the RTC output.
                                  This parameter can be a value of @ref RTC_Output_selection_Definitions */
@@ -75,7 +76,7 @@
 
   uint32_t OutPutType;      /*!< Specifies the RTC Output Pin mode.
                                  This parameter can be a value of @ref RTC_Output_Type_ALARM_OUT */
-}RTC_InitTypeDef;
+} RTC_InitTypeDef;
 
 /**
   * @brief  RTC Time structure definition
@@ -83,8 +84,8 @@
 typedef struct
 {
   uint8_t Hours;            /*!< Specifies the RTC Time Hour.
-                                 This parameter must be a number between Min_Data = 0 and Max_Data = 12 if the RTC_HourFormat_12 is selected.
-                                 This parameter must be a number between Min_Data = 0 and Max_Data = 23 if the RTC_HourFormat_24 is selected  */
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 12 if the RTC_HourFormat_12 is selected
+                                 This parameter must be a number between Min_Data = 0 and Max_Data = 23 if the RTC_HourFormat_24 is selected */
 
   uint8_t Minutes;          /*!< Specifies the RTC Time Minutes.
                                  This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
@@ -95,22 +96,22 @@
   uint8_t TimeFormat;       /*!< Specifies the RTC AM/PM Time.
                                  This parameter can be a value of @ref RTC_AM_PM_Definitions */
 
-  uint32_t SubSeconds;     /*!< Specifies the RTC_SSR RTC Sub Second register content.
+  uint32_t SubSeconds;      /*!< Specifies the RTC_SSR RTC Sub Second register content.
                                  This parameter corresponds to a time unit range between [0-1] Second
                                  with [1 Sec / SecondFraction +1] granularity */
 
   uint32_t SecondFraction;  /*!< Specifies the range or granularity of Sub Second register content
-                                 corresponding to Synchronous pre-scaler factor value (PREDIV_S)
+                                 corresponding to Synchronous prescaler factor value (PREDIV_S)
                                  This parameter corresponds to a time unit range between [0-1] Second
                                  with [1 Sec / SecondFraction +1] granularity.
                                  This field will be used only by HAL_RTC_GetTime function */
 
-  uint32_t DayLightSaving;  /*!< This interface is deprecated. To manage Daylight Saving Time,
-                                 please use HAL_RTC_DST_xxx functions */
+  uint32_t DayLightSaving;  /*!< This interface is deprecated. To manage Daylight
+                                 Saving Time, please use HAL_RTC_DST_xxx functions */
 
-  uint32_t StoreOperation;  /*!< This interface is deprecated. To manage Daylight Saving Time,
-                                 please use HAL_RTC_DST_xxx functions */
-}RTC_TimeTypeDef;
+  uint32_t StoreOperation;  /*!< This interface is deprecated. To manage Daylight
+                                 Saving Time, please use HAL_RTC_DST_xxx functions */
+} RTC_TimeTypeDef;
 
 /**
   * @brief  RTC Date structure definition
@@ -129,7 +130,7 @@
   uint8_t Year;     /*!< Specifies the RTC Date Year.
                          This parameter must be a number between Min_Data = 0 and Max_Data = 99 */
 
-}RTC_DateTypeDef;
+} RTC_DateTypeDef;
 
 /**
   * @brief  RTC Alarm structure definition
@@ -145,7 +146,7 @@
                                       This parameter can be a value of @ref RTC_Alarm_Sub_Seconds_Masks_Definitions */
 
   uint32_t AlarmDateWeekDaySel;  /*!< Specifies the RTC Alarm is on Date or WeekDay.
-                                     This parameter can be a value of @ref RTC_AlarmDateWeekDay_Definitions */
+                                      This parameter can be a value of @ref RTC_AlarmDateWeekDay_Definitions */
 
   uint8_t AlarmDateWeekDay;      /*!< Specifies the RTC Alarm Date/WeekDay.
                                       If the Alarm Date is selected, this parameter must be set to a value in the 1-31 range.
@@ -153,7 +154,7 @@
 
   uint32_t Alarm;                /*!< Specifies the alarm .
                                       This parameter can be a value of @ref RTC_Alarms_Definitions */
-}RTC_AlarmTypeDef;
+} RTC_AlarmTypeDef;
 
 /**
   * @brief  RTC Handle Structure definition
@@ -162,7 +163,7 @@
 typedef struct __RTC_HandleTypeDef
 #else
 typedef struct
-#endif /* (USE_HAL_RTC_REGISTER_CALLBACKS) */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 {
   RTC_TypeDef                 *Instance;  /*!< Register base address    */
 
@@ -173,25 +174,27 @@
   __IO HAL_RTCStateTypeDef    State;      /*!< Time communication state */
 
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
-  void  (* AlarmAEventCallback)      ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Alarm A Event callback         */
+  void (* AlarmAEventCallback)      (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Alarm A Event callback         */
 
-  void  (* AlarmBEventCallback)      ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Alarm B Event callback         */
+  void (* AlarmBEventCallback)      (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Alarm B Event callback         */
 
-  void  (* TimeStampEventCallback)   ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC TimeStamp Event callback       */
+  void (* TimeStampEventCallback)   (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Timestamp Event callback       */
 
-  void  (* WakeUpTimerEventCallback) ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC WakeUpTimer Event callback     */
+  void (* WakeUpTimerEventCallback) (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC WakeUpTimer Event callback     */
 
-  void  (* Tamper1EventCallback)     ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Tamper 1 Event callback        */
+  void (* Tamper1EventCallback)     (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Tamper 1 Event callback        */
 
-  void  (* Tamper2EventCallback)     ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Tamper 2 Event callback        */
+#if defined(RTC_TAMPER2_SUPPORT)
+  void (* Tamper2EventCallback)     (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Tamper 2 Event callback        */
+#endif /* RTC_TAMPER2_SUPPORT */
 
-  void  (* MspInitCallback)          ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Msp Init callback              */
+  void (* MspInitCallback)          (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Msp Init callback              */
 
-  void  (* MspDeInitCallback)        ( struct __RTC_HandleTypeDef * hrtc);  /*!< RTC Msp DeInit callback            */
+  void (* MspDeInitCallback)        (struct __RTC_HandleTypeDef *hrtc);  /*!< RTC Msp DeInit callback            */
 
-#endif /* (USE_HAL_RTC_REGISTER_CALLBACKS) */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
-}RTC_HandleTypeDef;
+} RTC_HandleTypeDef;
 
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
 /**
@@ -199,20 +202,22 @@
   */
 typedef enum
 {
-  HAL_RTC_ALARM_A_EVENT_CB_ID           = 0x00u,    /*!< RTC Alarm A Event Callback ID       */
-  HAL_RTC_ALARM_B_EVENT_CB_ID           = 0x01u,    /*!< RTC Alarm B Event Callback ID       */
-  HAL_RTC_TIMESTAMP_EVENT_CB_ID         = 0x02u,    /*!< RTC TimeStamp Event Callback ID     */
-  HAL_RTC_WAKEUPTIMER_EVENT_CB_ID       = 0x03u,    /*!< RTC Wake-Up Timer Event Callback ID */
-  HAL_RTC_TAMPER1_EVENT_CB_ID           = 0x04u,    /*!< RTC Tamper 1 Callback ID            */
-  HAL_RTC_TAMPER2_EVENT_CB_ID           = 0x05u,    /*!< RTC Tamper 2 Callback ID            */
-  HAL_RTC_MSPINIT_CB_ID                 = 0x0Eu,    /*!< RTC Msp Init callback ID            */
-  HAL_RTC_MSPDEINIT_CB_ID               = 0x0Fu     /*!< RTC Msp DeInit callback ID          */
-}HAL_RTC_CallbackIDTypeDef;
+  HAL_RTC_ALARM_A_EVENT_CB_ID           = 0x00U,    /*!< RTC Alarm A Event Callback ID       */
+  HAL_RTC_ALARM_B_EVENT_CB_ID           = 0x01U,    /*!< RTC Alarm B Event Callback ID       */
+  HAL_RTC_TIMESTAMP_EVENT_CB_ID         = 0x02U,    /*!< RTC Timestamp Event Callback ID     */
+  HAL_RTC_WAKEUPTIMER_EVENT_CB_ID       = 0x03U,    /*!< RTC Wakeup Timer Event Callback ID  */
+  HAL_RTC_TAMPER1_EVENT_CB_ID           = 0x04U,    /*!< RTC Tamper 1 Callback ID            */
+#if defined(RTC_TAMPER2_SUPPORT)
+  HAL_RTC_TAMPER2_EVENT_CB_ID           = 0x05U,    /*!< RTC Tamper 2 Callback ID            */
+#endif /* RTC_TAMPER2_SUPPORT */
+  HAL_RTC_MSPINIT_CB_ID                 = 0x0EU,    /*!< RTC Msp Init callback ID            */
+  HAL_RTC_MSPDEINIT_CB_ID               = 0x0FU     /*!< RTC Msp DeInit callback ID          */
+} HAL_RTC_CallbackIDTypeDef;
 
 /**
   * @brief  HAL RTC Callback pointer definition
   */
-typedef  void (*pRTC_CallbackTypeDef)(RTC_HandleTypeDef * hrtc); /*!< pointer to an RTC callback function */
+typedef  void (*pRTC_CallbackTypeDef)(RTC_HandleTypeDef *hrtc);  /*!< pointer to an RTC callback function */
 #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
 /**
@@ -220,6 +225,7 @@
   */
 
 /* Exported constants --------------------------------------------------------*/
+
 /** @defgroup RTC_Exported_Constants RTC Exported Constants
   * @{
   */
@@ -228,7 +234,7 @@
   * @{
   */
 #define RTC_HOURFORMAT_24              0x00000000U
-#define RTC_HOURFORMAT_12              0x00000040U
+#define RTC_HOURFORMAT_12              RTC_CR_FMT
 /**
   * @}
   */
@@ -237,9 +243,9 @@
   * @{
   */
 #define RTC_OUTPUT_DISABLE             0x00000000U
-#define RTC_OUTPUT_ALARMA              0x00200000U
-#define RTC_OUTPUT_ALARMB              0x00400000U
-#define RTC_OUTPUT_WAKEUP              0x00600000U
+#define RTC_OUTPUT_ALARMA              RTC_CR_OSEL_0
+#define RTC_OUTPUT_ALARMB              RTC_CR_OSEL_1
+#define RTC_OUTPUT_WAKEUP              RTC_CR_OSEL
 /**
   * @}
   */
@@ -248,7 +254,7 @@
   * @{
   */
 #define RTC_OUTPUT_POLARITY_HIGH       0x00000000U
-#define RTC_OUTPUT_POLARITY_LOW        0x00100000U
+#define RTC_OUTPUT_POLARITY_LOW        RTC_CR_POL
 /**
   * @}
   */
@@ -257,7 +263,7 @@
   * @{
   */
 #define RTC_OUTPUT_TYPE_OPENDRAIN      0x00000000U
-#define RTC_OUTPUT_TYPE_PUSHPULL       0x00040000U
+#define RTC_OUTPUT_TYPE_PUSHPULL       RTC_TAFCR_ALARMOUTTYPE
 /**
   * @}
   */
@@ -266,7 +272,7 @@
   * @{
   */
 #define RTC_HOURFORMAT12_AM            ((uint8_t)0x00)
-#define RTC_HOURFORMAT12_PM            ((uint8_t)0x40)
+#define RTC_HOURFORMAT12_PM            ((uint8_t)0x01)
 /**
   * @}
   */
@@ -274,8 +280,8 @@
 /** @defgroup RTC_DayLightSaving_Definitions RTC DayLight Saving Definitions
   * @{
   */
-#define RTC_DAYLIGHTSAVING_SUB1H       0x00020000U
-#define RTC_DAYLIGHTSAVING_ADD1H       0x00010000U
+#define RTC_DAYLIGHTSAVING_SUB1H       RTC_CR_SUB1H
+#define RTC_DAYLIGHTSAVING_ADD1H       RTC_CR_ADD1H
 #define RTC_DAYLIGHTSAVING_NONE        0x00000000U
 /**
   * @}
@@ -285,7 +291,7 @@
   * @{
   */
 #define RTC_STOREOPERATION_RESET        0x00000000U
-#define RTC_STOREOPERATION_SET          0x00040000U
+#define RTC_STOREOPERATION_SET          RTC_CR_BKP
 /**
   * @}
   */
@@ -293,16 +299,15 @@
 /** @defgroup RTC_Input_parameter_format_definitions RTC Input Parameter Format Definitions
   * @{
   */
-#define RTC_FORMAT_BIN                      0x00000000U
-#define RTC_FORMAT_BCD                      0x00000001U
+#define RTC_FORMAT_BIN                  0x00000000U
+#define RTC_FORMAT_BCD                  0x00000001U
 /**
   * @}
   */
 
-/** @defgroup RTC_Month_Date_Definitions RTC Month Date Definitions
+/** @defgroup RTC_Month_Date_Definitions RTC Month Date Definitions (in BCD format)
   * @{
   */
-/* Coded in BCD format */
 #define RTC_MONTH_JANUARY              ((uint8_t)0x01)
 #define RTC_MONTH_FEBRUARY             ((uint8_t)0x02)
 #define RTC_MONTH_MARCH                ((uint8_t)0x03)
@@ -337,7 +342,7 @@
   * @{
   */
 #define RTC_ALARMDATEWEEKDAYSEL_DATE      0x00000000U
-#define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY   0x40000000U
+#define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY   RTC_ALRMAR_WDSEL
 /**
   * @}
   */
@@ -350,7 +355,10 @@
 #define RTC_ALARMMASK_HOURS               RTC_ALRMAR_MSK3
 #define RTC_ALARMMASK_MINUTES             RTC_ALRMAR_MSK2
 #define RTC_ALARMMASK_SECONDS             RTC_ALRMAR_MSK1
-#define RTC_ALARMMASK_ALL                 0x80808080U
+#define RTC_ALARMMASK_ALL                 (RTC_ALARMMASK_DATEWEEKDAY | \
+                                           RTC_ALARMMASK_HOURS       | \
+                                           RTC_ALARMMASK_MINUTES     | \
+                                           RTC_ALARMMASK_SECONDS)
 /**
   * @}
   */
@@ -367,39 +375,38 @@
 /** @defgroup RTC_Alarm_Sub_Seconds_Masks_Definitions RTC Alarm Sub Seconds Masks Definitions
   * @{
   */
-#define RTC_ALARMSUBSECONDMASK_ALL         0x00000000U  /*!< All Alarm SS fields are masked.
-                                                                        There is no comparison on sub seconds
-                                                                        for Alarm */
-#define RTC_ALARMSUBSECONDMASK_SS14_1      0x01000000U  /*!< SS[14:1] are don't care in Alarm
-                                                                        comparison. Only SS[0] is compared.    */
-#define RTC_ALARMSUBSECONDMASK_SS14_2      0x02000000U  /*!< SS[14:2] are don't care in Alarm
-                                                                        comparison. Only SS[1:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_3      0x03000000U  /*!< SS[14:3] are don't care in Alarm
-                                                                        comparison. Only SS[2:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_4      0x04000000U  /*!< SS[14:4] are don't care in Alarm
-                                                                        comparison. Only SS[3:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_5      0x05000000U  /*!< SS[14:5] are don't care in Alarm
-                                                                        comparison. Only SS[4:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_6      0x06000000U  /*!< SS[14:6] are don't care in Alarm
-                                                                        comparison. Only SS[5:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_7      0x07000000U  /*!< SS[14:7] are don't care in Alarm
-                                                                        comparison. Only SS[6:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_8      0x08000000U  /*!< SS[14:8] are don't care in Alarm
-                                                                        comparison. Only SS[7:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_9      0x09000000U  /*!< SS[14:9] are don't care in Alarm
-                                                                        comparison. Only SS[8:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_10     0x0A000000U  /*!< SS[14:10] are don't care in Alarm
-                                                                        comparison. Only SS[9:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_11     0x0B000000U  /*!< SS[14:11] are don't care in Alarm
-                                                                        comparison. Only SS[10:0] are compared */
-#define RTC_ALARMSUBSECONDMASK_SS14_12     0x0C000000U  /*!< SS[14:12] are don't care in Alarm
-                                                                        comparison.Only SS[11:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_SS14_13     0x0D000000U  /*!< SS[14:13] are don't care in Alarm
-                                                                        comparison. Only SS[12:0] are compared */
-#define RTC_ALARMSUBSECONDMASK_SS14        0x0E000000U  /*!< SS[14] is don't care in Alarm
-                                                                        comparison.Only SS[13:0] are compared  */
-#define RTC_ALARMSUBSECONDMASK_NONE        0x0F000000U  /*!< SS[14:0] are compared and must match
-                                                                        to activate alarm. */
+/*!< All Alarm SS fields are masked. There is no comparison on sub seconds for Alarm */
+#define RTC_ALARMSUBSECONDMASK_ALL         0x00000000U
+/*!< SS[14:1] are don't care in Alarm comparison. Only SS[0] is compared.     */
+#define RTC_ALARMSUBSECONDMASK_SS14_1      RTC_ALRMASSR_MASKSS_0
+/*!< SS[14:2] are don't care in Alarm comparison. Only SS[1:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_2      RTC_ALRMASSR_MASKSS_1
+/*!< SS[14:3] are don't care in Alarm comparison. Only SS[2:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_3      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1)
+/*!< SS[14:4] are don't care in Alarm comparison. Only SS[3:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_4      RTC_ALRMASSR_MASKSS_2
+/*!< SS[14:5] are don't care in Alarm comparison. Only SS[4:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_5      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:6] are don't care in Alarm comparison. Only SS[5:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_6      (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:7] are don't care in Alarm comparison. Only SS[6:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_7      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2)
+/*!< SS[14:8] are don't care in Alarm comparison. Only SS[7:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_8      RTC_ALRMASSR_MASKSS_3
+/*!< SS[14:9] are don't care in Alarm comparison. Only SS[8:0] are compared.  */
+#define RTC_ALARMSUBSECONDMASK_SS14_9      (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:10] are don't care in Alarm comparison. Only SS[9:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_10     (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:11] are don't care in Alarm comparison. Only SS[10:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_11     (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:12] are don't care in Alarm comparison. Only SS[11:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_12     (RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:13] are don't care in Alarm comparison. Only SS[12:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14_13     (RTC_ALRMASSR_MASKSS_0 | RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14] is don't care in Alarm comparison. Only SS[13:0] are compared. */
+#define RTC_ALARMSUBSECONDMASK_SS14        (RTC_ALRMASSR_MASKSS_1 | RTC_ALRMASSR_MASKSS_2 | RTC_ALRMASSR_MASKSS_3)
+/*!< SS[14:0] are compared and must match to activate alarm. */
+#define RTC_ALARMSUBSECONDMASK_NONE        RTC_ALRMASSR_MASKSS
 /**
   * @}
   */
@@ -407,13 +414,10 @@
 /** @defgroup RTC_Interrupts_Definitions RTC Interrupts Definitions
   * @{
   */
-#define RTC_IT_TS                         0x00008000U
-#define RTC_IT_WUT                        0x00004000U
-#define RTC_IT_ALRB                       0x00002000U
-#define RTC_IT_ALRA                       0x00001000U
-#define RTC_IT_TAMP                       0x00000004U /* Used only to Enable the Tamper Interrupt */
-#define RTC_IT_TAMP1                      0x00020000U
-#define RTC_IT_TAMP2                      0x00040000U
+#define RTC_IT_TS                         RTC_CR_TSIE         /*!< Enable Timestamp Interrupt               */
+#define RTC_IT_WUT                        RTC_CR_WUTIE        /*!< Enable Wakeup timer Interrupt            */
+#define RTC_IT_ALRB                       RTC_CR_ALRBIE       /*!< Enable Alarm B Interrupt                 */
+#define RTC_IT_ALRA                       RTC_CR_ALRAIE       /*!< Enable Alarm A Interrupt                 */
 /**
   * @}
   */
@@ -421,21 +425,23 @@
 /** @defgroup RTC_Flags_Definitions RTC Flags Definitions
   * @{
   */
-#define RTC_FLAG_RECALPF                  0x00010000U
-#define RTC_FLAG_TAMP2F                   0x00004000U
-#define RTC_FLAG_TAMP1F                   0x00002000U
-#define RTC_FLAG_TSOVF                    0x00001000U
-#define RTC_FLAG_TSF                      0x00000800U
-#define RTC_FLAG_WUTF                     0x00000400U
-#define RTC_FLAG_ALRBF                    0x00000200U
-#define RTC_FLAG_ALRAF                    0x00000100U
-#define RTC_FLAG_INITF                    0x00000040U
-#define RTC_FLAG_RSF                      0x00000020U
-#define RTC_FLAG_INITS                    0x00000010U
-#define RTC_FLAG_SHPF                     0x00000008U
-#define RTC_FLAG_WUTWF                    0x00000004U
-#define RTC_FLAG_ALRBWF                   0x00000002U
-#define RTC_FLAG_ALRAWF                   0x00000001U
+#define RTC_FLAG_RECALPF                  RTC_ISR_RECALPF     /*!< Recalibration pending flag               */
+#if defined(RTC_TAMPER2_SUPPORT)
+#define RTC_FLAG_TAMP2F                   RTC_ISR_TAMP2F      /*!< Tamper 2 event flag                      */
+#endif /* RTC_TAMPER2_SUPPORT */
+#define RTC_FLAG_TAMP1F                   RTC_ISR_TAMP1F      /*!< Tamper 1 event flag                      */
+#define RTC_FLAG_TSOVF                    RTC_ISR_TSOVF       /*!< Timestamp overflow flag                  */
+#define RTC_FLAG_TSF                      RTC_ISR_TSF         /*!< Timestamp event flag                     */
+#define RTC_FLAG_WUTF                     RTC_ISR_WUTF        /*!< Wakeup timer event flag                  */
+#define RTC_FLAG_ALRBF                    RTC_ISR_ALRBF       /*!< Alarm B event flag                       */
+#define RTC_FLAG_ALRAF                    RTC_ISR_ALRAF       /*!< Alarm A event flag                       */
+#define RTC_FLAG_INITF                    RTC_ISR_INITF       /*!< RTC in initialization mode flag          */
+#define RTC_FLAG_RSF                      RTC_ISR_RSF         /*!< Register synchronization flag            */
+#define RTC_FLAG_INITS                    RTC_ISR_INITS       /*!< RTC initialization status flag           */
+#define RTC_FLAG_SHPF                     RTC_ISR_SHPF        /*!< Shift operation pending flag             */
+#define RTC_FLAG_WUTWF                    RTC_ISR_WUTWF       /*!< WUTR register write allowance flag       */
+#define RTC_FLAG_ALRBWF                   RTC_ISR_ALRBWF      /*!< ALRMBR register write allowance flag     */
+#define RTC_FLAG_ALRAWF                   RTC_ISR_ALRAWF      /*!< ALRMAR register write allowance flag     */
 /**
   * @}
   */
@@ -444,7 +450,8 @@
   * @}
   */
 
-/* Exported macro ------------------------------------------------------------*/
+/* Exported macros -----------------------------------------------------------*/
+
 /** @defgroup RTC_Exported_Macros RTC Exported Macros
   * @{
   */
@@ -454,11 +461,11 @@
   * @retval None
   */
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
-#define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) do{\
-                                                      (__HANDLE__)->State = HAL_RTC_STATE_RESET;\
-                                                      (__HANDLE__)->MspInitCallback = NULL;\
-                                                      (__HANDLE__)->MspDeInitCallback = NULL;\
-                                                     }while(0u)
+#define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) do {                                            \
+                                                      (__HANDLE__)->State = HAL_RTC_STATE_RESET; \
+                                                      (__HANDLE__)->MspInitCallback = NULL;      \
+                                                      (__HANDLE__)->MspDeInitCallback = NULL;    \
+                                                    } while(0U)
 #else
 #define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_RTC_STATE_RESET)
 #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
@@ -468,21 +475,20 @@
   * @param  __HANDLE__ specifies the RTC handle.
   * @retval None
   */
-#define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__)             \
-                        do{                                       \
-                            (__HANDLE__)->Instance->WPR = 0xCAU;  \
-                            (__HANDLE__)->Instance->WPR = 0x53U;  \
-                          } while(0U)
+#define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__) do {                                       \
+                                                           (__HANDLE__)->Instance->WPR = 0xCAU;  \
+                                                           (__HANDLE__)->Instance->WPR = 0x53U;  \
+                                                         } while(0U)
 
 /**
   * @brief  Enable the write protection for RTC registers.
   * @param  __HANDLE__ specifies the RTC handle.
   * @retval None
   */
-#define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__)              \
-                        do{                                       \
-                            (__HANDLE__)->Instance->WPR = 0xFFU;  \
-                          } while(0U)
+#define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__) do {                                       \
+                                                          (__HANDLE__)->Instance->WPR = 0xFFU;  \
+                                                        } while(0U)
+
 
 /**
   * @brief  Enable the RTC ALARMA peripheral.
@@ -527,9 +533,9 @@
   * @brief  Disable the RTC Alarm interrupt.
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to be enabled or disabled.
-  *         This parameter can be any combination of the following values:
-  *            @arg RTC_IT_ALRA: Alarm A interrupt
-  *            @arg RTC_IT_ALRB: Alarm B interrupt
+  *          This parameter can be any combination of the following values:
+  *             @arg RTC_IT_ALRA: Alarm A interrupt
+  *             @arg RTC_IT_ALRB: Alarm B interrupt
   * @retval None
   */
 #define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__)         ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
@@ -543,25 +549,25 @@
   *            @arg RTC_IT_ALRB: Alarm B interrupt
   * @retval None
   */
-#define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __INTERRUPT__)           (((((__HANDLE__)->Instance->ISR)& ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
+#define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __INTERRUPT__)           (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
 
 /**
   * @brief  Get the selected RTC Alarm's flag status.
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __FLAG__ specifies the RTC Alarm Flag to check.
   *         This parameter can be:
-  *            @arg RTC_FLAG_ALRAF
-  *            @arg RTC_FLAG_ALRBF
-  *            @arg RTC_FLAG_ALRAWF
-  *            @arg RTC_FLAG_ALRBWF
+  *            @arg RTC_FLAG_ALRAF: Alarm A interrupt flag
+  *            @arg RTC_FLAG_ALRAWF: Alarm A 'write allowed' flag
+  *            @arg RTC_FLAG_ALRBF: Alarm B interrupt flag
+  *            @arg RTC_FLAG_ALRBWF: Alarm B 'write allowed' flag
   * @retval None
   */
-#define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
+#define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
 
 /**
   * @brief  Clear the RTC Alarm's pending flags.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC Alarm Flag sources to be enabled or disabled.
+  * @param  __FLAG__ specifies the RTC Alarm flag to be cleared.
   *          This parameter can be:
   *             @arg RTC_FLAG_ALRAF
   *             @arg RTC_FLAG_ALRBF
@@ -569,7 +575,6 @@
   */
 #define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__)                  ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
 
-
 /**
   * @brief  Check whether the specified RTC Alarm interrupt has been enabled or not.
   * @param  __HANDLE__ specifies the RTC handle.
@@ -579,86 +584,88 @@
   *            @arg RTC_IT_ALRB: Alarm B interrupt
   * @retval None
   */
-#define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
+#define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
 
 /**
-  * @brief  Enable interrupt on the RTC Alarm associated Exti line.
+  * @brief  Enable interrupt on the RTC Alarm associated EXTI line.
   * @retval None
   */
 #define __HAL_RTC_ALARM_EXTI_ENABLE_IT()            (EXTI->IMR |= RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Disable interrupt on the RTC Alarm associated Exti line.
+  * @brief  Disable interrupt on the RTC Alarm associated EXTI line.
   * @retval None
   */
-#define __HAL_RTC_ALARM_EXTI_DISABLE_IT()           (EXTI->IMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
+#define __HAL_RTC_ALARM_EXTI_DISABLE_IT()           (EXTI->IMR &= ~RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Enable event on the RTC Alarm associated Exti line.
+  * @brief  Enable event on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_ENABLE_EVENT()         (EXTI->EMR |= RTC_EXTI_LINE_ALARM_EVENT)
+#define __HAL_RTC_ALARM_EXTI_ENABLE_EVENT()          (EXTI->EMR |= RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Disable event on the RTC Alarm associated Exti line.
+  * @brief  Disable event on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_DISABLE_EVENT()         (EXTI->EMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
+#define __HAL_RTC_ALARM_EXTI_DISABLE_EVENT()         (EXTI->EMR &= ~RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Enable falling edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Enable falling edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Disable falling edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Disable falling edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
+#define __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Enable rising edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Enable rising edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Disable rising edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Disable rising edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
+#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief  Enable rising & falling edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Enable rising & falling edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_FALLING_EDGE() do { __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE(); \
-                                                               __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE();\
+#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                             \
+                                                               __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();  \
+                                                               __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE(); \
                                                              } while(0U)
 
 /**
-  * @brief  Disable rising & falling edge trigger on the RTC Alarm associated Exti line.
+  * @brief  Disable rising & falling edge trigger on the RTC Alarm associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_FALLING_EDGE() do { __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE();\
-                                                                __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE();\
+#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                              \
+                                                                __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE();  \
+                                                                __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE(); \
                                                               } while(0U)
 
 /**
-  * @brief Check whether the RTC Alarm associated Exti line interrupt flag is set or not.
+  * @brief Check whether the RTC Alarm associated EXTI line interrupt flag is set or not.
   * @retval Line Status.
   */
 #define __HAL_RTC_ALARM_EXTI_GET_FLAG()              (EXTI->PR & RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief Clear the RTC Alarm associated Exti line flag.
+  * @brief Clear the RTC Alarm associated EXTI line flag.
   * @retval None.
   */
 #define __HAL_RTC_ALARM_EXTI_CLEAR_FLAG()            (EXTI->PR = RTC_EXTI_LINE_ALARM_EVENT)
 
 /**
-  * @brief Generate a Software interrupt on RTC Alarm associated Exti line.
+  * @brief Generate a Software interrupt on RTC Alarm associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_ALARM_EXTI_GENERATE_SWIT()         (EXTI->SWIER |= RTC_EXTI_LINE_ALARM_EVENT)
@@ -666,10 +673,11 @@
   * @}
   */
 
-/* Include RTC HAL Extension module */
+/* Include RTC HAL Extended module */
 #include "stm32f4xx_hal_rtc_ex.h"
 
 /* Exported functions --------------------------------------------------------*/
+
 /** @addtogroup RTC_Exported_Functions
   * @{
   */
@@ -680,8 +688,8 @@
 /* Initialization and de-initialization functions  ****************************/
 HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc);
 HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc);
-void       HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
-void       HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);
 
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
@@ -700,11 +708,6 @@
 HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
 HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
 HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
-void              HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc);
-void              HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc);
-void              HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc);
-void              HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc);
-uint32_t          HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc);
 /**
   * @}
   */
@@ -717,9 +720,9 @@
 HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
 HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm);
 HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);
-void                HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
-HAL_StatusTypeDef   HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
-void         HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+void              HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
 /**
   * @}
   */
@@ -728,7 +731,14 @@
   * @{
   */
 /* Peripheral Control functions ***********************************************/
-HAL_StatusTypeDef   HAL_RTC_WaitForSynchro(RTC_HandleTypeDef* hrtc);
+HAL_StatusTypeDef   HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc);
+
+/* RTC Daylight Saving Time functions *****************************************/
+void              HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc);
+void              HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc);
+uint32_t          HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc);
 /**
   * @}
   */
@@ -749,28 +759,38 @@
 /* Private types -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private constants ---------------------------------------------------------*/
+
 /** @defgroup RTC_Private_Constants RTC Private Constants
   * @{
   */
 /* Masks Definition */
-#define RTC_TR_RESERVED_MASK    0x007F7F7FU
-#define RTC_DR_RESERVED_MASK    0x00FFFF3FU
+#define RTC_TR_RESERVED_MASK    ((uint32_t)(RTC_TR_HT  | RTC_TR_HU  | \
+                                            RTC_TR_MNT | RTC_TR_MNU | \
+                                            RTC_TR_ST  | RTC_TR_SU  | \
+                                            RTC_TR_PM))
+#define RTC_DR_RESERVED_MASK    ((uint32_t)(RTC_DR_YT | RTC_DR_YU | \
+                                            RTC_DR_MT | RTC_DR_MU | \
+                                            RTC_DR_DT | RTC_DR_DU | \
+                                            RTC_DR_WDU))
 #define RTC_INIT_MASK           0xFFFFFFFFU
-#define RTC_RSF_MASK            0xFFFFFF5FU
-#define RTC_FLAGS_MASK          ((uint32_t)(RTC_FLAG_TSOVF | RTC_FLAG_TSF | RTC_FLAG_WUTF | \
-                                            RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | RTC_FLAG_INITF | \
-                                            RTC_FLAG_RSF | RTC_FLAG_INITS | RTC_FLAG_WUTWF | \
-                                            RTC_FLAG_ALRBWF | RTC_FLAG_ALRAWF | RTC_FLAG_TAMP1F | \
-                                            RTC_FLAG_RECALPF | RTC_FLAG_SHPF))
+#define RTC_RSF_MASK            ((uint32_t)~(RTC_ISR_INIT | RTC_ISR_RSF))
+#define RTC_FLAGS_MASK          ((uint32_t)(RTC_FLAG_INITF   | RTC_FLAG_INITS  | \
+                                            RTC_FLAG_ALRAF   | RTC_FLAG_ALRAWF | \
+                                            RTC_FLAG_ALRBF   | RTC_FLAG_ALRBWF | \
+                                            RTC_FLAG_WUTF    | RTC_FLAG_WUTWF  | \
+                                            RTC_FLAG_RECALPF | RTC_FLAG_SHPF   | \
+                                            RTC_FLAG_TSF     | RTC_FLAG_TSOVF  | \
+                                            RTC_FLAG_RSF     | RTC_TAMPER_FLAGS_MASK))
 
-#define RTC_TIMEOUT_VALUE       1000
+#define RTC_TIMEOUT_VALUE       1000U
 
-#define RTC_EXTI_LINE_ALARM_EVENT             ((uint32_t)EXTI_IMR_MR17)  /*!< External interrupt line 17 Connected to the RTC Alarm event */
+#define RTC_EXTI_LINE_ALARM_EVENT  EXTI_IMR_MR17  /*!< External interrupt line 17 Connected to the RTC Alarm event */
 /**
   * @}
   */
 
 /* Private macros ------------------------------------------------------------*/
+
 /** @defgroup RTC_Private_Macros RTC Private Macros
   * @{
   */
@@ -780,31 +800,42 @@
   */
 #define IS_RTC_HOUR_FORMAT(FORMAT)     (((FORMAT) == RTC_HOURFORMAT_12) || \
                                         ((FORMAT) == RTC_HOURFORMAT_24))
+
 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
                                ((OUTPUT) == RTC_OUTPUT_ALARMA)  || \
                                ((OUTPUT) == RTC_OUTPUT_ALARMB)  || \
                                ((OUTPUT) == RTC_OUTPUT_WAKEUP))
+
 #define IS_RTC_OUTPUT_POL(POL) (((POL) == RTC_OUTPUT_POLARITY_HIGH) || \
                                 ((POL) == RTC_OUTPUT_POLARITY_LOW))
+
 #define IS_RTC_OUTPUT_TYPE(TYPE) (((TYPE) == RTC_OUTPUT_TYPE_OPENDRAIN) || \
                                   ((TYPE) == RTC_OUTPUT_TYPE_PUSHPULL))
-#define IS_RTC_HOUR12(HOUR)            (((HOUR) > 0U) && ((HOUR) <= 12U))
-#define IS_RTC_HOUR24(HOUR)            ((HOUR) <= 23U)
+
 #define IS_RTC_ASYNCH_PREDIV(PREDIV)   ((PREDIV) <= 0x7FU)
 #define IS_RTC_SYNCH_PREDIV(PREDIV)    ((PREDIV) <= 0x7FFFU)
+
+#define IS_RTC_HOUR12(HOUR)            (((HOUR) > 0U) && ((HOUR) <= 12U))
+#define IS_RTC_HOUR24(HOUR)            ((HOUR) <= 23U)
 #define IS_RTC_MINUTES(MINUTES)        ((MINUTES) <= 59U)
 #define IS_RTC_SECONDS(SECONDS)        ((SECONDS) <= 59U)
 
-#define IS_RTC_HOURFORMAT12(PM)  (((PM) == RTC_HOURFORMAT12_AM) || ((PM) == RTC_HOURFORMAT12_PM))
+#define IS_RTC_HOURFORMAT12(PM)  (((PM) == RTC_HOURFORMAT12_AM) || \
+                                  ((PM) == RTC_HOURFORMAT12_PM))
+
 #define IS_RTC_DAYLIGHT_SAVING(SAVE) (((SAVE) == RTC_DAYLIGHTSAVING_SUB1H) || \
                                       ((SAVE) == RTC_DAYLIGHTSAVING_ADD1H) || \
                                       ((SAVE) == RTC_DAYLIGHTSAVING_NONE))
+
 #define IS_RTC_STORE_OPERATION(OPERATION) (((OPERATION) == RTC_STOREOPERATION_RESET) || \
                                            ((OPERATION) == RTC_STOREOPERATION_SET))
+
 #define IS_RTC_FORMAT(FORMAT) (((FORMAT) == RTC_FORMAT_BIN) || ((FORMAT) == RTC_FORMAT_BCD))
+
 #define IS_RTC_YEAR(YEAR)              ((YEAR) <= 99U)
 #define IS_RTC_MONTH(MONTH)            (((MONTH) >= 1U) && ((MONTH) <= 12U))
 #define IS_RTC_DATE(DATE)              (((DATE) >= 1U) && ((DATE) <= 31U))
+
 #define IS_RTC_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY)    || \
                                  ((WEEKDAY) == RTC_WEEKDAY_TUESDAY)   || \
                                  ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
@@ -812,7 +843,9 @@
                                  ((WEEKDAY) == RTC_WEEKDAY_FRIDAY)    || \
                                  ((WEEKDAY) == RTC_WEEKDAY_SATURDAY)  || \
                                  ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
+
 #define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE) (((DATE) > 0U) && ((DATE) <= 31U))
+
 #define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY)    || \
                                                     ((WEEKDAY) == RTC_WEEKDAY_TUESDAY)   || \
                                                     ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
@@ -820,27 +853,31 @@
                                                     ((WEEKDAY) == RTC_WEEKDAY_FRIDAY)    || \
                                                     ((WEEKDAY) == RTC_WEEKDAY_SATURDAY)  || \
                                                     ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
+
 #define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL) (((SEL) == RTC_ALARMDATEWEEKDAYSEL_DATE) || \
                                             ((SEL) == RTC_ALARMDATEWEEKDAYSEL_WEEKDAY))
-#define IS_RTC_ALARM_MASK(MASK)  (((MASK) & 0x7F7F7F7FU) == (uint32_t)RESET)
-#define IS_RTC_ALARM(ALARM)      (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
-#define IS_RTC_ALARM_SUB_SECOND_VALUE(VALUE) ((VALUE) <= 0x00007FFFU)
 
-#define IS_RTC_ALARM_SUB_SECOND_MASK(MASK)   (((MASK) == RTC_ALARMSUBSECONDMASK_ALL) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_1) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_2) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_3) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_4) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_5) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_6) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_7) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_8) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_9) || \
+#define IS_RTC_ALARM_MASK(MASK)  (((MASK) & ((uint32_t)~RTC_ALARMMASK_ALL)) == 0U)
+
+#define IS_RTC_ALARM(ALARM)      (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
+
+#define IS_RTC_ALARM_SUB_SECOND_VALUE(VALUE) ((VALUE) <= RTC_ALRMASSR_SS)
+
+#define IS_RTC_ALARM_SUB_SECOND_MASK(MASK)   (((MASK) == RTC_ALARMSUBSECONDMASK_ALL)     || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_1)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_2)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_3)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_4)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_5)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_6)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_7)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_8)  || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_9)  || \
                                               ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_10) || \
                                               ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_11) || \
                                               ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_12) || \
                                               ((MASK) == RTC_ALARMSUBSECONDMASK_SS14_13) || \
-                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14) || \
+                                              ((MASK) == RTC_ALARMSUBSECONDMASK_SS14)    || \
                                               ((MASK) == RTC_ALARMSUBSECONDMASK_NONE))
 /**
   * @}
@@ -851,12 +888,14 @@
   */
 
 /* Private functions ---------------------------------------------------------*/
+
 /** @defgroup RTC_Private_Functions RTC Private Functions
   * @{
   */
-HAL_StatusTypeDef  RTC_EnterInitMode(RTC_HandleTypeDef* hrtc);
-uint8_t            RTC_ByteToBcd2(uint8_t Value);
-uint8_t            RTC_Bcd2ToByte(uint8_t Value);
+HAL_StatusTypeDef  RTC_EnterInitMode(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef  RTC_ExitInitMode(RTC_HandleTypeDef *hrtc);
+uint8_t            RTC_ByteToBcd2(uint8_t number);
+uint8_t            RTC_Bcd2ToByte(uint8_t number);
 /**
   * @}
   */
@@ -873,6 +912,4 @@
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_RTC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_RTC_H */
diff --git a/Inc/stm32f4xx_hal_rtc_ex.h b/Inc/stm32f4xx_hal_rtc_ex.h
index 76859ee..ff5f14d 100644
--- a/Inc/stm32f4xx_hal_rtc_ex.h
+++ b/Inc/stm32f4xx_hal_rtc_ex.h
@@ -2,30 +2,30 @@
   ******************************************************************************
   * @file    stm32f4xx_hal_rtc_ex.h
   * @author  MCD Application Team
-  * @brief   Header file of RTC HAL Extension module.
+  * @brief   Header file of RTC HAL Extended module.
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_RTC_EX_H
-#define __STM32F4xx_HAL_RTC_EX_H
+#ifndef STM32F4xx_HAL_RTC_EX_H
+#define STM32F4xx_HAL_RTC_EX_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
 /* Includes ------------------------------------------------------------------*/
+
 #include "stm32f4xx_hal_def.h"
 
 /** @addtogroup STM32F4xx_HAL_Driver
@@ -34,26 +34,27 @@
 
 /** @addtogroup RTCEx
   * @{
-  */ 
+  */
 
-/* Exported types ------------------------------------------------------------*/ 
+/* Exported types ------------------------------------------------------------*/
+
 /** @defgroup RTCEx_Exported_Types RTCEx Exported Types
   * @{
   */
 
-/** 
-  * @brief  RTC Tamper structure definition  
+/**
+  * @brief  RTC Tamper structure definition
   */
-typedef struct 
+typedef struct
 {
   uint32_t Tamper;                      /*!< Specifies the Tamper Pin.
-                                             This parameter can be a value of @ref  RTCEx_Tamper_Pins_Definitions */
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Definitions */
 
   uint32_t PinSelection;                /*!< Specifies the Tamper Pin.
-                                             This parameter can be a value of @ref  RTCEx_Tamper_Pins_Selection */
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Selection */
 
   uint32_t Trigger;                     /*!< Specifies the Tamper Trigger.
-                                             This parameter can be a value of @ref  RTCEx_Tamper_Trigger_Definitions */
+                                             This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */
 
   uint32_t Filter;                      /*!< Specifies the RTC Filter Tamper.
                                              This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */
@@ -62,24 +63,25 @@
                                              This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
 
   uint32_t PrechargeDuration;           /*!< Specifies the Precharge Duration .
-                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */ 
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
 
   uint32_t TamperPullUp;                /*!< Specifies the Tamper PullUp .
-                                             This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */           
+                                             This parameter can be a value of @ref RTCEx_Tamper_Pull_Up_Definitions */
 
   uint32_t TimeStampOnTamperDetection;  /*!< Specifies the TimeStampOnTamperDetection.
                                              This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
-}RTC_TamperTypeDef;
+} RTC_TamperTypeDef;
 /**
   * @}
   */
 
 /* Exported constants --------------------------------------------------------*/
+
 /** @defgroup RTCEx_Exported_Constants RTCEx Exported Constants
   * @{
-  */ 
+  */
 
-/** @defgroup RTCEx_Backup_Registers_Definitions RTC Backup Registers Definitions
+/** @defgroup RTCEx_Backup_Registers_Definitions RTCEx Backup Registers Definitions
   * @{
   */
 #define RTC_BKP_DR0                       0x00000000U
@@ -104,213 +106,226 @@
 #define RTC_BKP_DR19                      0x00000013U
 /**
   * @}
-  */ 
+  */
 
-/** @defgroup RTCEx_Time_Stamp_Edges_definitions RTC TimeStamp Edges Definitions
+/** @defgroup RTCEx_Timestamp_Edges_Definitions RTCEx Timestamp Edges Definitions
   * @{
-  */ 
+  */
 #define RTC_TIMESTAMPEDGE_RISING          0x00000000U
-#define RTC_TIMESTAMPEDGE_FALLING         0x00000008U
+#define RTC_TIMESTAMPEDGE_FALLING         RTC_CR_TSEDGE
 /**
   * @}
   */
-  
-/** @defgroup RTCEx_Tamper_Pins_Definitions RTC Tamper Pins Definitions
+
+/** @defgroup RTCEx_Timestamp_Pin_Selection RTC Timestamp Pin Selection
+  * @{
+  */
+#define RTC_TIMESTAMPPIN_DEFAULT            0x00000000U
+#if defined(RTC_AF2_SUPPORT)
+#define RTC_TIMESTAMPPIN_POS1               RTC_TAFCR_TSINSEL
+#endif /* RTC_AF2_SUPPORT */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_Pin_Definitions RTCEx Tamper Pins Definitions
   * @{
   */
 #define RTC_TAMPER_1                    RTC_TAFCR_TAMP1E
-
-#if !defined(STM32F412Zx) && !defined(STM32F412Vx) && !defined(STM32F412Rx) && !defined(STM32F412Cx) && !defined(STM32F413xx) && !defined(STM32F423xx)
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_2                    RTC_TAFCR_TAMP2E
-#endif
+#endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Tamper_Pins_Selection RTC tamper Pins Selection
+/** @defgroup RTCEx_Tamper_Pin_Selection RTC tamper Pins Selection
   * @{
   */
-
 #define RTC_TAMPERPIN_DEFAULT               0x00000000U
-
-#if !defined(STM32F412Zx) && !defined(STM32F412Vx) && !defined(STM32F412Rx) && !defined(STM32F412Cx) && !defined(STM32F413xx) && !defined(STM32F423xx)
-#define RTC_TAMPERPIN_POS1                  0x00010000U
-#endif
+#if defined(RTC_AF2_SUPPORT)
+#define RTC_TAMPERPIN_POS1                  RTC_TAFCR_TAMP1INSEL
+#endif /* RTC_AF2_SUPPORT */
 /**
   * @}
-  */ 
+  */
 
-/** @defgroup RTCEx_TimeStamp_Pin_Selection RTC TimeStamp Pins Selection
+/** @defgroup RTCEx_Tamper_Interrupt_Definitions RTCEx Tamper Interrupt Definitions
   * @{
-  */ 
-#define RTC_TIMESTAMPPIN_DEFAULT            0x00000000U
-
-#if !defined(STM32F412Zx) && !defined(STM32F412Vx) && !defined(STM32F412Rx) && !defined(STM32F412Cx) && !defined(STM32F413xx) && !defined(STM32F423xx)
-#define RTC_TIMESTAMPPIN_POS1               0x00020000U
-#endif
+  */
+#define RTC_IT_TAMP                       RTC_TAFCR_TAMPIE   /*!< Enable global Tamper Interrupt           */
 /**
   * @}
-  */ 
+  */
 
-/** @defgroup RTCEx_Tamper_Trigger_Definitions RTC Tamper Triggers Definitions
+/** @defgroup RTCEx_Tamper_Trigger_Definitions RTCEx Tamper Triggers Definitions
   * @{
-  */ 
+  */
 #define RTC_TAMPERTRIGGER_RISINGEDGE       0x00000000U
-#define RTC_TAMPERTRIGGER_FALLINGEDGE      0x00000002U
+#define RTC_TAMPERTRIGGER_FALLINGEDGE      RTC_TAFCR_TAMP1TRG
 #define RTC_TAMPERTRIGGER_LOWLEVEL         RTC_TAMPERTRIGGER_RISINGEDGE
 #define RTC_TAMPERTRIGGER_HIGHLEVEL        RTC_TAMPERTRIGGER_FALLINGEDGE
 /**
   * @}
-  */  
+  */
 
-/** @defgroup RTCEx_Tamper_Filter_Definitions RTC Tamper Filter Definitions
+/** @defgroup RTCEx_Tamper_Filter_Definitions RTCEx Tamper Filter Definitions
   * @{
-  */ 
-#define RTC_TAMPERFILTER_DISABLE   0x00000000U  /*!< Tamper filter is disabled */
+  */
+#define RTC_TAMPERFILTER_DISABLE   0x00000000U             /*!< Tamper filter is disabled */
 
-#define RTC_TAMPERFILTER_2SAMPLE   0x00000800U  /*!< Tamper is activated after 2 
-                                                                consecutive samples at the active level */
-#define RTC_TAMPERFILTER_4SAMPLE   0x00001000U  /*!< Tamper is activated after 4 
-                                                                consecutive samples at the active level */
-#define RTC_TAMPERFILTER_8SAMPLE   0x00001800U  /*!< Tamper is activated after 8 
-                                                                consecutive samples at the active level. */
+#define RTC_TAMPERFILTER_2SAMPLE   RTC_TAFCR_TAMPFLT_0    /*!< Tamper is activated after 2
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_4SAMPLE   RTC_TAFCR_TAMPFLT_1    /*!< Tamper is activated after 4
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_8SAMPLE   RTC_TAFCR_TAMPFLT      /*!< Tamper is activated after 8
+                                                                 consecutive samples at the active level */
+#define RTC_TAMPERFILTER_MASK      RTC_TAFCR_TAMPFLT      /*!< Masking all bits except those of
+                                                                 field TAMPFLT                           */
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTC Tamper Sampling Frequencies Definitions
+/** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTCEx Tamper Sampling Frequencies Definitions
   * @{
-  */ 
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768  0x00000000U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 32768 */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384  0x00000100U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 16384 */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192   0x00000200U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 8192  */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096   0x00000300U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 4096  */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048   0x00000400U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 2048  */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024   0x00000500U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 1024  */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512    0x00000600U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 512   */
-#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256    0x00000700U  /*!< Each of the tamper inputs are sampled
-                                                                             with a frequency =  RTCCLK / 256   */
+  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768  0x00000000U                                     /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 32768 */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384  RTC_TAFCR_TAMPFREQ_0                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 16384 */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192   RTC_TAFCR_TAMPFREQ_1                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 8192  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096   (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_1) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 4096  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048   RTC_TAFCR_TAMPFREQ_2                           /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 2048  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024   (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 1024  */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512    (RTC_TAFCR_TAMPFREQ_1 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 512   */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256    RTC_TAFCR_TAMPFREQ                             /*!< Each of the tamper inputs are sampled
+                                                                                                      with a frequency =  RTCCLK / 256   */
+#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK      RTC_TAFCR_TAMPFREQ                             /*!< Masking all bits except those of
+                                                                                                      field TAMPFREQ                     */
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTC Tamper Pin Precharge Duration Definitions
+/** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTCEx Tamper Pin Precharge Duration Definitions
   * @{
-  */ 
-#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK 0x00000000U  /*!< Tamper pins are pre-charged before 
-                                                                         sampling during 1 RTCCLK cycle */
-#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK 0x00002000U  /*!< Tamper pins are pre-charged before 
-                                                                         sampling during 2 RTCCLK cycles */
-#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK 0x00004000U  /*!< Tamper pins are pre-charged before 
-                                                                         sampling during 4 RTCCLK cycles */
-#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK 0x00006000U  /*!< Tamper pins are pre-charged before 
-                                                                         sampling during 8 RTCCLK cycles */
-/**
-  * @}
   */
-  
-/** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTC Tamper TimeStamp On Tamper Detection Definitions
-  * @{
-  */ 
-#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE  ((uint32_t)RTC_TAFCR_TAMPTS)  /*!< TimeStamp on Tamper Detection event saved        */
-#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000U        /*!< TimeStamp on Tamper Detection event is not saved */
-/**
-  * @}
-  */
-  
-/** @defgroup  RTCEx_Tamper_Pull_UP_Definitions RTC Tamper Pull Up Definitions
-  * @{
-  */ 
-#define RTC_TAMPER_PULLUP_ENABLE  0x00000000U            /*!< TimeStamp on Tamper Detection event saved        */
-#define RTC_TAMPER_PULLUP_DISABLE ((uint32_t)RTC_TAFCR_TAMPPUDIS)   /*!< TimeStamp on Tamper Detection event is not saved */
+#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK     0x00000000U             /*!< Tamper pins are pre-charged before
+                                                                              sampling during 1 RTCCLK cycle  */
+#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK     RTC_TAFCR_TAMPPRCH_0   /*!< Tamper pins are pre-charged before
+                                                                              sampling during 2 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK     RTC_TAFCR_TAMPPRCH_1   /*!< Tamper pins are pre-charged before
+                                                                              sampling during 4 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK     RTC_TAFCR_TAMPPRCH     /*!< Tamper pins are pre-charged before
+                                                                              sampling during 8 RTCCLK cycles */
+#define RTC_TAMPERPRECHARGEDURATION_MASK        RTC_TAFCR_TAMPPRCH     /*!< Masking all bits except those of
+                                                                              field TAMPPRCH                  */
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Wakeup_Timer_Definitions RTC Wake-up Timer Definitions
+/** @defgroup  RTCEx_Tamper_Pull_Up_Definitions RTCEx Tamper Pull Up Definitions
   * @{
-  */ 
+  */
+#define RTC_TAMPER_PULLUP_ENABLE  0x00000000U           /*!< Tamper pins are pre-charged before sampling     */
+#define RTC_TAMPER_PULLUP_DISABLE RTC_TAFCR_TAMPPUDIS   /*!< Tamper pins are not pre-charged before sampling */
+#define RTC_TAMPER_PULLUP_MASK    RTC_TAFCR_TAMPPUDIS   /*!< Masking all bits except bit TAMPPUDIS           */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTCEx Tamper TimeStamp On Tamper Detection Definitions
+  * @{
+  */
+#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE  RTC_TAFCR_TAMPTS  /*!< TimeStamp on Tamper Detection event saved        */
+#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000U       /*!< TimeStamp on Tamper Detection event is not saved */
+#define RTC_TIMESTAMPONTAMPERDETECTION_MASK    RTC_TAFCR_TAMPTS  /*!< Masking all bits except bit TAMPTS               */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Wakeup_Timer_Definitions RTCEx Wakeup Timer Definitions
+  * @{
+  */
 #define RTC_WAKEUPCLOCK_RTCCLK_DIV16        0x00000000U
-#define RTC_WAKEUPCLOCK_RTCCLK_DIV8         0x00000001U
-#define RTC_WAKEUPCLOCK_RTCCLK_DIV4         0x00000002U
-#define RTC_WAKEUPCLOCK_RTCCLK_DIV2         0x00000003U
-#define RTC_WAKEUPCLOCK_CK_SPRE_16BITS      0x00000004U
-#define RTC_WAKEUPCLOCK_CK_SPRE_17BITS      0x00000006U
-/**
-  * @}
-  */ 
-
-/** @defgroup RTCEx_Digital_Calibration_Definitions RTC Digital Calib Definitions
-  * @{
-  */ 
-#define RTC_CALIBSIGN_POSITIVE            0x00000000U 
-#define RTC_CALIBSIGN_NEGATIVE            0x00000080U
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV8         RTC_CR_WUCKSEL_0
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV4         RTC_CR_WUCKSEL_1
+#define RTC_WAKEUPCLOCK_RTCCLK_DIV2         (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)
+#define RTC_WAKEUPCLOCK_CK_SPRE_16BITS      RTC_CR_WUCKSEL_2
+#define RTC_WAKEUPCLOCK_CK_SPRE_17BITS      (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Smooth_calib_period_Definitions RTC Smooth Calib Period Definitions
+/** @defgroup RTCEx_Coarse_Calibration_Definitions RTCEx Coarse Calib Definitions
   * @{
-  */ 
-#define RTC_SMOOTHCALIB_PERIOD_32SEC   0x00000000U  /*!< If RTCCLK = 32768 Hz, Smooth calibration
-                                                                    period is 32s,  else 2exp20 RTCCLK seconds */
-#define RTC_SMOOTHCALIB_PERIOD_16SEC   0x00002000U  /*!< If RTCCLK = 32768 Hz, Smooth calibration 
-                                                                    period is 16s, else 2exp19 RTCCLK seconds */
-#define RTC_SMOOTHCALIB_PERIOD_8SEC    0x00004000U  /*!< If RTCCLK = 32768 Hz, Smooth calibration 
-                                                                    period is 8s, else 2exp18 RTCCLK seconds */
-/**
-  * @}
-  */ 
-
-/** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTC Smooth Calib Plus Pulses Definitions
-  * @{
-  */ 
-#define RTC_SMOOTHCALIB_PLUSPULSES_SET    0x00008000U  /*!< The number of RTCCLK pulses added  
-                                                                       during a X -second window = Y - CALM[8:0] 
-                                                                       with Y = 512, 256, 128 when X = 32, 16, 8 */
-#define RTC_SMOOTHCALIB_PLUSPULSES_RESET  0x00000000U  /*!< The number of RTCCLK pulses subbstited
-                                                                       during a 32-second window = CALM[8:0] */
+  */
+#define RTC_CALIBSIGN_POSITIVE            0x00000000U
+#define RTC_CALIBSIGN_NEGATIVE            RTC_CALIBR_DCS
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Add_1_Second_Parameter_Definitions RTC Add 1 Second Parameter Definitions
+/** @defgroup RTCEx_Smooth_calib_period_Definitions RTCEx Smooth Calib Period Definitions
   * @{
-  */ 
+  */
+#define RTC_SMOOTHCALIB_PERIOD_32SEC   0x00000000U      /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 32s, otherwise 2^20 RTCCLK pulses */
+#define RTC_SMOOTHCALIB_PERIOD_16SEC   RTC_CALR_CALW16  /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 16s, otherwise 2^19 RTCCLK pulses */
+#define RTC_SMOOTHCALIB_PERIOD_8SEC    RTC_CALR_CALW8   /*!< If RTCCLK = 32768 Hz, smooth calibration
+                                                              period is 8s, otherwise 2^18 RTCCLK pulses  */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTCEx Smooth Calib Plus Pulses Definitions
+  * @{
+  */
+#define RTC_SMOOTHCALIB_PLUSPULSES_SET    RTC_CALR_CALP           /*!< The number of RTCCLK pulses added
+                                                                        during a X -second window = Y - CALM[8:0]
+                                                                        with Y = 512, 256, 128 when X = 32, 16, 8 */
+#define RTC_SMOOTHCALIB_PLUSPULSES_RESET  0x00000000U             /*!< The number of RTCCLK pulses subbstited
+                                                                        during a 32-second window = CALM[8:0] */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Add_1_Second_Parameter_Definitions RTCEx Add 1 Second Parameter Definitions
+  * @{
+  */
 #define RTC_SHIFTADD1S_RESET      0x00000000U
-#define RTC_SHIFTADD1S_SET        0x80000000U
+#define RTC_SHIFTADD1S_SET        RTC_SHIFTR_ADD1S
 /**
   * @}
-  */ 
+  */
 
-
- /** @defgroup RTCEx_Calib_Output_selection_Definitions RTC Calib Output Selection Definitions
+/** @defgroup RTCEx_Calib_Output_selection_Definitions RTCEx Calib Output Selection Definitions
   * @{
-  */ 
-#define RTC_CALIBOUTPUT_512HZ            0x00000000U 
-#define RTC_CALIBOUTPUT_1HZ              0x00080000U
+  */
+#define RTC_CALIBOUTPUT_512HZ            0x00000000U
+#define RTC_CALIBOUTPUT_1HZ              RTC_CR_COSEL
 /**
   * @}
-  */ 
+  */
 
 /**
   * @}
-  */ 
-  
-/* Exported macro ------------------------------------------------------------*/
+  */
+
+/* Exported macros -----------------------------------------------------------*/
+
 /** @defgroup RTCEx_Exported_Macros RTCEx Exported Macros
   * @{
   */
 
-/* ---------------------------------WAKEUPTIMER---------------------------------*/
-/** @defgroup RTCEx_WakeUp_Timer RTC WakeUp Timer
+/* ---------------------------------WAKEUPTIMER-------------------------------*/
+
+/** @defgroup RTCEx_WakeUp_Timer RTCEx WakeUp Timer
   * @{
   */
 
@@ -322,152 +337,154 @@
 #define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__)                      ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
 
 /**
-  * @brief  Disable the RTC Wake-up Timer peripheral.
+  * @brief  Disable the RTC Wakeup Timer peripheral.
   * @param  __HANDLE__ specifies the RTC handle.
   * @retval None
   */
 #define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__)                     ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
 
 /**
-  * @brief  Enable the RTC WakeUpTimer interrupt.
+  * @brief  Enable the RTC Wakeup Timer interrupt.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled. 
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt sources to be enabled or disabled.
   *         This parameter can be:
-  *            @arg RTC_IT_WUT: WakeUpTimer A interrupt
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
   * @retval None
   */
 #define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__)    ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
 
 /**
-  * @brief  Disable the RTC WakeUpTimer interrupt.
+  * @brief  Disable the RTC Wakeup Timer interrupt.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled. 
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt sources to be enabled or disabled.
   *         This parameter can be:
-  *            @arg RTC_IT_WUT: WakeUpTimer A interrupt
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
   * @retval None
   */
 #define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
 
 /**
-  * @brief  Check whether the specified RTC WakeUpTimer interrupt has occurred or not.
+  * @brief  Check whether the specified RTC Wakeup Timer interrupt has occurred or not.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt to check.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup Timer interrupt to check.
   *         This parameter can be:
-  *            @arg RTC_IT_WUT:  WakeUpTimer A interrupt
+  *            @arg RTC_IT_WUT: Wakeup Timer interrupt
   * @retval None
   */
-#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__)            (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
+#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__)          (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
 
 /**
-  * @brief  Check whether the specified RTC Wake Up timer interrupt has been enabled or not.
+  * @brief  Check whether the specified RTC Wakeup timer interrupt has been enabled or not.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC Wake Up timer interrupt sources to check.
+  * @param  __INTERRUPT__ specifies the RTC Wakeup timer interrupt sources to check.
   *         This parameter can be:
-  *            @arg RTC_IT_WUT:  WakeUpTimer interrupt
+  *            @arg RTC_IT_WUT: WakeUpTimer interrupt
   * @retval None
   */
-#define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
+#define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
 
 /**
-  * @brief  Get the selected RTC WakeUpTimer's flag status.
+  * @brief  Get the selected RTC Wakeup Timer's flag status.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC WakeUpTimer Flag to check.
+  * @param  __FLAG__ specifies the RTC Wakeup Timer flag to check.
   *          This parameter can be:
-  *             @arg RTC_FLAG_WUTF   
-  *             @arg RTC_FLAG_WUTWF     
+  *             @arg RTC_FLAG_WUTF: Wakeup Timer interrupt flag
+  *             @arg RTC_FLAG_WUTWF: Wakeup Timer 'write allowed' flag
   * @retval None
   */
-#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__)          (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
+#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__)          (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
 
 /**
-  * @brief  Clear the RTC Wake Up timer's pending flags.
+  * @brief  Clear the RTC Wakeup timer's pending flags.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC Tamper Flag sources to be enabled or disabled.
+  * @param  __FLAG__ specifies the RTC Wakeup Timer Flag to clear.
   *         This parameter can be:
-  *            @arg RTC_FLAG_WUTF   
+  *             @arg RTC_FLAG_WUTF: Wakeup Timer interrupt Flag
   * @retval None
   */
-#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__)            ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)) 
+#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__)            ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
 
 /**
-  * @brief  Enable interrupt on the RTC Wake-up Timer associated Exti line.
+  * @brief  Enable interrupt on the RTC Wakeup Timer associated EXTI line.
   * @retval None
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT()       (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Disable interrupt on the RTC Wake-up Timer associated Exti line.
+  * @brief  Disable interrupt on the RTC Wakeup Timer associated EXTI line.
   * @retval None
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT()      (EXTI->IMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT()      (EXTI->IMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Enable event on the RTC Wake-up Timer associated Exti line.
+  * @brief  Enable event on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT()    (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Disable event on the RTC Wake-up Timer associated Exti line.
+  * @brief  Disable event on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Enable falling edge trigger on the RTC Wake-up Timer associated Exti line. 
+  * @brief  Enable falling edge trigger on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Disable falling edge trigger on the RTC Wake-up Timer associated Exti line.
+  * @brief  Disable falling edge trigger on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Enable rising edge trigger on the RTC Wake-up Timer associated Exti line.
+  * @brief  Enable rising edge trigger on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Disable rising edge trigger on the RTC Wake-up Timer associated Exti line.
+  * @brief  Disable rising edge trigger on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief  Enable rising & falling edge trigger on the RTC Wake-up Timer associated Exti line.
+  * @brief  Enable rising & falling edge trigger on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do { __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();\
-                                                                     __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE();\
-                                                                   } while(0U)  
+#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                                   \
+                                                                     __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();  \
+                                                                     __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); \
+                                                                   } while(0U)
 
 /**
-  * @brief  Disable rising & falling edge trigger on the RTC Wake-up Timer associated Exti line.
+  * @brief  Disable rising & falling edge trigger on the RTC Wakeup Timer associated EXTI line.
   * This parameter can be:
   * @retval None.
   */
-#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do { __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();\
-                                                                      __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE();\
-                                                                    } while(0U)  
+#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                                    \
+                                                                      __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();  \
+                                                                      __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); \
+                                                                    } while(0U)
 
 /**
-  * @brief Check whether the RTC Wake-up Timer associated Exti line interrupt flag is set or not.
+  * @brief Check whether the RTC Wakeup Timer associated EXTI line interrupt flag is set or not.
   * @retval Line Status.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG()              (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief Clear the RTC Wake-up Timer associated Exti line flag.
+  * @brief Clear the RTC Wakeup Timer associated EXTI line flag.
   * @retval None.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG()            (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
 
 /**
-  * @brief Generate a Software interrupt on the RTC Wake-up Timer associated Exti line.
+  * @brief Generate a Software interrupt on the RTC Wakeup Timer associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT()         (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
@@ -477,28 +494,29 @@
   */
 
 /* ---------------------------------TIMESTAMP---------------------------------*/
-/** @defgroup RTCEx_Timestamp RTC Timestamp
+
+/** @defgroup RTCEx_Timestamp RTCEx Timestamp
   * @{
   */
 
 /**
-  * @brief  Enable the RTC TimeStamp peripheral.
+  * @brief  Enable the RTC Timestamp peripheral.
   * @param  __HANDLE__ specifies the RTC handle.
   * @retval None
   */
 #define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__)                        ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
 
 /**
-  * @brief  Disable the RTC TimeStamp peripheral.
+  * @brief  Disable the RTC Timestamp peripheral.
   * @param  __HANDLE__ specifies the RTC handle.
   * @retval None
   */
 #define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__)                       ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
 
 /**
-  * @brief  Enable the RTC TimeStamp interrupt.
+  * @brief  Enable the RTC Timestamp interrupt.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt sources to be enabled or disabled. 
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt sources to be enabled or disabled.
   *         This parameter can be:
   *            @arg RTC_IT_TS: TimeStamp interrupt
   * @retval None
@@ -506,9 +524,9 @@
 #define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__)      ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
 
 /**
-  * @brief  Disable the RTC TimeStamp interrupt.
+  * @brief  Disable the RTC Timestamp interrupt.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt sources to be enabled or disabled. 
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt sources to be enabled or disabled.
   *         This parameter can be:
   *            @arg RTC_IT_TS: TimeStamp interrupt
   * @retval None
@@ -516,42 +534,43 @@
 #define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__)     ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
 
 /**
-  * @brief  Check whether the specified RTC TimeStamp interrupt has occurred or not.
+  * @brief  Check whether the specified RTC Timestamp interrupt has occurred or not.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt to check.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt to check.
   *         This parameter can be:
   *            @arg RTC_IT_TS: TimeStamp interrupt
   * @retval None
   */
-#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__)         (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
+#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__)         (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
 
 /**
-  * @brief  Check whether the specified RTC Time Stamp interrupt has been enabled or not.
+  * @brief  Check whether the specified RTC Timestamp interrupt has been enabled or not.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __INTERRUPT__ specifies the RTC Time Stamp interrupt source to check.
+  * @param  __INTERRUPT__ specifies the RTC Timestamp interrupt source to check.
   *         This parameter can be:
   *            @arg RTC_IT_TS: TimeStamp interrupt
   * @retval None
   */
-#define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
+#define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
 
 /**
-  * @brief  Get the selected RTC TimeStamp's flag status.
+  * @brief  Get the selected RTC Timestamp's flag status.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC TimeStamp flag to check.
+  * @param  __FLAG__ specifies the RTC Timestamp flag to check.
   *         This parameter can be:
-  *            @arg RTC_FLAG_TSF   
-  *            @arg RTC_FLAG_TSOVF     
+  *            @arg RTC_FLAG_TSF: Timestamp interrupt flag
+  *            @arg RTC_FLAG_TSOVF: Timestamp overflow flag
   * @retval None
   */
-#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__)            (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
+#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__)            (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
 
 /**
-  * @brief  Clear the RTC Time Stamp's pending flags.
+  * @brief  Clear the RTC Timestamp's pending flags.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC Alarm Flag sources to be enabled or disabled.
-  *          This parameter can be:
-  *             @arg RTC_FLAG_TSF  
+  * @param  __FLAG__ specifies the RTC Timestamp flag to clear.
+  *         This parameter can be:
+  *            @arg RTC_FLAG_TSF: Timestamp interrupt flag
+  *            @arg RTC_FLAG_TSOVF: Timestamp overflow flag
   * @retval None
   */
 #define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__)          ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
@@ -561,7 +580,8 @@
   */
 
 /* ---------------------------------TAMPER------------------------------------*/
-/** @defgroup RTCEx_Tamper RTC Tamper
+
+/** @defgroup RTCEx_Tamper RTCEx Tamper
   * @{
   */
 
@@ -578,8 +598,8 @@
   * @retval None
   */
 #define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP1E))
-                                                                      
-#if !defined(STM32F412Zx) && !defined(STM32F412Vx) && !defined(STM32F412Rx) && !defined(STM32F412Cx) && !defined(STM32F413xx) && !defined(STM32F423xx)
+
+#if defined(RTC_TAMPER2_SUPPORT)
 /**
   * @brief  Enable the RTC Tamper2 input detection.
   * @param  __HANDLE__ specifies the RTC handle.
@@ -593,47 +613,70 @@
   * @retval None
   */
 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__)                        ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP2E))
-#endif
-                                                                      
+#endif /* RTC_TAMPER2_SUPPORT */
+
+/**
+  * @brief  Enable the RTC Tamper interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be enabled.
+  *          This parameter can be any combination of the following values:
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__)        ((__HANDLE__)->Instance->TAFCR |= (__INTERRUPT__))
+
+/**
+  * @brief  Disable the RTC Tamper interrupt.
+  * @param  __HANDLE__ specifies the RTC handle.
+  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be disabled.
+  *         This parameter can be any combination of the following values:
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
+  * @retval None
+  */
+#define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__)       ((__HANDLE__)->Instance->TAFCR &= ~(__INTERRUPT__))
+
 /**
   * @brief  Check whether the specified RTC Tamper interrupt has occurred or not.
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __INTERRUPT__ specifies the RTC Tamper interrupt to check.
   *         This parameter can be:
-  *            @arg  RTC_IT_TAMP1
-  *            @arg  RTC_IT_TAMP2
+  *            @arg RTC_IT_TAMP1: Tamper 1 interrupt
+  *            @arg RTC_IT_TAMP2: Tamper 2 interrupt
+  * @note   RTC_IT_TAMP2 is not applicable to all devices.
   * @retval None
   */
-#define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__)       (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
+#define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__)       (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
 
 /**
   * @brief  Check whether the specified RTC Tamper interrupt has been enabled or not.
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __INTERRUPT__ specifies the RTC Tamper interrupt source to check.
   *         This parameter can be:
-  *            @arg RTC_IT_TAMP: Tamper interrupt
+  *            @arg RTC_IT_TAMP: Tamper global interrupt
   * @retval None
   */
-#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->TAFCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
+#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)     (((((__HANDLE__)->Instance->TAFCR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
 
 /**
   * @brief  Get the selected RTC Tamper's flag status.
   * @param  __HANDLE__ specifies the RTC handle.
-  * @param  __FLAG__ specifies the RTC Tamper Flag sources to be enabled or disabled.
+  * @param  __FLAG__ specifies the RTC Tamper flag to be checked.
   *          This parameter can be:
-  *             @arg RTC_FLAG_TAMP1F 
-  *             @arg RTC_FLAG_TAMP2F  
+  *             @arg RTC_FLAG_TAMP1F: Tamper 1 interrupt flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper 2 interrupt flag
+  * @note   RTC_FLAG_TAMP2F is not applicable to all devices.
   * @retval None
   */
-#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__)               (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
+#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__)               (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
 
 /**
   * @brief  Clear the RTC Tamper's pending flags.
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __FLAG__ specifies the RTC Tamper Flag to clear.
   *          This parameter can be:
-  *             @arg RTC_FLAG_TAMP1F
-  *             @arg RTC_FLAG_TAMP2F 
+  *             @arg RTC_FLAG_TAMP1F: Tamper 1 interrupt flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper 2 interrupt flag
+  * @note   RTC_FLAG_TAMP2F is not applicable to all devices.
   * @retval None
   */
 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__)         ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
@@ -647,84 +690,86 @@
   */
 
 /**
-  * @brief  Enable interrupt on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Enable interrupt on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT()        (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Disable interrupt on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Disable interrupt on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT()       (EXTI->IMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT()       (EXTI->IMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Enable event on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Enable event on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT()    (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Disable event on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Disable event on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line. 
+  * @brief  Enable falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Disable falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE()  (EXTI->FTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Enable rising edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE()    (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Disable rising edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief  Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * @retval None.
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do { __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();\
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do {                                                        \
+                                                                          __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();  \
                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); \
-                                                                        } while(0U)  
+                                                                        } while(0U)
 
 /**
-  * @brief  Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
+  * @brief  Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated EXTI line.
   * This parameter can be:
   * @retval None.
   */
-#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do { __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE();\
-                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE();\
-                                                                         } while(0U)  
+#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do {                                                         \
+                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE();  \
+                                                                           __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); \
+                                                                         } while(0U)
 
 /**
-  * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not.
+  * @brief Check whether the RTC Tamper and Timestamp associated EXTI line interrupt flag is set or not.
   * @retval Line Status.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG()         (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief Clear the RTC Tamper and Timestamp associated Exti line flag.
+  * @brief Clear the RTC Tamper and Timestamp associated EXTI line flag.
   * @retval None.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG()       (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
 
 /**
-  * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line
+  * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated EXTI line
   * @retval None.
   */
 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT()    (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
@@ -732,8 +777,9 @@
   * @}
   */
 
-/* ------------------------------Calibration----------------------------------*/
-/** @defgroup RTCEx_Calibration RTC Calibration
+/* ------------------------------CALIBRATION----------------------------------*/
+
+/** @defgroup RTCEx_Calibration RTCEx Calibration
   * @{
   */
 
@@ -784,10 +830,10 @@
   * @param  __HANDLE__ specifies the RTC handle.
   * @param  __FLAG__ specifies the RTC shift operation Flag is pending or not.
   *          This parameter can be:
-  *             @arg RTC_FLAG_SHPF   
+  *             @arg RTC_FLAG_SHPF: Shift pending flag
   * @retval None
   */
-#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
+#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__)                (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
 /**
   * @}
   */
@@ -797,6 +843,7 @@
   */
 
 /* Exported functions --------------------------------------------------------*/
+
 /** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
   * @{
   */
@@ -804,23 +851,27 @@
 /** @addtogroup RTCEx_Exported_Functions_Group1
   * @{
   */
-/* RTC TimeStamp and Tamper functions *****************************************/
-HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
-HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
+/* RTC Timestamp and Tamper functions *****************************************/
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
 HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
 HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
 
-HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
-HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
+HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
+HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
-void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
 
-void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
-void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
-void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
+#if defined(RTC_TAMPER2_SUPPORT)
+void              HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
+#endif /* RTC_TAMPER2_SUPPORT */
+void              HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
 HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#if defined(RTC_TAMPER2_SUPPORT)
 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
   */
@@ -828,13 +879,13 @@
 /** @addtogroup RTCEx_Exported_Functions_Group2
   * @{
   */
-/* RTC Wake-up functions ******************************************************/
+/* RTC Wakeup functions ******************************************************/
 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
-uint32_t HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
-uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
-void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
-void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
+HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
+uint32_t          HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
+void              HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
 HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
 /**
   * @}
@@ -843,13 +894,13 @@
 /** @addtogroup RTCEx_Exported_Functions_Group3
   * @{
   */
-/* Extension Control functions ************************************************/
-void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
-uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
+/* Extended Control functions ************************************************/
+void              HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
+uint32_t          HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
 
 HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value);
 HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc);
-HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmouthCalibMinusPulsesValue);
+HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
 HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
 HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
 HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
@@ -864,8 +915,8 @@
 /** @addtogroup RTCEx_Exported_Functions_Group4
   * @{
   */
-/* Extension RTC features functions *******************************************/
-void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc); 
+/* Extended RTC features functions *******************************************/
+void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
 HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
 /**
   * @}
@@ -878,73 +929,83 @@
 /* Private types -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private constants ---------------------------------------------------------*/
+
 /** @defgroup RTCEx_Private_Constants RTCEx Private Constants
   * @{
   */
-#define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT  ((uint32_t)EXTI_IMR_MR21)  /*!< External interrupt line 21 Connected to the RTC Tamper and Time Stamp events */
-#define RTC_EXTI_LINE_WAKEUPTIMER_EVENT       ((uint32_t)EXTI_IMR_MR22)  /*!< External interrupt line 22 Connected to the RTC Wake-up event */
+#define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT  EXTI_IMR_MR21  /*!< External interrupt line 21 Connected to the RTC Tamper and Timestamp event */
+#define RTC_EXTI_LINE_WAKEUPTIMER_EVENT       EXTI_IMR_MR22  /*!< External interrupt line 22 Connected to the RTC Wakeup event */
+/**
+  * @}
+  */
+
+/** @defgroup RTCEx_Private_Constants RTCEx Private Constants
+  * @{
+  */
+/* Masks Definition */
+#if defined(RTC_TAMPER2_SUPPORT)
+#define RTC_TAMPER_ENABLE_BITS_MASK         ((uint32_t) (RTC_TAMPER_1 | \
+                                                         RTC_TAMPER_2))
+
+#define RTC_TAMPER_FLAGS_MASK               ((uint32_t) (RTC_FLAG_TAMP1F | \
+                                                         RTC_FLAG_TAMP2F))
+#else /* RTC_TAMPER2_SUPPORT */
+#define RTC_TAMPER_ENABLE_BITS_MASK                      RTC_TAMPER_1
+
+#define RTC_TAMPER_FLAGS_MASK                            RTC_FLAG_TAMP1F
+#endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
   */
 
 /* Private macros ------------------------------------------------------------*/
+
 /** @defgroup RTCEx_Private_Macros RTCEx Private Macros
   * @{
   */
 
 /** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
   * @{
-  */ 
-#define IS_RTC_BKP(BKP)                   (((BKP) == RTC_BKP_DR0)  || \
-                                           ((BKP) == RTC_BKP_DR1)  || \
-                                           ((BKP) == RTC_BKP_DR2)  || \
-                                           ((BKP) == RTC_BKP_DR3)  || \
-                                           ((BKP) == RTC_BKP_DR4)  || \
-                                           ((BKP) == RTC_BKP_DR5)  || \
-                                           ((BKP) == RTC_BKP_DR6)  || \
-                                           ((BKP) == RTC_BKP_DR7)  || \
-                                           ((BKP) == RTC_BKP_DR8)  || \
-                                           ((BKP) == RTC_BKP_DR9)  || \
-                                           ((BKP) == RTC_BKP_DR10) || \
-                                           ((BKP) == RTC_BKP_DR11) || \
-                                           ((BKP) == RTC_BKP_DR12) || \
-                                           ((BKP) == RTC_BKP_DR13) || \
-                                           ((BKP) == RTC_BKP_DR14) || \
-                                           ((BKP) == RTC_BKP_DR15) || \
-                                           ((BKP) == RTC_BKP_DR16) || \
-                                           ((BKP) == RTC_BKP_DR17) || \
-                                           ((BKP) == RTC_BKP_DR18) || \
-                                           ((BKP) == RTC_BKP_DR19))
+  */
+#define IS_RTC_BKP(BKP)     ((BKP) < (uint32_t) RTC_BKP_NUMBER)
+
 #define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
                                  ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
 
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
-#define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)!(RTC_TAFCR_TAMP1E ))) == 0x00U) && ((TAMPER) != (uint32_t)RESET))
-#else
-#define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)!(RTC_TAFCR_TAMP1E | RTC_TAFCR_TAMP2E))) == 0x00U) && ((TAMPER) != (uint32_t)RESET))
-#endif
+#define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)~RTC_TAMPER_ENABLE_BITS_MASK)) == 0x00U) && ((TAMPER) != 0U))
 
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
-#define IS_RTC_TAMPER_PIN(PIN) ((PIN) == RTC_TAMPERPIN_DEFAULT)
-#else
+#if defined(RTC_AF2_SUPPORT)
 #define IS_RTC_TAMPER_PIN(PIN) (((PIN) == RTC_TAMPERPIN_DEFAULT) || \
                                 ((PIN) == RTC_TAMPERPIN_POS1))
-#endif 
+#else /* RTC_AF2_SUPPORT */
+#define IS_RTC_TAMPER_PIN(PIN) ((PIN) == RTC_TAMPERPIN_DEFAULT)
+#endif /* RTC_AF2_SUPPORT */
 
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
-#define IS_RTC_TIMESTAMP_PIN(PIN) ((PIN) == RTC_TIMESTAMPPIN_DEFAULT)
-#else
+#if defined(RTC_AF2_SUPPORT)
 #define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT) || \
                                    ((PIN) == RTC_TIMESTAMPPIN_POS1))
-#endif
-#define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
+#else /* RTC_AF2_SUPPORT */
+#define IS_RTC_TIMESTAMP_PIN(PIN) ((PIN) == RTC_TIMESTAMPPIN_DEFAULT)
+#endif /* RTC_AF2_SUPPORT */
+
+#define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE)  || \
                                         ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
-                                        ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
-                                        ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL)) 
+                                        ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL)    || \
+                                        ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
+
 #define IS_RTC_TAMPER_FILTER(FILTER)  (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
                                        ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
                                        ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
                                        ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
+
+#define IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(FILTER, TRIGGER)                  \
+                        (  (  ((FILTER) != RTC_TAMPERFILTER_DISABLE)          \
+                           && (  ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL)    \
+                              || ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))) \
+                        || (  ((FILTER) == RTC_TAMPERFILTER_DISABLE)          \
+                           && (  ((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE)  \
+                              || ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE))))
+
 #define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
                                            ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
                                            ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
@@ -953,14 +1014,18 @@
                                            ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
                                            ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512)  || \
                                            ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
+
 #define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
                                                     ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
                                                     ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
                                                     ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
-#define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
-                                                              ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
+
 #define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
                                            ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
+
+#define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
+                                                              ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
+
 #define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16)   || \
                                     ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8)    || \
                                     ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4)    || \
@@ -968,7 +1033,8 @@
                                     ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
                                     ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
 
-#define IS_RTC_WAKEUP_COUNTER(COUNTER)  ((COUNTER) <= 0xFFFFU)
+#define IS_RTC_WAKEUP_COUNTER(COUNTER)  ((COUNTER) <= RTC_WUTR_WUT)
+
 #define IS_RTC_CALIB_SIGN(SIGN) (((SIGN) == RTC_CALIBSIGN_POSITIVE) || \
                                  ((SIGN) == RTC_CALIBSIGN_NEGATIVE))
 
@@ -976,14 +1042,18 @@
 
 #define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
                                             ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
-                                            ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC)) 
+                                            ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
+
 #define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
                                         ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
 
-#define  IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= 0x000001FFU)
+#define  IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM)
+
 #define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
-                                 ((SEL) == RTC_SHIFTADD1S_SET)) 
-#define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= 0x00007FFFU)
+                                 ((SEL) == RTC_SHIFTADD1S_SET))
+
+#define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS)
+
 #define IS_RTC_CALIB_OUTPUT(OUTPUT)  (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
                                       ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
 /**
@@ -996,16 +1066,14 @@
 
 /**
   * @}
-  */ 
+  */
 
 /**
   * @}
-  */ 
-  
+  */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_RTC_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_RTC_EX_H */
diff --git a/Inc/stm32f4xx_hal_sai.h b/Inc/stm32f4xx_hal_sai.h
index 0307f92..6c23f93 100644
--- a/Inc/stm32f4xx_hal_sai.h
+++ b/Inc/stm32f4xx_hal_sai.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -118,7 +117,7 @@
   uint32_t TriState;            /*!< Specifies the companding mode type.
                                      This parameter can be a value of @ref SAI_TRIState_Management             */
 
-  /* This part of the structure is automatically filled if your are using the high level intialisation
+  /* This part of the structure is automatically filled if your are using the high level initialisation
      function HAL_SAI_InitProtocol                                                                             */
 
   uint32_t Protocol;        /*!< Specifies the SAI Block protocol.
@@ -894,4 +893,3 @@
 
 #endif /* __STM32F4xx_HAL_SAI_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_sai_ex.h b/Inc/stm32f4xx_hal_sai_ex.h
index fbd4497..c6fdd56 100644
--- a/Inc/stm32f4xx_hal_sai_ex.h
+++ b/Inc/stm32f4xx_hal_sai_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -113,4 +112,3 @@
 
 #endif /* __STM32F4xx_HAL_SAI_EX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_sd.h b/Inc/stm32f4xx_hal_sd.h
index e82e7e0..73fc7de 100644
--- a/Inc/stm32f4xx_hal_sd.h
+++ b/Inc/stm32f4xx_hal_sd.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -757,5 +756,3 @@
 
 
 #endif /* STM32F4xx_HAL_SD_H */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_sdram.h b/Inc/stm32f4xx_hal_sdram.h
index 3dd7802..3d450a0 100644
--- a/Inc/stm32f4xx_hal_sdram.h
+++ b/Inc/stm32f4xx_hal_sdram.h
@@ -6,27 +6,25 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_SDRAM_H
-#define __STM32F4xx_HAL_SDRAM_H
+#ifndef STM32F4xx_HAL_SDRAM_H
+#define STM32F4xx_HAL_SDRAM_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#if defined(FMC_Bank5_6)
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_ll_fmc.h"
@@ -37,16 +35,17 @@
 
 /** @addtogroup SDRAM
   * @{
-  */ 
+  */
 
-/* Exported typedef ----------------------------------------------------------*/   
+/* Exported typedef ----------------------------------------------------------*/
+
 /** @defgroup SDRAM_Exported_Types SDRAM Exported Types
   * @{
   */
 
-/** 
-  * @brief  HAL SDRAM State structure definition  
-  */ 
+/**
+  * @brief  HAL SDRAM State structure definition
+  */
 typedef enum
 {
   HAL_SDRAM_STATE_RESET             = 0x00U,  /*!< SDRAM not yet initialized or disabled */
@@ -68,22 +67,22 @@
 #endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS  */
 {
   FMC_SDRAM_TypeDef             *Instance;  /*!< Register base address                 */
-  
+
   FMC_SDRAM_InitTypeDef         Init;       /*!< SDRAM device configuration parameters */
-  
+
   __IO HAL_SDRAM_StateTypeDef   State;      /*!< SDRAM access state                    */
-  
-  HAL_LockTypeDef               Lock;       /*!< SDRAM locking object                  */ 
+
+  HAL_LockTypeDef               Lock;       /*!< SDRAM locking object                  */
 
   DMA_HandleTypeDef             *hdma;      /*!< Pointer DMA handler                   */
 
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
-  void  (* MspInitCallback)        ( struct __SDRAM_HandleTypeDef * hsdram);    /*!< SDRAM Msp Init callback              */
-  void  (* MspDeInitCallback)      ( struct __SDRAM_HandleTypeDef * hsdram);    /*!< SDRAM Msp DeInit callback            */
-  void  (* RefreshErrorCallback)   ( struct __SDRAM_HandleTypeDef * hsdram);    /*!< SDRAM Refresh Error callback         */
-  void  (* DmaXferCpltCallback)    ( DMA_HandleTypeDef * hdma);                 /*!< SDRAM DMA Xfer Complete callback     */
-  void  (* DmaXferErrorCallback)   ( DMA_HandleTypeDef * hdma);                 /*!< SDRAM DMA Xfer Error callback        */
-#endif
+  void (* MspInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);               /*!< SDRAM Msp Init callback              */
+  void (* MspDeInitCallback)(struct __SDRAM_HandleTypeDef *hsdram);             /*!< SDRAM Msp DeInit callback            */
+  void (* RefreshErrorCallback)(struct __SDRAM_HandleTypeDef *hsdram);          /*!< SDRAM Refresh Error callback         */
+  void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);                        /*!< SDRAM DMA Xfer Complete callback     */
+  void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);                       /*!< SDRAM DMA Xfer Error callback        */
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 } SDRAM_HandleTypeDef;
 
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
@@ -97,20 +96,21 @@
   HAL_SDRAM_REFRESH_ERR_CB_ID    = 0x02U,  /*!< SDRAM Refresh Error Callback ID     */
   HAL_SDRAM_DMA_XFER_CPLT_CB_ID  = 0x03U,  /*!< SDRAM DMA Xfer Complete Callback ID */
   HAL_SDRAM_DMA_XFER_ERR_CB_ID   = 0x04U   /*!< SDRAM DMA Xfer Error Callback ID    */
-}HAL_SDRAM_CallbackIDTypeDef;
+} HAL_SDRAM_CallbackIDTypeDef;
 
 /**
   * @brief  HAL SDRAM Callback pointer definition
   */
 typedef void (*pSDRAM_CallbackTypeDef)(SDRAM_HandleTypeDef *hsdram);
 typedef void (*pSDRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 /**
   * @}
   */
 
 /* Exported constants --------------------------------------------------------*/
 /* Exported macro ------------------------------------------------------------*/
+
 /** @defgroup SDRAM_Exported_Macros SDRAM Exported Macros
   * @{
   */
@@ -127,17 +127,18 @@
                                                              } while(0)
 #else
 #define __HAL_SDRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SDRAM_STATE_RESET)
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 /**
   * @}
   */
 
 /* Exported functions --------------------------------------------------------*/
+
 /** @addtogroup SDRAM_Exported_Functions SDRAM Exported Functions
   * @{
   */
 
-/** @addtogroup SDRAM_Exported_Functions_Group1 
+/** @addtogroup SDRAM_Exported_Functions_Group1
   * @{
   */
 
@@ -151,50 +152,63 @@
 void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram);
 void HAL_SDRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
 void HAL_SDRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
+
 /**
   * @}
   */
 
-/** @addtogroup SDRAM_Exported_Functions_Group2 
+/** @addtogroup SDRAM_Exported_Functions_Group2
   * @{
   */
 /* I/O operation functions ****************************************************/
-HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
+                                    uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
+                                      uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                      uint32_t BufferSize);
 
-HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t * pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                      uint32_t BufferSize);
 
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
 /* SDRAM callback registering/unregistering */
-HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
+                                             pSDRAM_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId);
-HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_DmaCallbackTypeDef pCallback);
-#endif
+HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
+                                                pSDRAM_DmaCallbackTypeDef pCallback);
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
-  
-/** @addtogroup SDRAM_Exported_Functions_Group3 
+
+/** @addtogroup SDRAM_Exported_Functions_Group3
   * @{
   */
 /* SDRAM Control functions  *****************************************************/
 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
-HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout);
+HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
+                                        uint32_t Timeout);
 HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
 HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
 uint32_t          HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram);
+
 /**
   * @}
   */
 
-/** @addtogroup SDRAM_Exported_Functions_Group4 
+/** @addtogroup SDRAM_Exported_Functions_Group4
   * @{
   */
 /* SDRAM State functions ********************************************************/
@@ -211,16 +225,14 @@
   * @}
   */
 
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
-
 /**
   * @}
   */
 
+#endif /* FMC_Bank5_6 */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_SDRAM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_SDRAM_H */
diff --git a/Inc/stm32f4xx_hal_smartcard.h b/Inc/stm32f4xx_hal_smartcard.h
index 36f16c7..135f402 100644
--- a/Inc/stm32f4xx_hal_smartcard.h
+++ b/Inc/stm32f4xx_hal_smartcard.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -157,7 +156,7 @@
 
   SMARTCARD_InitTypeDef            Init;             /*!< SmartCard communication parameters */
 
-  uint8_t                          *pTxBuffPtr;      /*!< Pointer to SmartCard Tx transfer Buffer */
+  const uint8_t                    *pTxBuffPtr;      /*!< Pointer to SmartCard Tx transfer Buffer */
 
   uint16_t                         TxXferSize;       /*!< SmartCard Tx Transfer size */
 
@@ -643,11 +642,11 @@
   * @{
   */
 /* IO operation functions *******************************************************/
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
 /* Transfer Abort functions */
 HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsc);
@@ -754,4 +753,3 @@
 
 #endif /* __STM32F4xx_HAL_SMARTCARD_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_smbus.h b/Inc/stm32f4xx_hal_smbus.h
index 056a600..ea92afa 100644
--- a/Inc/stm32f4xx_hal_smbus.h
+++ b/Inc/stm32f4xx_hal_smbus.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -730,4 +729,3 @@
 
 #endif /* __STM32F4xx_HAL_SMBUS_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_spdifrx.h b/Inc/stm32f4xx_hal_spdifrx.h
index 73e30d2..7ea04aa 100644
--- a/Inc/stm32f4xx_hal_spdifrx.h
+++ b/Inc/stm32f4xx_hal_spdifrx.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -22,7 +21,7 @@
 #define STM32F4xx_HAL_SPDIFRX_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
 /* Includes ------------------------------------------------------------------*/
@@ -124,7 +123,7 @@
 typedef struct __SPDIFRX_HandleTypeDef
 #else
 typedef struct
-#endif
+#endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
 {
   SPDIFRX_TypeDef            *Instance;    /* SPDIFRX registers base address */
 
@@ -168,8 +167,8 @@
   void (*CxHalfCpltCallback)(struct __SPDIFRX_HandleTypeDef *hspdif);   /*!< SPDIFRX Control flow half completed callback */
   void (*CxCpltCallback)(struct __SPDIFRX_HandleTypeDef *hspdif);       /*!< SPDIFRX Control flow completed callback */
   void (*ErrorCallback)(struct __SPDIFRX_HandleTypeDef *hspdif);        /*!< SPDIFRX error callback */
-  void (* MspInitCallback)( struct __SPDIFRX_HandleTypeDef * hspdif);   /*!< SPDIFRX Msp Init callback  */
-  void (* MspDeInitCallback)( struct __SPDIFRX_HandleTypeDef * hspdif); /*!< SPDIFRX Msp DeInit callback  */
+  void (* MspInitCallback)(struct __SPDIFRX_HandleTypeDef *hspdif);     /*!< SPDIFRX Msp Init callback  */
+  void (* MspDeInitCallback)(struct __SPDIFRX_HandleTypeDef *hspdif);   /*!< SPDIFRX Msp DeInit callback  */
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
 
 } SPDIFRX_HandleTypeDef;
@@ -190,12 +189,12 @@
   HAL_SPDIFRX_ERROR_CB_ID     = 0x04U,    /*!< SPDIFRX error callback */
   HAL_SPDIFRX_MSPINIT_CB_ID   = 0x05U,    /*!< SPDIFRX Msp Init callback ID     */
   HAL_SPDIFRX_MSPDEINIT_CB_ID = 0x06U     /*!< SPDIFRX Msp DeInit callback ID   */
-}HAL_SPDIFRX_CallbackIDTypeDef;
+} HAL_SPDIFRX_CallbackIDTypeDef;
 
 /**
   * @brief  HAL SPDIFRX Callback pointer definition
   */
-typedef  void (*pSPDIFRX_CallbackTypeDef)(SPDIFRX_HandleTypeDef * hspdif); /*!< pointer to an SPDIFRX callback function */
+typedef  void (*pSPDIFRX_CallbackTypeDef)(SPDIFRX_HandleTypeDef *hspdif);  /*!< pointer to an SPDIFRX callback function */
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
 
 /* Exported constants --------------------------------------------------------*/
@@ -268,8 +267,8 @@
   */
 
 /** @defgroup SPDIFRX_V_Mask SPDIFRX Validity Mask
-* @{
-*/
+  * @{
+  */
 #define SPDIFRX_VALIDITYMASK_OFF    ((uint32_t)0x00000000U)
 #define SPDIFRX_VALIDITYMASK_ON     ((uint32_t)SPDIFRX_CR_VMSK)
 /**
@@ -369,10 +368,10 @@
   */
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
 #define __HAL_SPDIFRX_RESET_HANDLE_STATE(__HANDLE__) do{\
-                                                      (__HANDLE__)->State = HAL_SPDIFRX_STATE_RESET;\
-                                                      (__HANDLE__)->MspInitCallback = NULL;\
-                                                      (__HANDLE__)->MspDeInitCallback = NULL;\
-                                                     }while(0)
+                                                         (__HANDLE__)->State = HAL_SPDIFRX_STATE_RESET;\
+                                                         (__HANDLE__)->MspInitCallback = NULL;\
+                                                         (__HANDLE__)->MspDeInitCallback = NULL;\
+                                                       }while(0)
 #else
 #define __HAL_SPDIFRX_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPDIFRX_STATE_RESET)
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
@@ -411,7 +410,8 @@
   * @retval None
   */
 #define __HAL_SPDIFRX_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IMR |= (__INTERRUPT__))
-#define __HAL_SPDIFRX_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IMR &= (uint16_t)(~(__INTERRUPT__)))
+#define __HAL_SPDIFRX_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IMR\
+                                                             &= (uint16_t)(~(__INTERRUPT__)))
 
 /** @brief  Checks if the specified SPDIFRX interrupt source is enabled or disabled.
   * @param  __HANDLE__    specifies the SPDIFRX Handle.
@@ -426,7 +426,8 @@
   *            @arg SPDIFRX_IT_IFEIE
   * @retval The new state of __IT__ (TRUE or FALSE).
   */
-#define __HAL_SPDIFRX_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IMR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
+#define __HAL_SPDIFRX_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IMR\
+                                                                  & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
 
 /** @brief  Checks whether the specified SPDIFRX flag is set or not.
   * @param  __HANDLE__  specifies the SPDIFRX Handle.
@@ -443,7 +444,8 @@
   *            @arg SPDIFRX_FLAG_TERR
   * @retval The new state of __FLAG__ (TRUE or FALSE).
   */
-#define __HAL_SPDIFRX_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__)) ? SET : RESET)
+#define __HAL_SPDIFRX_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->SR)\
+                                                        & (__FLAG__)) == (__FLAG__)) ? SET : RESET)
 
 /** @brief  Clears the specified SPDIFRX SR flag, in setting the proper IFCR register bit.
   * @param  __HANDLE__    specifies the USART Handle.
@@ -472,15 +474,17 @@
   */
 /* Initialization/de-initialization functions  **********************************/
 HAL_StatusTypeDef HAL_SPDIFRX_Init(SPDIFRX_HandleTypeDef *hspdif);
-HAL_StatusTypeDef HAL_SPDIFRX_DeInit (SPDIFRX_HandleTypeDef *hspdif);
+HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif);
 void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif);
 void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif);
 HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTypeDef  sDataFormat);
 
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
-HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID, pSPDIFRX_CallbackTypeDef pCallback);
-HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID);
+HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID,
+                                               pSPDIFRX_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif,
+                                                 HAL_SPDIFRX_CallbackIDTypeDef CallbackID);
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
 /**
   * @}
@@ -490,9 +494,11 @@
   * @{
   */
 /* I/O operation functions  ***************************************************/
- /* Blocking mode: Polling */
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout);
+/* Blocking mode: Polling */
+HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
+                                              uint32_t Timeout);
+HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
+                                                 uint32_t Timeout);
 
 /* Non-Blocking mode: Interrupt */
 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);
@@ -518,8 +524,8 @@
   * @{
   */
 /* Peripheral Control and State functions  ************************************/
-HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const * const hspdif);
-uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const * const hspdif);
+HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif);
+uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif);
 /**
   * @}
   */
@@ -535,39 +541,39 @@
   * @{
   */
 #define IS_SPDIFRX_INPUT_SELECT(INPUT)      (((INPUT) == SPDIFRX_INPUT_IN1) || \
-                                            ((INPUT) == SPDIFRX_INPUT_IN2)  || \
-                                            ((INPUT) == SPDIFRX_INPUT_IN3)  || \
-                                            ((INPUT) == SPDIFRX_INPUT_IN0))
+                                             ((INPUT) == SPDIFRX_INPUT_IN2)  || \
+                                             ((INPUT) == SPDIFRX_INPUT_IN3)  || \
+                                             ((INPUT) == SPDIFRX_INPUT_IN0))
 
 #define IS_SPDIFRX_MAX_RETRIES(RET)         (((RET) == SPDIFRX_MAXRETRIES_NONE) || \
-                                            ((RET) == SPDIFRX_MAXRETRIES_3)     || \
-                                            ((RET) == SPDIFRX_MAXRETRIES_15)    || \
-                                            ((RET) == SPDIFRX_MAXRETRIES_63))
+                                             ((RET) == SPDIFRX_MAXRETRIES_3)     || \
+                                             ((RET) == SPDIFRX_MAXRETRIES_15)    || \
+                                             ((RET) == SPDIFRX_MAXRETRIES_63))
 
 #define IS_SPDIFRX_WAIT_FOR_ACTIVITY(VAL)   (((VAL) == SPDIFRX_WAITFORACTIVITY_ON) || \
-                                            ((VAL) == SPDIFRX_WAITFORACTIVITY_OFF))
+                                             ((VAL) == SPDIFRX_WAITFORACTIVITY_OFF))
 
 #define IS_PREAMBLE_TYPE_MASK(VAL)          (((VAL) == SPDIFRX_PREAMBLETYPEMASK_ON) || \
-                                            ((VAL) == SPDIFRX_PREAMBLETYPEMASK_OFF))
+                                             ((VAL) == SPDIFRX_PREAMBLETYPEMASK_OFF))
 
 #define IS_VALIDITY_MASK(VAL)               (((VAL) == SPDIFRX_VALIDITYMASK_OFF) || \
-                                            ((VAL) == SPDIFRX_VALIDITYMASK_ON))
+                                             ((VAL) == SPDIFRX_VALIDITYMASK_ON))
 
 #define IS_PARITY_ERROR_MASK(VAL)           (((VAL) == SPDIFRX_PARITYERRORMASK_OFF) || \
-                                            ((VAL) == SPDIFRX_PARITYERRORMASK_ON))
+                                             ((VAL) == SPDIFRX_PARITYERRORMASK_ON))
 
 #define IS_SPDIFRX_CHANNEL(CHANNEL)         (((CHANNEL) == SPDIFRX_CHANNEL_A) || \
-                                            ((CHANNEL) == SPDIFRX_CHANNEL_B))
+                                             ((CHANNEL) == SPDIFRX_CHANNEL_B))
 
 #define IS_SPDIFRX_DATA_FORMAT(FORMAT)      (((FORMAT) == SPDIFRX_DATAFORMAT_LSB) || \
-                                            ((FORMAT) == SPDIFRX_DATAFORMAT_MSB)  || \
-                                            ((FORMAT) == SPDIFRX_DATAFORMAT_32BITS))
+                                             ((FORMAT) == SPDIFRX_DATAFORMAT_MSB)  || \
+                                             ((FORMAT) == SPDIFRX_DATAFORMAT_32BITS))
 
 #define IS_STEREO_MODE(MODE)                (((MODE) == SPDIFRX_STEREOMODE_DISABLE) || \
-                                            ((MODE) == SPDIFRX_STEREOMODE_ENABLE))
+                                             ((MODE) == SPDIFRX_STEREOMODE_ENABLE))
 
 #define IS_CHANNEL_STATUS_MASK(VAL)         (((VAL) == SPDIFRX_CHANNELSTATUS_ON) || \
-                                            ((VAL) == SPDIFRX_CHANNELSTATUS_OFF))
+                                             ((VAL) == SPDIFRX_CHANNELSTATUS_OFF))
 
 /**
   * @}
@@ -595,6 +601,4 @@
 #endif
 
 
-#endif /* __STM32F4xx_HAL_SPDIFRX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_SPDIFRX_H */
diff --git a/Inc/stm32f4xx_hal_spi.h b/Inc/stm32f4xx_hal_spi.h
index f2e07c2..d7997a3 100644
--- a/Inc/stm32f4xx_hal_spi.h
+++ b/Inc/stm32f4xx_hal_spi.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -656,7 +655,8 @@
 
 /* Callbacks Register/UnRegister functions  ***********************************/
 #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
-HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID, pSPI_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID,
+                                           pSPI_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID);
 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */
 /**
@@ -727,4 +727,3 @@
 
 #endif /* STM32F4xx_HAL_SPI_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_sram.h b/Inc/stm32f4xx_hal_sram.h
index 0c7b08d..e135aa1 100644
--- a/Inc/stm32f4xx_hal_sram.h
+++ b/Inc/stm32f4xx_hal_sram.h
@@ -6,58 +6,48 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_HAL_SRAM_H
-#define __STM32F4xx_HAL_SRAM_H
+#ifndef STM32F4xx_HAL_SRAM_H
+#define STM32F4xx_HAL_SRAM_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
+#if defined(FMC_Bank1) || defined(FSMC_Bank1)
+
 /* Includes ------------------------------------------------------------------*/
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
-  #include "stm32f4xx_ll_fsmc.h"
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
-
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx) ||\
- defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-  #include "stm32f4xx_ll_fmc.h"
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
-
+#if defined(FSMC_Bank1)
+#include "stm32f4xx_ll_fsmc.h"
+#else
+#include "stm32f4xx_ll_fmc.h"
+#endif /* FSMC_Bank1 */
 
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
-
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
-
 /** @addtogroup SRAM
   * @{
-  */ 
+  */
 
 /* Exported typedef ----------------------------------------------------------*/
 
 /** @defgroup SRAM_Exported_Types SRAM Exported Types
   * @{
-  */ 
-/** 
-  * @brief  HAL SRAM State structures definition  
-  */ 
+  */
+/**
+  * @brief  HAL SRAM State structures definition
+  */
 typedef enum
 {
   HAL_SRAM_STATE_RESET     = 0x00U,  /*!< SRAM not yet initialized or disabled           */
@@ -75,26 +65,26 @@
 typedef struct __SRAM_HandleTypeDef
 #else
 typedef struct
-#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */	
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
 {
-  FMC_NORSRAM_TypeDef           *Instance;  /*!< Register base address                        */ 
-  
+  FMC_NORSRAM_TypeDef           *Instance;  /*!< Register base address                        */
+
   FMC_NORSRAM_EXTENDED_TypeDef  *Extended;  /*!< Extended mode register base address          */
-  
+
   FMC_NORSRAM_InitTypeDef       Init;       /*!< SRAM device control configuration parameters */
 
-  HAL_LockTypeDef               Lock;       /*!< SRAM locking object                          */ 
-  
+  HAL_LockTypeDef               Lock;       /*!< SRAM locking object                          */
+
   __IO HAL_SRAM_StateTypeDef    State;      /*!< SRAM device access state                     */
-  
+
   DMA_HandleTypeDef             *hdma;      /*!< Pointer DMA handler                          */
 
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
-  void  (* MspInitCallback)        ( struct __SRAM_HandleTypeDef * hsram);    /*!< SRAM Msp Init callback              */
-  void  (* MspDeInitCallback)      ( struct __SRAM_HandleTypeDef * hsram);    /*!< SRAM Msp DeInit callback            */
-  void  (* DmaXferCpltCallback)    ( DMA_HandleTypeDef * hdma);               /*!< SRAM DMA Xfer Complete callback     */
-  void  (* DmaXferErrorCallback)   ( DMA_HandleTypeDef * hdma);               /*!< SRAM DMA Xfer Error callback        */
-#endif
+  void (* MspInitCallback)(struct __SRAM_HandleTypeDef *hsram);               /*!< SRAM Msp Init callback              */
+  void (* MspDeInitCallback)(struct __SRAM_HandleTypeDef *hsram);             /*!< SRAM Msp DeInit callback            */
+  void (* DmaXferCpltCallback)(DMA_HandleTypeDef *hdma);                      /*!< SRAM DMA Xfer Complete callback     */
+  void (* DmaXferErrorCallback)(DMA_HandleTypeDef *hdma);                     /*!< SRAM DMA Xfer Error callback        */
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
 } SRAM_HandleTypeDef;
 
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
@@ -107,14 +97,14 @@
   HAL_SRAM_MSP_DEINIT_CB_ID     = 0x01U,  /*!< SRAM MspDeInit Callback ID         */
   HAL_SRAM_DMA_XFER_CPLT_CB_ID  = 0x02U,  /*!< SRAM DMA Xfer Complete Callback ID */
   HAL_SRAM_DMA_XFER_ERR_CB_ID   = 0x03U   /*!< SRAM DMA Xfer Complete Callback ID */
-}HAL_SRAM_CallbackIDTypeDef;
+} HAL_SRAM_CallbackIDTypeDef;
 
 /**
   * @brief  HAL SRAM Callback pointer definition
   */
 typedef void (*pSRAM_CallbackTypeDef)(SRAM_HandleTypeDef *hsram);
 typedef void (*pSRAM_DmaCallbackTypeDef)(DMA_HandleTypeDef *hdma);
-#endif
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
 /**
   * @}
   */
@@ -125,6 +115,7 @@
 /** @defgroup SRAM_Exported_Macros SRAM Exported Macros
   * @{
   */
+
 /** @brief Reset SRAM handle state
   * @param  __HANDLE__ SRAM handle
   * @retval None
@@ -137,69 +128,93 @@
                                                              } while(0)
 #else
 #define __HAL_SRAM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SRAM_STATE_RESET)
-#endif
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
 
 /**
   * @}
   */
+
 /* Exported functions --------------------------------------------------------*/
+/** @addtogroup SRAM_Exported_Functions SRAM Exported Functions
+  * @{
+  */
 
-/** @addtogroup SRAM_Exported_Functions
- *  @{
- */
+/** @addtogroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @{
+  */
 
-/** @addtogroup SRAM_Exported_Functions_Group1
- *  @{
- */
-/* Initialization/de-initialization functions  **********************************/
-HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming);
+/* Initialization/de-initialization functions  ********************************/
+HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
+                                FMC_NORSRAM_TimingTypeDef *ExtTiming);
 HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
-void              HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
-void              HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
+void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
+void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);
 
-void              HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
-void              HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
 /**
   * @}
-  */ 
+  */
 
-/** @addtogroup SRAM_Exported_Functions_Group2
- *  @{
- */
-/* I/O operation functions  *****************************************************/
-HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize);
+/** @addtogroup SRAM_Exported_Functions_Group2 Input Output and memory control functions
+  * @{
+  */
+
+/* I/O operation functions  ***************************************************/
+HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
+                                   uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
+                                    uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
+                                    uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                    uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                     uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                    uint32_t BufferSize);
+HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                     uint32_t BufferSize);
+
+void HAL_SRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma);
+void HAL_SRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma);
+
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
 /* SRAM callback registering/unregistering */
-HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_CallbackTypeDef pCallback);
+HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
+                                            pSRAM_CallbackTypeDef pCallback);
 HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId);
-HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_DmaCallbackTypeDef pCallback);
-#endif
+HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
+                                               pSRAM_DmaCallbackTypeDef pCallback);
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS  */
+
 /**
   * @}
-  */ 
+  */
 
-/** @addtogroup SRAM_Exported_Functions_Group3
- *  @{
- */
-/* SRAM Control functions  ******************************************************/
+/** @addtogroup SRAM_Exported_Functions_Group3 Control functions
+  * @{
+  */
+
+/* SRAM Control functions  ****************************************************/
 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);
 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram);
+
 /**
   * @}
-  */ 
+  */
 
-/** @addtogroup SRAM_Exported_Functions_Group4
- *  @{
- */
-/* SRAM State functions *********************************************************/
+/** @addtogroup SRAM_Exported_Functions_Group4 Peripheral State functions
+  * @{
+  */
+
+/* SRAM  State functions ******************************************************/
 HAL_SRAM_StateTypeDef HAL_SRAM_GetState(SRAM_HandleTypeDef *hsram);
+
+/**
+  * @}
+  */
+
 /**
   * @}
   */
@@ -208,25 +223,14 @@
   * @}
   */
 
-/* Private types -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private constants ---------------------------------------------------------*/
-/* Private macros ------------------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/**
-  * @}
-  */ 
-
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\
-          STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx ||\
-          STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
 /**
   * @}
   */
+
+#endif /* FMC_Bank1 || FSMC_Bank1 */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_HAL_SRAM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_HAL_SRAM_H */
diff --git a/Inc/stm32f4xx_hal_tim.h b/Inc/stm32f4xx_hal_tim.h
index 2322bf0..8c81414 100644
--- a/Inc/stm32f4xx_hal_tim.h
+++ b/Inc/stm32f4xx_hal_tim.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -706,6 +705,15 @@
   * @}
   */
 
+/** @defgroup TIM_CC_DMA_Request CCx DMA request selection
+  * @{
+  */
+#define TIM_CCDMAREQUEST_CC                 0x00000000U                         /*!< CCx DMA request sent when capture or compare match event occurs */
+#define TIM_CCDMAREQUEST_UPDATE             TIM_CR2_CCDS                        /*!< CCx DMA requests sent when update event occurs */
+/**
+  * @}
+  */
+
 /** @defgroup TIM_Flag_definition TIM Flag Definition
   * @{
   */
@@ -740,16 +748,16 @@
 /** @defgroup TIM_Clock_Source TIM Clock Source
   * @{
   */
-#define TIM_CLOCKSOURCE_ETRMODE2    TIM_SMCR_ETPS_1      /*!< External clock source mode 2                          */
 #define TIM_CLOCKSOURCE_INTERNAL    TIM_SMCR_ETPS_0      /*!< Internal clock source                                 */
+#define TIM_CLOCKSOURCE_ETRMODE1    TIM_TS_ETRF          /*!< External clock source mode 1 (ETRF)                   */
+#define TIM_CLOCKSOURCE_ETRMODE2    TIM_SMCR_ETPS_1      /*!< External clock source mode 2                          */
+#define TIM_CLOCKSOURCE_TI1ED       TIM_TS_TI1F_ED       /*!< External clock source mode 1 (TTI1FP1 + edge detect.) */
+#define TIM_CLOCKSOURCE_TI1         TIM_TS_TI1FP1        /*!< External clock source mode 1 (TTI1FP1)                */
+#define TIM_CLOCKSOURCE_TI2         TIM_TS_TI2FP2        /*!< External clock source mode 1 (TTI2FP2)                */
 #define TIM_CLOCKSOURCE_ITR0        TIM_TS_ITR0          /*!< External clock source mode 1 (ITR0)                   */
 #define TIM_CLOCKSOURCE_ITR1        TIM_TS_ITR1          /*!< External clock source mode 1 (ITR1)                   */
 #define TIM_CLOCKSOURCE_ITR2        TIM_TS_ITR2          /*!< External clock source mode 1 (ITR2)                   */
 #define TIM_CLOCKSOURCE_ITR3        TIM_TS_ITR3          /*!< External clock source mode 1 (ITR3)                   */
-#define TIM_CLOCKSOURCE_TI1ED       TIM_TS_TI1F_ED       /*!< External clock source mode 1 (TTI1FP1 + edge detect.) */
-#define TIM_CLOCKSOURCE_TI1         TIM_TS_TI1FP1        /*!< External clock source mode 1 (TTI1FP1)                */
-#define TIM_CLOCKSOURCE_TI2         TIM_TS_TI2FP2        /*!< External clock source mode 1 (TTI2FP2)                */
-#define TIM_CLOCKSOURCE_ETRMODE1    TIM_TS_ETRF          /*!< External clock source mode 1 (ETRF)                   */
 /**
   * @}
   */
@@ -1527,6 +1535,17 @@
     TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
   }while(0)
 
+/** @brief  Select the Capture/compare DMA request source.
+  * @param  __HANDLE__ specifies the TIM Handle.
+  * @param  __CCDMA__ specifies Capture/compare DMA request source
+  *          This parameter can be one of the following values:
+  *            @arg TIM_CCDMAREQUEST_CC: CCx DMA request generated on Capture/Compare event
+  *            @arg TIM_CCDMAREQUEST_UPDATE: CCx DMA request generated on Update event
+  * @retval None
+  */
+#define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__)    \
+  MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
+
 /**
   * @}
   */
@@ -1640,15 +1659,15 @@
                                                     ((__CHANNEL__) == TIM_CHANNEL_3))
 
 #define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
+                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
                                        ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
-                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0)     || \
-                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1)     || \
-                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2)     || \
-                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3)     || \
                                        ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED)    || \
                                        ((__CLOCK__) == TIM_CLOCKSOURCE_TI1)      || \
                                        ((__CLOCK__) == TIM_CLOCKSOURCE_TI2)      || \
-                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1))
+                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0)     || \
+                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1)     || \
+                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2)     || \
+                                       ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
 
 #define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED)    || \
                                             ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
@@ -1724,13 +1743,13 @@
                                    ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE)      || \
                                    ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
 
-#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
-                                                 ((__SELECTION__) == TIM_TS_ITR1) || \
-                                                 ((__SELECTION__) == TIM_TS_ITR2) || \
-                                                 ((__SELECTION__) == TIM_TS_ITR3) || \
+#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0)    || \
+                                                 ((__SELECTION__) == TIM_TS_ITR1)    || \
+                                                 ((__SELECTION__) == TIM_TS_ITR2)    || \
+                                                 ((__SELECTION__) == TIM_TS_ITR3)    || \
                                                  ((__SELECTION__) == TIM_TS_TI1F_ED) || \
-                                                 ((__SELECTION__) == TIM_TS_TI1FP1) || \
-                                                 ((__SELECTION__) == TIM_TS_TI2FP2) || \
+                                                 ((__SELECTION__) == TIM_TS_TI1FP1)  || \
+                                                 ((__SELECTION__) == TIM_TS_TI2FP2)  || \
                                                  ((__SELECTION__) == TIM_TS_ETRF))
 
 #define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
@@ -2125,5 +2144,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_TIM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_tim_ex.h b/Inc/stm32f4xx_hal_tim_ex.h
index 737fdc4..39fb500 100644
--- a/Inc/stm32f4xx_hal_tim_ex.h
+++ b/Inc/stm32f4xx_hal_tim_ex.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -329,7 +328,7 @@
 /* End of exported functions -------------------------------------------------*/
 
 /* Private functions----------------------------------------------------------*/
-/** @addtogroup TIMEx_Private_Functions TIMEx Private Functions
+/** @addtogroup TIMEx_Private_Functions TIM Extended Private Functions
   * @{
   */
 void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
@@ -353,5 +352,3 @@
 
 
 #endif /* STM32F4xx_HAL_TIM_EX_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_uart.h b/Inc/stm32f4xx_hal_uart.h
index 14526e8..c5f5d3e 100644
--- a/Inc/stm32f4xx_hal_uart.h
+++ b/Inc/stm32f4xx_hal_uart.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -153,7 +152,7 @@
 
   UART_InitTypeDef              Init;             /*!< UART communication parameters      */
 
-  uint8_t                       *pTxBuffPtr;      /*!< Pointer to UART Tx transfer Buffer */
+  const uint8_t                 *pTxBuffPtr;      /*!< Pointer to UART Tx transfer Buffer */
 
   uint16_t                      TxXferSize;       /*!< UART Tx Transfer size              */
 
@@ -720,11 +719,11 @@
   */
 
 /* IO operation functions *******************************************************/
-HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
-HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
+HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);
 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);
@@ -883,4 +882,3 @@
 
 #endif /* __STM32F4xx_HAL_UART_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_usart.h b/Inc/stm32f4xx_hal_usart.h
index 5b83753..4496649 100644
--- a/Inc/stm32f4xx_hal_usart.h
+++ b/Inc/stm32f4xx_hal_usart.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -102,7 +101,7 @@
 
   USART_InitTypeDef             Init;             /*!< Usart communication parameters      */
 
-  uint8_t                       *pTxBuffPtr;      /*!< Pointer to Usart Tx transfer Buffer */
+  const uint8_t                 *pTxBuffPtr;      /*!< Pointer to Usart Tx transfer Buffer */
 
   uint16_t                      TxXferSize;       /*!< Usart Tx Transfer size              */
 
@@ -510,17 +509,17 @@
   * @{
   */
 /* IO operation functions *******************************************************/
-HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout);
+HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                             uint16_t Size, uint32_t Timeout);
-HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
+HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size);
 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
-HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                                uint16_t Size);
-HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
+HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size);
 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
-HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                                 uint16_t Size);
 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart);
 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart);
@@ -647,4 +646,3 @@
 
 #endif /* __STM32F4xx_HAL_USART_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_hal_wwdg.h b/Inc/stm32f4xx_hal_wwdg.h
index 017b34d..ab8b1ea 100644
--- a/Inc/stm32f4xx_hal_wwdg.h
+++ b/Inc/stm32f4xx_hal_wwdg.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -184,7 +183,7 @@
 
 /**
   * @brief  Enable the WWDG early wakeup interrupt.
-  * @param  __HANDLE__: WWDG handle
+  * @param  __HANDLE__     WWDG handle
   * @param  __INTERRUPT__  specifies the interrupt to enable.
   *         This parameter can be one of the following values:
   *            @arg WWDG_IT_EWI: Early wakeup interrupt
@@ -297,5 +296,3 @@
 #endif
 
 #endif /* STM32F4xx_HAL_WWDG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_adc.h b/Inc/stm32f4xx_ll_adc.h
index 9348911..49fee97 100644
--- a/Inc/stm32f4xx_ll_adc.h
+++ b/Inc/stm32f4xx_ll_adc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -4395,7 +4394,7 @@
   */
 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
 {
-  return (READ_BIT(ADC1->SR, LL_ADC_FLAG_EOCS) == (LL_ADC_FLAG_EOCS));
+  return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_MST) == (LL_ADC_FLAG_EOCS_MST));
 }
 
 /**
@@ -4468,7 +4467,7 @@
 
 /**
   * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC master.
-  * @rmtoll CSR      JEOC           LL_ADC_IsActiveFlag_MST_EOCS
+  * @rmtoll CSR      JEOC           LL_ADC_IsActiveFlag_MST_JEOS
   * @param  ADCxy_COMMON ADC common instance
   *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
   * @retval State of bit (1 or 0).
@@ -4778,4 +4777,3 @@
 
 #endif /* __STM32F4xx_LL_ADC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_bus.h b/Inc/stm32f4xx_ll_bus.h
index 66da28f..5083c10 100644
--- a/Inc/stm32f4xx_ll_bus.h
+++ b/Inc/stm32f4xx_ll_bus.h
@@ -23,14 +23,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -2105,4 +2103,3 @@
 
 #endif /* __STM32F4xx_LL_BUS_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_cortex.h b/Inc/stm32f4xx_ll_cortex.h
index eddcc97..d478e13 100644
--- a/Inc/stm32f4xx_ll_cortex.h
+++ b/Inc/stm32f4xx_ll_cortex.h
@@ -22,14 +22,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -637,4 +635,3 @@
 
 #endif /* __STM32F4xx_LL_CORTEX_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_crc.h b/Inc/stm32f4xx_ll_crc.h
index 2d05b67..0a28006 100644
--- a/Inc/stm32f4xx_ll_crc.h
+++ b/Inc/stm32f4xx_ll_crc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -200,5 +199,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_CRC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_dac.h b/Inc/stm32f4xx_ll_dac.h
index 98bf40b..ea1500b 100644
--- a/Inc/stm32f4xx_ll_dac.h
+++ b/Inc/stm32f4xx_ll_dac.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1454,4 +1453,3 @@
 
 #endif /* STM32F4xx_LL_DAC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_dma.h b/Inc/stm32f4xx_ll_dma.h
index 63264e6..76444fc 100644
--- a/Inc/stm32f4xx_ll_dma.h
+++ b/Inc/stm32f4xx_ll_dma.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -2730,7 +2729,7 @@
 }
 
 /**
-  * @brief Check if Half transfer interrup is enabled.
+  * @brief Check if Half transfer interrupt is enabled.
   * @rmtoll CR        HTIE         LL_DMA_IsEnabledIT_HT
   * @param  DMAx DMAx Instance
   * @param  Stream This parameter can be one of the following values:
@@ -2770,7 +2769,7 @@
 }
 
 /**
-  * @brief Check if Transfer complete interrup is enabled.
+  * @brief Check if Transfer complete interrupt is enabled.
   * @rmtoll CR        TCIE         LL_DMA_IsEnabledIT_TC
   * @param  DMAx DMAx Instance
   * @param  Stream This parameter can be one of the following values:
@@ -2810,7 +2809,7 @@
 }
 
 /**
-  * @brief Check if FIFO error interrup is enabled.
+  * @brief Check if FIFO error interrupt is enabled.
   * @rmtoll FCR        FEIE         LL_DMA_IsEnabledIT_FE
   * @param  DMAx DMAx Instance
   * @param  Stream This parameter can be one of the following values:
@@ -2867,4 +2866,3 @@
 
 #endif /* __STM32F4xx_LL_DMA_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_dma2d.h b/Inc/stm32f4xx_ll_dma2d.h
index a783d05..64c57b0 100644
--- a/Inc/stm32f4xx_ll_dma2d.h
+++ b/Inc/stm32f4xx_ll_dma2d.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1900,5 +1899,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_DMA2D_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_exti.h b/Inc/stm32f4xx_ll_exti.h
index c816e26..65ab691 100644
--- a/Inc/stm32f4xx_ll_exti.h
+++ b/Inc/stm32f4xx_ll_exti.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.Clause
   *
   ******************************************************************************
   */
@@ -953,4 +952,3 @@
 
 #endif /* __STM32F4xx_LL_EXTI_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_fmc.h b/Inc/stm32f4xx_ll_fmc.h
index 71e7c74..fe28f87 100644
--- a/Inc/stm32f4xx_ll_fmc.h
+++ b/Inc/stm32f4xx_ll_fmc.h
@@ -6,23 +6,22 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_LL_FMC_H
-#define __STM32F4xx_LL_FMC_H
+#ifndef STM32F4xx_LL_FMC_H
+#define STM32F4xx_LL_FMC_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
 /* Includes ------------------------------------------------------------------*/
@@ -31,148 +30,336 @@
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
-   
+
 /** @addtogroup FMC_LL
   * @{
-  */ 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-/* Private types -------------------------------------------------------------*/
-/** @defgroup FMC_LL_Private_Types FMC Private Types
-  * @{
   */
 
-/** 
+/** @addtogroup FMC_LL_Private_Macros
+  * @{
+  */
+#if defined(FMC_Bank1)
+
+#define IS_FMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FMC_NORSRAM_BANK1) || \
+                                       ((__BANK__) == FMC_NORSRAM_BANK2) || \
+                                       ((__BANK__) == FMC_NORSRAM_BANK3) || \
+                                       ((__BANK__) == FMC_NORSRAM_BANK4))
+#define IS_FMC_MUX(__MUX__) (((__MUX__) == FMC_DATA_ADDRESS_MUX_DISABLE) || \
+                             ((__MUX__) == FMC_DATA_ADDRESS_MUX_ENABLE))
+#define IS_FMC_MEMORY(__MEMORY__) (((__MEMORY__) == FMC_MEMORY_TYPE_SRAM) || \
+                                   ((__MEMORY__) == FMC_MEMORY_TYPE_PSRAM)|| \
+                                   ((__MEMORY__) == FMC_MEMORY_TYPE_NOR))
+#define IS_FMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_8)  || \
+                                                ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_16) || \
+                                                ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_32))
+#define IS_FMC_PAGESIZE(__SIZE__) (((__SIZE__) == FMC_PAGE_SIZE_NONE) || \
+                                   ((__SIZE__) == FMC_PAGE_SIZE_128) || \
+                                   ((__SIZE__) == FMC_PAGE_SIZE_256) || \
+                                   ((__SIZE__) == FMC_PAGE_SIZE_512) || \
+                                   ((__SIZE__) == FMC_PAGE_SIZE_1024))
+#if defined(FMC_BCR1_WFDIS)
+#define IS_FMC_WRITE_FIFO(__FIFO__) (((__FIFO__) == FMC_WRITE_FIFO_DISABLE) || \
+                                     ((__FIFO__) == FMC_WRITE_FIFO_ENABLE))
+#endif /* FMC_BCR1_WFDIS */
+#define IS_FMC_ACCESS_MODE(__MODE__) (((__MODE__) == FMC_ACCESS_MODE_A) || \
+                                      ((__MODE__) == FMC_ACCESS_MODE_B) || \
+                                      ((__MODE__) == FMC_ACCESS_MODE_C) || \
+                                      ((__MODE__) == FMC_ACCESS_MODE_D))
+#define IS_FMC_BURSTMODE(__STATE__) (((__STATE__) == FMC_BURST_ACCESS_MODE_DISABLE) || \
+                                     ((__STATE__) == FMC_BURST_ACCESS_MODE_ENABLE))
+#define IS_FMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_LOW) || \
+                                            ((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_HIGH))
+#define IS_FMC_WRAP_MODE(__MODE__) (((__MODE__) == FMC_WRAP_MODE_DISABLE) || \
+                                             ((__MODE__) == FMC_WRAP_MODE_ENABLE))
+#define IS_FMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FMC_WAIT_TIMING_BEFORE_WS) || \
+                                               ((__ACTIVE__) == FMC_WAIT_TIMING_DURING_WS))
+#define IS_FMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FMC_WRITE_OPERATION_DISABLE) || \
+                                               ((__OPERATION__) == FMC_WRITE_OPERATION_ENABLE))
+#define IS_FMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FMC_WAIT_SIGNAL_DISABLE) || \
+                                         ((__SIGNAL__) == FMC_WAIT_SIGNAL_ENABLE))
+#define IS_FMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FMC_EXTENDED_MODE_DISABLE) || \
+                                        ((__MODE__) == FMC_EXTENDED_MODE_ENABLE))
+#define IS_FMC_ASYNWAIT(__STATE__) (((__STATE__) == FMC_ASYNCHRONOUS_WAIT_DISABLE) || \
+                                    ((__STATE__) == FMC_ASYNCHRONOUS_WAIT_ENABLE))
+#define IS_FMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U))
+#define IS_FMC_WRITE_BURST(__BURST__) (((__BURST__) == FMC_WRITE_BURST_DISABLE) || \
+                                       ((__BURST__) == FMC_WRITE_BURST_ENABLE))
+#define IS_FMC_CONTINOUS_CLOCK(__CCLOCK__) (((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
+                                            ((__CCLOCK__) == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
+#define IS_FMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U)
+#define IS_FMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U))
+#define IS_FMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U))
+#define IS_FMC_DATAHOLD_DURATION(__DATAHOLD__) ((__DATAHOLD__) <= 3U)
+#define IS_FMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U)
+#define IS_FMC_CLK_DIV(__DIV__) (((__DIV__) > 1U) && ((__DIV__) <= 16U))
+#define IS_FMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_DEVICE)
+#define IS_FMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_EXTENDED_DEVICE)
+
+#endif /* FMC_Bank1 */
+#if  (defined(FMC_Bank3) || defined(FMC_Bank2_3))
+
+#if defined(FMC_Bank2_3)
+#define IS_FMC_NAND_BANK(__BANK__) (((__BANK__) == FMC_NAND_BANK2) || \
+                                            ((__BANK__) == FMC_NAND_BANK3))
+#else
+#define IS_FMC_NAND_BANK(__BANK__) ((__BANK__) == FMC_NAND_BANK3)
+#endif /* FMC_Bank2_3 */                                            
+#define IS_FMC_WAIT_FEATURE(__FEATURE__) (((__FEATURE__) == FMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \
+                                                   ((__FEATURE__) == FMC_NAND_PCC_WAIT_FEATURE_ENABLE))
+#define IS_FMC_NAND_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NAND_PCC_MEM_BUS_WIDTH_8) || \
+                                                      ((__WIDTH__) == FMC_NAND_PCC_MEM_BUS_WIDTH_16))
+#define IS_FMC_ECC_STATE(__STATE__) (((__STATE__) == FMC_NAND_ECC_DISABLE) || \
+                                     ((__STATE__) == FMC_NAND_ECC_ENABLE))
+
+#define IS_FMC_ECCPAGE_SIZE(__SIZE__) (((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_256BYTE)  || \
+                                       ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_512BYTE)  || \
+                                       ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
+                                       ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
+                                       ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
+                                       ((__SIZE__) == FMC_NAND_ECC_PAGE_SIZE_8192BYTE))
+#define IS_FMC_TCLR_TIME(__TIME__) ((__TIME__) <= 255U)
+#define IS_FMC_TAR_TIME(__TIME__) ((__TIME__) <= 255U)
+#define IS_FMC_SETUP_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FMC_WAIT_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FMC_HOLD_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FMC_HIZ_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NAND_DEVICE)
+
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
+#if defined(FMC_Bank4)
+#define IS_FMC_PCCARD_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_PCCARD_DEVICE)
+
+#endif /* FMC_Bank4 */
+#if defined(FMC_Bank5_6)
+
+#define IS_FMC_SDMEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_8)  || \
+                                          ((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_16) || \
+                                          ((__WIDTH__) == FMC_SDRAM_MEM_BUS_WIDTH_32))
+#define IS_FMC_WRITE_PROTECTION(__WRITE__) (((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_DISABLE) || \
+                                            ((__WRITE__) == FMC_SDRAM_WRITE_PROTECTION_ENABLE))
+#define IS_FMC_SDCLOCK_PERIOD(__PERIOD__) (((__PERIOD__) == FMC_SDRAM_CLOCK_DISABLE)  || \
+                                           ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_2) || \
+                                           ((__PERIOD__) == FMC_SDRAM_CLOCK_PERIOD_3))
+#define IS_FMC_READ_BURST(__RBURST__) (((__RBURST__) == FMC_SDRAM_RBURST_DISABLE) || \
+                                       ((__RBURST__) == FMC_SDRAM_RBURST_ENABLE))
+#define IS_FMC_READPIPE_DELAY(__DELAY__) (((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_0) || \
+                                          ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_1) || \
+                                          ((__DELAY__) == FMC_SDRAM_RPIPE_DELAY_2))
+#define IS_FMC_COMMAND_MODE(__COMMAND__) (((__COMMAND__) == FMC_SDRAM_CMD_NORMAL_MODE)      || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_CLK_ENABLE)       || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_PALL)             || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_AUTOREFRESH_MODE) || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_LOAD_MODE)        || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_SELFREFRESH_MODE) || \
+                                          ((__COMMAND__) == FMC_SDRAM_CMD_POWERDOWN_MODE))
+#define IS_FMC_COMMAND_TARGET(__TARGET__) (((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1) || \
+                                           ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK2) || \
+                                           ((__TARGET__) == FMC_SDRAM_CMD_TARGET_BANK1_2))
+#define IS_FMC_LOADTOACTIVE_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
+#define IS_FMC_EXITSELFREFRESH_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
+#define IS_FMC_SELFREFRESH_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 16U))
+#define IS_FMC_ROWCYCLE_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
+#define IS_FMC_WRITE_RECOVERY_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 16U))
+#define IS_FMC_RP_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
+#define IS_FMC_RCD_DELAY(__DELAY__) (((__DELAY__) > 0U) && ((__DELAY__) <= 16U))
+#define IS_FMC_AUTOREFRESH_NUMBER(__NUMBER__) (((__NUMBER__) > 0U) && ((__NUMBER__) <= 15U))
+#define IS_FMC_MODE_REGISTER(__CONTENT__) ((__CONTENT__) <= 8191U)
+#define IS_FMC_REFRESH_RATE(__RATE__) ((__RATE__) <= 8191U)
+#define IS_FMC_SDRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_SDRAM_DEVICE)
+#define IS_FMC_SDRAM_BANK(__BANK__) (((__BANK__) == FMC_SDRAM_BANK1) || \
+                                     ((__BANK__) == FMC_SDRAM_BANK2))
+#define IS_FMC_COLUMNBITS_NUMBER(__COLUMN__) (((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_8)  || \
+                                              ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_9)  || \
+                                              ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_10) || \
+                                              ((__COLUMN__) == FMC_SDRAM_COLUMN_BITS_NUM_11))
+#define IS_FMC_ROWBITS_NUMBER(__ROW__) (((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_11) || \
+                                        ((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_12) || \
+                                        ((__ROW__) == FMC_SDRAM_ROW_BITS_NUM_13))
+#define IS_FMC_INTERNALBANK_NUMBER(__NUMBER__) (((__NUMBER__) == FMC_SDRAM_INTERN_BANKS_NUM_2) || \
+                                                ((__NUMBER__) == FMC_SDRAM_INTERN_BANKS_NUM_4))
+#define IS_FMC_CAS_LATENCY(__LATENCY__) (((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_1) || \
+                                         ((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_2) || \
+                                         ((__LATENCY__) == FMC_SDRAM_CAS_LATENCY_3))
+
+#endif /* FMC_Bank5_6 */
+
+/**
+  * @}
+  */
+
+/* Exported typedef ----------------------------------------------------------*/
+
+/** @defgroup FMC_LL_Exported_typedef FMC Low Layer Exported Types
+  * @{
+  */
+
+#if defined(FMC_Bank1)
+#define FMC_NORSRAM_TypeDef            FMC_Bank1_TypeDef
+#define FMC_NORSRAM_EXTENDED_TypeDef   FMC_Bank1E_TypeDef
+#endif /* FMC_Bank1 */
+#if defined(FMC_Bank2_3)
+#define FMC_NAND_TypeDef               FMC_Bank2_3_TypeDef
+#else
+#define FMC_NAND_TypeDef               FMC_Bank3_TypeDef
+#endif /* FMC_Bank2_3 */
+#if defined(FMC_Bank4)
+#define FMC_PCCARD_TypeDef             FMC_Bank4_TypeDef
+#endif /* FMC_Bank4 */
+#if defined(FMC_Bank5_6)
+#define FMC_SDRAM_TypeDef              FMC_Bank5_6_TypeDef
+#endif /* FMC_Bank5_6 */
+
+#if defined(FMC_Bank1)
+#define FMC_NORSRAM_DEVICE             FMC_Bank1
+#define FMC_NORSRAM_EXTENDED_DEVICE    FMC_Bank1E
+#endif /* FMC_Bank1 */
+#if defined(FMC_Bank2_3)
+#define FMC_NAND_DEVICE                FMC_Bank2_3
+#else
+#define FMC_NAND_DEVICE                FMC_Bank3
+#endif /* FMC_Bank2_3 */
+#if defined(FMC_Bank4)
+#define FMC_PCCARD_DEVICE              FMC_Bank4
+#endif /* FMC_Bank4 */
+#if defined(FMC_Bank5_6)
+#define FMC_SDRAM_DEVICE               FMC_Bank5_6
+#endif /* FMC_Bank5_6 */
+
+#if defined(FMC_Bank1)
+/**
   * @brief  FMC NORSRAM Configuration Structure definition
-  */ 
+  */
 typedef struct
 {
   uint32_t NSBank;                       /*!< Specifies the NORSRAM memory device that will be used.
-                                              This parameter can be a value of @ref FMC_NORSRAM_Bank                     */
+                                              This parameter can be a value of @ref FMC_NORSRAM_Bank                  */
 
   uint32_t DataAddressMux;               /*!< Specifies whether the address and data values are
-                                              multiplexed on the data bus or not. 
-                                              This parameter can be a value of @ref FMC_Data_Address_Bus_Multiplexing    */
+                                              multiplexed on the data bus or not.
+                                              This parameter can be a value of @ref FMC_Data_Address_Bus_Multiplexing */
 
   uint32_t MemoryType;                   /*!< Specifies the type of external memory attached to
                                               the corresponding memory device.
-                                              This parameter can be a value of @ref FMC_Memory_Type                      */
+                                              This parameter can be a value of @ref FMC_Memory_Type                   */
 
   uint32_t MemoryDataWidth;              /*!< Specifies the external memory device width.
-                                              This parameter can be a value of @ref FMC_NORSRAM_Data_Width               */
+                                              This parameter can be a value of @ref FMC_NORSRAM_Data_Width            */
 
   uint32_t BurstAccessMode;              /*!< Enables or disables the burst access mode for Flash memory,
                                               valid only with synchronous burst Flash memories.
-                                              This parameter can be a value of @ref FMC_Burst_Access_Mode                */
+                                              This parameter can be a value of @ref FMC_Burst_Access_Mode             */
 
   uint32_t WaitSignalPolarity;           /*!< Specifies the wait signal polarity, valid only when accessing
                                               the Flash memory in burst mode.
-                                              This parameter can be a value of @ref FMC_Wait_Signal_Polarity             */
+                                              This parameter can be a value of @ref FMC_Wait_Signal_Polarity          */
 
   uint32_t WrapMode;                     /*!< Enables or disables the Wrapped burst access mode for Flash
                                               memory, valid only when accessing Flash memories in burst mode.
                                               This parameter can be a value of @ref FMC_Wrap_Mode
-                                              This mode is not available for the STM32F446/467/479xx devices                    */
+                                              This mode is not available for the STM32F446/467/479xx devices          */
 
   uint32_t WaitSignalActive;             /*!< Specifies if the wait signal is asserted by the memory one
                                               clock cycle before the wait state or during the wait state,
-                                              valid only when accessing memories in burst mode. 
-                                              This parameter can be a value of @ref FMC_Wait_Timing                      */
+                                              valid only when accessing memories in burst mode.
+                                              This parameter can be a value of @ref FMC_Wait_Timing                   */
 
-  uint32_t WriteOperation;               /*!< Enables or disables the write operation in the selected device by the FMC. 
-                                              This parameter can be a value of @ref FMC_Write_Operation                  */
+  uint32_t WriteOperation;               /*!< Enables or disables the write operation in the selected device by the FMC.
+                                              This parameter can be a value of @ref FMC_Write_Operation               */
 
   uint32_t WaitSignal;                   /*!< Enables or disables the wait state insertion via wait
-                                              signal, valid for Flash memory access in burst mode. 
-                                              This parameter can be a value of @ref FMC_Wait_Signal                      */
+                                              signal, valid for Flash memory access in burst mode.
+                                              This parameter can be a value of @ref FMC_Wait_Signal                   */
 
   uint32_t ExtendedMode;                 /*!< Enables or disables the extended mode.
-                                              This parameter can be a value of @ref FMC_Extended_Mode                    */
+                                              This parameter can be a value of @ref FMC_Extended_Mode                 */
 
   uint32_t AsynchronousWait;             /*!< Enables or disables wait signal during asynchronous transfers,
                                               valid only with asynchronous Flash memories.
-                                              This parameter can be a value of @ref FMC_AsynchronousWait                 */
+                                              This parameter can be a value of @ref FMC_AsynchronousWait              */
 
   uint32_t WriteBurst;                   /*!< Enables or disables the write burst operation.
-                                              This parameter can be a value of @ref FMC_Write_Burst                      */
+                                              This parameter can be a value of @ref FMC_Write_Burst                   */
 
   uint32_t ContinuousClock;              /*!< Enables or disables the FMC clock output to external memory devices.
-                                              This parameter is only enabled through the FMC_BCR1 register, and don't care 
-                                              through FMC_BCR2..4 registers.
-                                              This parameter can be a value of @ref FMC_Continous_Clock                  */
+                                              This parameter is only enabled through the FMC_BCR1 register,
+                                              and don't care through FMC_BCR2..4 registers.
+                                              This parameter can be a value of @ref FMC_Continous_Clock               */
 
   uint32_t WriteFifo;                    /*!< Enables or disables the write FIFO used by the FMC controller.
-                                              This parameter is only enabled through the FMC_BCR1 register, and don't care 
-                                              through FMC_BCR2..4 registers.
+                                              This parameter is only enabled through the FMC_BCR1 register,
+                                              and don't care through FMC_BCR2..4 registers.
                                               This parameter can be a value of @ref FMC_Write_FIFO
-                                              This mode is available only for the STM32F446/469/479xx devices            */
+                                              This mode is available only for the STM32F446/469/479xx devices         */
 
   uint32_t PageSize;                     /*!< Specifies the memory page size.
-                                              This parameter can be a value of @ref FMC_Page_Size                        */
-}FMC_NORSRAM_InitTypeDef;
+                                              This parameter can be a value of @ref FMC_Page_Size                     */
+} FMC_NORSRAM_InitTypeDef;
 
-/** 
-  * @brief  FMC NORSRAM Timing parameters structure definition  
+/**
+  * @brief  FMC NORSRAM Timing parameters structure definition
   */
 typedef struct
 {
   uint32_t AddressSetupTime;             /*!< Defines the number of HCLK cycles to configure
-                                              the duration of the address setup time. 
+                                              the duration of the address setup time.
                                               This parameter can be a value between Min_Data = 0 and Max_Data = 15.
-                                              @note This parameter is not used with synchronous NOR Flash memories.      */
+                                              @note This parameter is not used with synchronous NOR Flash memories.   */
 
   uint32_t AddressHoldTime;              /*!< Defines the number of HCLK cycles to configure
                                               the duration of the address hold time.
-                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15. 
-                                              @note This parameter is not used with synchronous NOR Flash memories.      */
+                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15.
+                                              @note This parameter is not used with synchronous NOR Flash memories.   */
 
   uint32_t DataSetupTime;                /*!< Defines the number of HCLK cycles to configure
                                               the duration of the data setup time.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 255.
-                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed 
-                                              NOR Flash memories.                                                        */
+                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
+                                              NOR Flash memories.                                                     */
 
   uint32_t BusTurnAroundDuration;        /*!< Defines the number of HCLK cycles to configure
                                               the duration of the bus turnaround.
                                               This parameter can be a value between Min_Data = 0 and Max_Data = 15.
-                                              @note This parameter is only used for multiplexed NOR Flash memories.      */
+                                              @note This parameter is only used for multiplexed NOR Flash memories.   */
 
-  uint32_t CLKDivision;                  /*!< Defines the period of CLK clock output signal, expressed in number of 
-                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and Max_Data = 16.
-                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM 
-                                              accesses.                                                                  */
+  uint32_t CLKDivision;                  /*!< Defines the period of CLK clock output signal, expressed in number of
+                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and
+                                              Max_Data = 16.
+                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
+                                              accesses.                                                               */
 
   uint32_t DataLatency;                  /*!< Defines the number of memory clock cycles to issue
                                               to the memory before getting the first data.
                                               The parameter value depends on the memory type as shown below:
                                               - It must be set to 0 in case of a CRAM
                                               - It is don't care in asynchronous NOR, SRAM or ROM accesses
-                                              - It may assume a value between Min_Data = 2 and Max_Data = 17 in NOR Flash memories
-                                                with synchronous burst mode enable                                       */
+                                              - It may assume a value between Min_Data = 2 and Max_Data = 17
+                                                in NOR Flash memories with synchronous burst mode enable              */
 
-  uint32_t AccessMode;                   /*!< Specifies the asynchronous access mode. 
-                                              This parameter can be a value of @ref FMC_Access_Mode                      */
-}FMC_NORSRAM_TimingTypeDef;
+  uint32_t AccessMode;                   /*!< Specifies the asynchronous access mode.
+                                              This parameter can be a value of @ref FMC_Access_Mode                   */
+} FMC_NORSRAM_TimingTypeDef;
+#endif /* FMC_Bank1 */
 
-/** 
-  * @brief  FMC NAND Configuration Structure definition  
-  */ 
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
+/**
+  * @brief  FMC NAND Configuration Structure definition
+  */
 typedef struct
 {
   uint32_t NandBank;               /*!< Specifies the NAND memory device that will be used.
-                                        This parameter can be a value of @ref FMC_NAND_Bank                    */
+                                        This parameter can be a value of @ref FMC_NAND_Bank                  */
 
   uint32_t Waitfeature;            /*!< Enables or disables the Wait feature for the NAND Memory device.
-                                        This parameter can be any value of @ref FMC_Wait_feature               */
+                                        This parameter can be any value of @ref FMC_Wait_feature             */
 
   uint32_t MemoryDataWidth;        /*!< Specifies the external memory device width.
-                                        This parameter can be any value of @ref FMC_NAND_Data_Width            */
+                                        This parameter can be any value of @ref FMC_NAND_Data_Width          */
 
   uint32_t EccComputation;         /*!< Enables or disables the ECC computation.
-                                        This parameter can be any value of @ref FMC_ECC                        */
+                                        This parameter can be any value of @ref FMC_ECC                      */
 
   uint32_t ECCPageSize;            /*!< Defines the page size for the extended ECC.
-                                        This parameter can be any value of @ref FMC_ECC_Page_Size              */
+                                        This parameter can be any value of @ref FMC_ECC_Page_Size            */
 
   uint32_t TCLRSetupTime;          /*!< Defines the number of HCLK cycles to configure the
                                         delay between CLE low and RE low.
@@ -181,10 +368,12 @@
   uint32_t TARSetupTime;           /*!< Defines the number of HCLK cycles to configure the
                                         delay between ALE low and RE low.
                                         This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
-}FMC_NAND_InitTypeDef;
+} FMC_NAND_InitTypeDef;
+#endif
 
-/** 
-  * @brief  FMC NAND/PCCARD Timing parameters structure definition
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
+/**
+  * @brief  FMC NAND Timing parameters structure definition
   */
 typedef struct
 {
@@ -192,35 +381,37 @@
                                       the command assertion for NAND-Flash read or write access
                                       to common/Attribute or I/O memory space (depending on
                                       the memory space timing to be configured).
-                                      This parameter can be a value between Min_Data = 0 and Max_Data = 255    */
+                                      This parameter can be a value between Min_Data = 0 and Max_Data = 254    */
 
   uint32_t WaitSetupTime;        /*!< Defines the minimum number of HCLK cycles to assert the
                                       command for NAND-Flash read or write access to
                                       common/Attribute or I/O memory space (depending on the
-                                      memory space timing to be configured). 
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
+                                      memory space timing to be configured).
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
 
   uint32_t HoldSetupTime;        /*!< Defines the number of HCLK clock cycles to hold address
                                       (and data for write access) after the command de-assertion
                                       for NAND-Flash read or write access to common/Attribute
                                       or I/O memory space (depending on the memory space timing
                                       to be configured).
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
 
   uint32_t HiZSetupTime;         /*!< Defines the number of HCLK clock cycles during which the
                                       data bus is kept in HiZ after the start of a NAND-Flash
                                       write access to common/Attribute or I/O memory space (depending
                                       on the memory space timing to be configured).
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
-}FMC_NAND_PCC_TimingTypeDef;
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
+} FMC_NAND_PCC_TimingTypeDef;
+#endif /* FMC_Bank3 || FMC_Bank2_3 */
 
-/** 
-  * @brief FMC NAND Configuration Structure definition
-  */ 
+#if defined(FMC_Bank4)
+/**
+  * @brief FMC PCCARD Configuration Structure definition
+  */
 typedef struct
 {
   uint32_t Waitfeature;            /*!< Enables or disables the Wait feature for the PCCARD Memory device.
-                                        This parameter can be any value of @ref FMC_Wait_feature               */
+                                        This parameter can be any value of @ref FMC_Wait_feature      */
 
   uint32_t TCLRSetupTime;          /*!< Defines the number of HCLK cycles to configure the
                                         delay between CLE low and RE low.
@@ -230,10 +421,12 @@
                                         delay between ALE low and RE low.
                                         This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
 }FMC_PCCARD_InitTypeDef;
+#endif /* FMC_Bank4 */
 
-/** 
-  * @brief  FMC SDRAM Configuration Structure definition  
-  */  
+#if defined(FMC_Bank5_6)
+/**
+  * @brief  FMC SDRAM Configuration Structure definition
+  */
 typedef struct
 {
   uint32_t SDBank;                      /*!< Specifies the SDRAM memory device that will be used.
@@ -257,53 +450,53 @@
   uint32_t WriteProtection;             /*!< Enables the SDRAM device to be accessed in write mode.
                                              This parameter can be a value of @ref FMC_SDRAM_Write_Protection.   */
 
-  uint32_t SDClockPeriod;               /*!< Define the SDRAM Clock Period for both SDRAM devices and they allow 
+  uint32_t SDClockPeriod;               /*!< Define the SDRAM Clock Period for both SDRAM devices and they allow
                                              to disable the clock before changing frequency.
                                              This parameter can be a value of @ref FMC_SDRAM_Clock_Period.       */
 
-  uint32_t ReadBurst;                   /*!< This bit enable the SDRAM controller to anticipate the next read 
+  uint32_t ReadBurst;                   /*!< This bit enable the SDRAM controller to anticipate the next read
                                              commands during the CAS latency and stores data in the Read FIFO.
                                              This parameter can be a value of @ref FMC_SDRAM_Read_Burst.         */
 
   uint32_t ReadPipeDelay;               /*!< Define the delay in system clock cycles on read data path.
                                              This parameter can be a value of @ref FMC_SDRAM_Read_Pipe_Delay.    */
-}FMC_SDRAM_InitTypeDef;
+} FMC_SDRAM_InitTypeDef;
 
-/** 
+/**
   * @brief FMC SDRAM Timing parameters structure definition
   */
 typedef struct
 {
-  uint32_t LoadToActiveDelay;            /*!< Defines the delay between a Load Mode Register command and 
+  uint32_t LoadToActiveDelay;            /*!< Defines the delay between a Load Mode Register command and
                                               an active or Refresh command in number of memory clock cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
-  uint32_t ExitSelfRefreshDelay;         /*!< Defines the delay from releasing the self refresh command to 
+  uint32_t ExitSelfRefreshDelay;         /*!< Defines the delay from releasing the self refresh command to
                                               issuing the Activate command in number of memory clock cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
-  uint32_t SelfRefreshTime;              /*!< Defines the minimum Self Refresh period in number of memory clock 
+  uint32_t SelfRefreshTime;              /*!< Defines the minimum Self Refresh period in number of memory clock
                                               cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
   uint32_t RowCycleDelay;                /*!< Defines the delay between the Refresh command and the Activate command
-                                              and the delay between two consecutive Refresh commands in number of 
+                                              and the delay between two consecutive Refresh commands in number of
                                               memory clock cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
   uint32_t WriteRecoveryTime;            /*!< Defines the Write recovery Time in number of memory clock cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
-  uint32_t RPDelay;                      /*!< Defines the delay between a Precharge Command and an other command 
+  uint32_t RPDelay;                      /*!< Defines the delay between a Precharge Command and an other command
                                               in number of memory clock cycles.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
 
-  uint32_t RCDDelay;                     /*!< Defines the delay between the Activate Command and a Read/Write 
+  uint32_t RCDDelay;                     /*!< Defines the delay between the Activate Command and a Read/Write
                                               command in number of memory clock cycles.
-                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */ 
-}FMC_SDRAM_TimingTypeDef;
+                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
+} FMC_SDRAM_TimingTypeDef;
 
-/** 
+/**
   * @brief SDRAM command parameters structure definition
   */
 typedef struct
@@ -316,47 +509,51 @@
 
   uint32_t AutoRefreshNumber;            /*!< Defines the number of consecutive auto refresh command issued
                                               in auto refresh mode.
-                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16   */
+                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15   */
+
   uint32_t ModeRegisterDefinition;       /*!< Defines the SDRAM Mode register content                                */
-}FMC_SDRAM_CommandTypeDef;
+} FMC_SDRAM_CommandTypeDef;
+#endif /* FMC_Bank5_6 */
 /**
   * @}
   */
 
-/* Private constants ---------------------------------------------------------*/
-/** @defgroup FMC_LL_Private_Constants FMC Private Constants
+/* Exported constants --------------------------------------------------------*/
+/** @addtogroup FMC_LL_Exported_Constants FMC Low Layer Exported Constants
+  * @{
+  */
+#if defined(FMC_Bank1)
+
+/** @defgroup FMC_LL_NOR_SRAM_Controller FMC NOR/SRAM Controller
   * @{
   */
 
-/** @defgroup FMC_LL_NOR_SRAM_Controller FMC NOR/SRAM Controller 
-  * @{
-  */ 
 /** @defgroup FMC_NORSRAM_Bank FMC NOR/SRAM Bank
   * @{
   */
-#define FMC_NORSRAM_BANK1                       0x00000000U
-#define FMC_NORSRAM_BANK2                       0x00000002U
-#define FMC_NORSRAM_BANK3                       0x00000004U
-#define FMC_NORSRAM_BANK4                       0x00000006U
+#define FMC_NORSRAM_BANK1                       (0x00000000U)
+#define FMC_NORSRAM_BANK2                       (0x00000002U)
+#define FMC_NORSRAM_BANK3                       (0x00000004U)
+#define FMC_NORSRAM_BANK4                       (0x00000006U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Data_Address_Bus_Multiplexing FMC Data Address Bus Multiplexing 
+/** @defgroup FMC_Data_Address_Bus_Multiplexing FMC Data Address Bus Multiplexing
   * @{
   */
-#define FMC_DATA_ADDRESS_MUX_DISABLE            0x00000000U
-#define FMC_DATA_ADDRESS_MUX_ENABLE             0x00000002U
+#define FMC_DATA_ADDRESS_MUX_DISABLE            (0x00000000U)
+#define FMC_DATA_ADDRESS_MUX_ENABLE             (0x00000002U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Memory_Type FMC Memory Type 
+/** @defgroup FMC_Memory_Type FMC Memory Type
   * @{
   */
-#define FMC_MEMORY_TYPE_SRAM                    0x00000000U
-#define FMC_MEMORY_TYPE_PSRAM                   0x00000004U
-#define FMC_MEMORY_TYPE_NOR                     0x00000008U
+#define FMC_MEMORY_TYPE_SRAM                    (0x00000000U)
+#define FMC_MEMORY_TYPE_PSRAM                   (0x00000004U)
+#define FMC_MEMORY_TYPE_NOR                     (0x00000008U)
 /**
   * @}
   */
@@ -364,9 +561,9 @@
 /** @defgroup FMC_NORSRAM_Data_Width FMC NORSRAM Data Width
   * @{
   */
-#define FMC_NORSRAM_MEM_BUS_WIDTH_8             0x00000000U
-#define FMC_NORSRAM_MEM_BUS_WIDTH_16            0x00000010U
-#define FMC_NORSRAM_MEM_BUS_WIDTH_32            0x00000020U
+#define FMC_NORSRAM_MEM_BUS_WIDTH_8             (0x00000000U)
+#define FMC_NORSRAM_MEM_BUS_WIDTH_16            (0x00000010U)
+#define FMC_NORSRAM_MEM_BUS_WIDTH_32            (0x00000020U)
 /**
   * @}
   */
@@ -374,64 +571,63 @@
 /** @defgroup FMC_NORSRAM_Flash_Access FMC NOR/SRAM Flash Access
   * @{
   */
-#define FMC_NORSRAM_FLASH_ACCESS_ENABLE         0x00000040U
-#define FMC_NORSRAM_FLASH_ACCESS_DISABLE        0x00000000U
+#define FMC_NORSRAM_FLASH_ACCESS_ENABLE         (0x00000040U)
+#define FMC_NORSRAM_FLASH_ACCESS_DISABLE        (0x00000000U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Burst_Access_Mode FMC Burst Access Mode 
+/** @defgroup FMC_Burst_Access_Mode FMC Burst Access Mode
   * @{
   */
-#define FMC_BURST_ACCESS_MODE_DISABLE           0x00000000U 
-#define FMC_BURST_ACCESS_MODE_ENABLE            0x00000100U
+#define FMC_BURST_ACCESS_MODE_DISABLE           (0x00000000U)
+#define FMC_BURST_ACCESS_MODE_ENABLE            (0x00000100U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Wait_Signal_Polarity FMC Wait Signal Polarity 
+/** @defgroup FMC_Wait_Signal_Polarity FMC Wait Signal Polarity
   * @{
   */
-#define FMC_WAIT_SIGNAL_POLARITY_LOW            0x00000000U
-#define FMC_WAIT_SIGNAL_POLARITY_HIGH           0x00000200U
+#define FMC_WAIT_SIGNAL_POLARITY_LOW            (0x00000000U)
+#define FMC_WAIT_SIGNAL_POLARITY_HIGH           (0x00000200U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Wrap_Mode FMC Wrap Mode 
+/** @defgroup FMC_Wrap_Mode FMC Wrap Mode
+  * @note This mode is not available for the STM32F446/469/479xx devices
   * @{
   */
-/** @note This mode is not available for the STM32F446/469/479xx devices
-  */
-#define FMC_WRAP_MODE_DISABLE                   0x00000000U
-#define FMC_WRAP_MODE_ENABLE                    0x00000400U 
+#define FMC_WRAP_MODE_DISABLE                   (0x00000000U)
+#define FMC_WRAP_MODE_ENABLE                    (0x00000400U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Wait_Timing FMC Wait Timing 
+/** @defgroup FMC_Wait_Timing FMC Wait Timing
   * @{
   */
-#define FMC_WAIT_TIMING_BEFORE_WS               0x00000000U
-#define FMC_WAIT_TIMING_DURING_WS               0x00000800U
+#define FMC_WAIT_TIMING_BEFORE_WS               (0x00000000U)
+#define FMC_WAIT_TIMING_DURING_WS               (0x00000800U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Write_Operation FMC Write Operation 
+/** @defgroup FMC_Write_Operation FMC Write Operation
   * @{
   */
-#define FMC_WRITE_OPERATION_DISABLE             0x00000000U
-#define FMC_WRITE_OPERATION_ENABLE              0x00001000U
+#define FMC_WRITE_OPERATION_DISABLE             (0x00000000U)
+#define FMC_WRITE_OPERATION_ENABLE              (0x00001000U)
 /**
   * @}
   */
 
-/** @defgroup FMC_Wait_Signal FMC Wait Signal 
+/** @defgroup FMC_Wait_Signal FMC Wait Signal
   * @{
   */
-#define FMC_WAIT_SIGNAL_DISABLE                 0x00000000U
-#define FMC_WAIT_SIGNAL_ENABLE                  0x00002000U
+#define FMC_WAIT_SIGNAL_DISABLE                 (0x00000000U)
+#define FMC_WAIT_SIGNAL_ENABLE                  (0x00002000U)
 /**
   * @}
   */
@@ -439,84 +635,92 @@
 /** @defgroup FMC_Extended_Mode FMC Extended Mode
   * @{
   */
-#define FMC_EXTENDED_MODE_DISABLE               0x00000000U
-#define FMC_EXTENDED_MODE_ENABLE                0x00004000U
+#define FMC_EXTENDED_MODE_DISABLE               (0x00000000U)
+#define FMC_EXTENDED_MODE_ENABLE                (0x00004000U)
 /**
   * @}
   */
 
-/** @defgroup FMC_AsynchronousWait FMC Asynchronous Wait 
+/** @defgroup FMC_AsynchronousWait FMC Asynchronous Wait
   * @{
   */
-#define FMC_ASYNCHRONOUS_WAIT_DISABLE           0x00000000U
-#define FMC_ASYNCHRONOUS_WAIT_ENABLE            0x00008000U
+#define FMC_ASYNCHRONOUS_WAIT_DISABLE           (0x00000000U)
+#define FMC_ASYNCHRONOUS_WAIT_ENABLE            (0x00008000U)
 /**
   * @}
-  */  
+  */
 
 /** @defgroup FMC_Page_Size FMC Page Size
   * @{
   */
-#define FMC_PAGE_SIZE_NONE           0x00000000U
-#define FMC_PAGE_SIZE_128            ((uint32_t)FMC_BCR1_CPSIZE_0)
-#define FMC_PAGE_SIZE_256            ((uint32_t)FMC_BCR1_CPSIZE_1)
-#define FMC_PAGE_SIZE_512            ((uint32_t)(FMC_BCR1_CPSIZE_0 | FMC_BCR1_CPSIZE_1))
-#define FMC_PAGE_SIZE_1024           ((uint32_t)FMC_BCR1_CPSIZE_2)
+#define FMC_PAGE_SIZE_NONE                      (0x00000000U)
+#define FMC_PAGE_SIZE_128                       FMC_BCR1_CPSIZE_0
+#define FMC_PAGE_SIZE_256                       FMC_BCR1_CPSIZE_1
+#define FMC_PAGE_SIZE_512                       (FMC_BCR1_CPSIZE_0\
+                                                 | FMC_BCR1_CPSIZE_1)
+#define FMC_PAGE_SIZE_1024                      FMC_BCR1_CPSIZE_2
 /**
   * @}
   */
 
-/** @defgroup FMC_Write_FIFO FMC Write FIFO 
+/** @defgroup FMC_Write_Burst FMC Write Burst
+  * @{
+  */
+#define FMC_WRITE_BURST_DISABLE                 (0x00000000U)
+#define FMC_WRITE_BURST_ENABLE                  (0x00080000U)
+/**
+  * @}
+  */
+
+/** @defgroup FMC_Continous_Clock FMC Continuous Clock
+  * @{
+  */
+#define FMC_CONTINUOUS_CLOCK_SYNC_ONLY          (0x00000000U)
+#define FMC_CONTINUOUS_CLOCK_SYNC_ASYNC         (0x00100000U)
+/**
+  * @}
+  */
+
+#if defined(FMC_BCR1_WFDIS)
+/** @defgroup FMC_Write_FIFO FMC Write FIFO
   * @note  These values are available only for the STM32F446/469/479xx devices.
   * @{
   */
-#define FMC_WRITE_FIFO_DISABLE           ((uint32_t)FMC_BCR1_WFDIS)
-#define FMC_WRITE_FIFO_ENABLE            0x00000000U
+#define FMC_WRITE_FIFO_DISABLE                  FMC_BCR1_WFDIS
+#define FMC_WRITE_FIFO_ENABLE                   (0x00000000U)
+#endif /* FMC_BCR1_WFDIS */
 /**
   * @}
   */
 
-/** @defgroup FMC_Write_Burst FMC Write Burst 
+/** @defgroup FMC_Access_Mode FMC Access Mode
   * @{
   */
-#define FMC_WRITE_BURST_DISABLE                 0x00000000U
-#define FMC_WRITE_BURST_ENABLE                  0x00080000U 
+#define FMC_ACCESS_MODE_A                       (0x00000000U)
+#define FMC_ACCESS_MODE_B                       (0x10000000U)
+#define FMC_ACCESS_MODE_C                       (0x20000000U)
+#define FMC_ACCESS_MODE_D                       (0x30000000U)
 /**
   * @}
   */
-  
-/** @defgroup FMC_Continous_Clock FMC Continuous Clock 
-  * @{
-  */
-#define FMC_CONTINUOUS_CLOCK_SYNC_ONLY          0x00000000U
-#define FMC_CONTINUOUS_CLOCK_SYNC_ASYNC         0x00100000U
-/**
-  * @}
-  */
-	
-/** @defgroup FMC_Access_Mode FMC Access Mode 
-  * @{
-  */
-#define FMC_ACCESS_MODE_A                        0x00000000U
-#define FMC_ACCESS_MODE_B                        0x10000000U 
-#define FMC_ACCESS_MODE_C                        0x20000000U
-#define FMC_ACCESS_MODE_D                        0x30000000U
-/**
-  * @}
-  */
-    
-/**
-  * @}
-  */ 
 
-/** @defgroup FMC_LL_NAND_Controller FMC NAND Controller 
+/**
+  * @}
+  */
+#endif /* FMC_Bank1 */
+
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
+
+/** @defgroup FMC_LL_NAND_Controller FMC NAND Controller
   * @{
   */
-/** @defgroup FMC_NAND_Bank FMC NAND Bank 
+/** @defgroup FMC_NAND_Bank FMC NAND Bank
   * @{
   */
-#define FMC_NAND_BANK2                          0x00000010U
-#define FMC_NAND_BANK3                          0x00000100U 
+#if defined(FMC_Bank2_3)
+#define FMC_NAND_BANK2                          (0x00000010U)
+#endif
+#define FMC_NAND_BANK3                          (0x00000100U)
 /**
   * @}
   */
@@ -524,75 +728,79 @@
 /** @defgroup FMC_Wait_feature FMC Wait feature
   * @{
   */
-#define FMC_NAND_PCC_WAIT_FEATURE_DISABLE           0x00000000U
-#define FMC_NAND_PCC_WAIT_FEATURE_ENABLE            0x00000002U
+#define FMC_NAND_PCC_WAIT_FEATURE_DISABLE       (0x00000000U)
+#define FMC_NAND_PCC_WAIT_FEATURE_ENABLE        (0x00000002U)
 /**
   * @}
   */
 
-/** @defgroup FMC_PCR_Memory_Type FMC PCR Memory Type 
+/** @defgroup FMC_PCR_Memory_Type FMC PCR Memory Type
   * @{
   */
-#define FMC_PCR_MEMORY_TYPE_PCCARD        0x00000000U
-#define FMC_PCR_MEMORY_TYPE_NAND          0x00000008U
+#if defined(FMC_Bank4)
+#define FMC_PCR_MEMORY_TYPE_PCCARD              (0x00000000U)
+#endif /* FMC_Bank4 */
+#define FMC_PCR_MEMORY_TYPE_NAND                (0x00000008U)
 /**
   * @}
   */
 
-/** @defgroup FMC_NAND_Data_Width FMC NAND Data Width 
+/** @defgroup FMC_NAND_Data_Width FMC NAND Data Width
   * @{
   */
-#define FMC_NAND_PCC_MEM_BUS_WIDTH_8                0x00000000U
-#define FMC_NAND_PCC_MEM_BUS_WIDTH_16               0x00000010U
+#define FMC_NAND_PCC_MEM_BUS_WIDTH_8            (0x00000000U)
+#define FMC_NAND_PCC_MEM_BUS_WIDTH_16           (0x00000010U)
 /**
   * @}
   */
 
-/** @defgroup FMC_ECC FMC ECC 
+/** @defgroup FMC_ECC FMC ECC
   * @{
   */
-#define FMC_NAND_ECC_DISABLE                    0x00000000U
-#define FMC_NAND_ECC_ENABLE                     0x00000040U
+#define FMC_NAND_ECC_DISABLE                    (0x00000000U)
+#define FMC_NAND_ECC_ENABLE                     (0x00000040U)
 /**
   * @}
   */
 
-/** @defgroup FMC_ECC_Page_Size FMC ECC Page Size 
+/** @defgroup FMC_ECC_Page_Size FMC ECC Page Size
   * @{
   */
-#define FMC_NAND_ECC_PAGE_SIZE_256BYTE          0x00000000U
-#define FMC_NAND_ECC_PAGE_SIZE_512BYTE          0x00020000U
-#define FMC_NAND_ECC_PAGE_SIZE_1024BYTE         0x00040000U
-#define FMC_NAND_ECC_PAGE_SIZE_2048BYTE         0x00060000U
-#define FMC_NAND_ECC_PAGE_SIZE_4096BYTE         0x00080000U
-#define FMC_NAND_ECC_PAGE_SIZE_8192BYTE         0x000A0000U
+#define FMC_NAND_ECC_PAGE_SIZE_256BYTE          (0x00000000U)
+#define FMC_NAND_ECC_PAGE_SIZE_512BYTE          (0x00020000U)
+#define FMC_NAND_ECC_PAGE_SIZE_1024BYTE         (0x00040000U)
+#define FMC_NAND_ECC_PAGE_SIZE_2048BYTE         (0x00060000U)
+#define FMC_NAND_ECC_PAGE_SIZE_4096BYTE         (0x00080000U)
+#define FMC_NAND_ECC_PAGE_SIZE_8192BYTE         (0x000A0000U)
 /**
   * @}
   */
-  
+
 /**
   * @}
-  */ 
+  */
+#endif /* FMC_Bank3 || FMC_Bank2_3 || FMC_Bank4 */
 
-/** @defgroup FMC_LL_SDRAM_Controller FMC SDRAM Controller 
+#if defined(FMC_Bank5_6)
+/** @defgroup FMC_LL_SDRAM_Controller FMC SDRAM Controller
   * @{
   */
 /** @defgroup FMC_SDRAM_Bank FMC SDRAM Bank
   * @{
   */
-#define FMC_SDRAM_BANK1                       0x00000000U
-#define FMC_SDRAM_BANK2                       0x00000001U
+#define FMC_SDRAM_BANK1                         (0x00000000U)
+#define FMC_SDRAM_BANK2                         (0x00000001U)
 /**
   * @}
   */
 
-/** @defgroup FMC_SDRAM_Column_Bits_number FMC SDRAM Column Bits number 
+/** @defgroup FMC_SDRAM_Column_Bits_number FMC SDRAM Column Bits number
   * @{
   */
-#define FMC_SDRAM_COLUMN_BITS_NUM_8           0x00000000U
-#define FMC_SDRAM_COLUMN_BITS_NUM_9           0x00000001U
-#define FMC_SDRAM_COLUMN_BITS_NUM_10          0x00000002U
-#define FMC_SDRAM_COLUMN_BITS_NUM_11          0x00000003U
+#define FMC_SDRAM_COLUMN_BITS_NUM_8             (0x00000000U)
+#define FMC_SDRAM_COLUMN_BITS_NUM_9             (0x00000001U)
+#define FMC_SDRAM_COLUMN_BITS_NUM_10            (0x00000002U)
+#define FMC_SDRAM_COLUMN_BITS_NUM_11            (0x00000003U)
 /**
   * @}
   */
@@ -600,9 +808,9 @@
 /** @defgroup FMC_SDRAM_Row_Bits_number FMC SDRAM Row Bits number
   * @{
   */
-#define FMC_SDRAM_ROW_BITS_NUM_11             0x00000000U
-#define FMC_SDRAM_ROW_BITS_NUM_12             0x00000004U
-#define FMC_SDRAM_ROW_BITS_NUM_13             0x00000008U
+#define FMC_SDRAM_ROW_BITS_NUM_11               (0x00000000U)
+#define FMC_SDRAM_ROW_BITS_NUM_12               (0x00000004U)
+#define FMC_SDRAM_ROW_BITS_NUM_13               (0x00000008U)
 /**
   * @}
   */
@@ -610,9 +818,9 @@
 /** @defgroup FMC_SDRAM_Memory_Bus_Width FMC SDRAM Memory Bus Width
   * @{
   */
-#define FMC_SDRAM_MEM_BUS_WIDTH_8             0x00000000U
-#define FMC_SDRAM_MEM_BUS_WIDTH_16            0x00000010U
-#define FMC_SDRAM_MEM_BUS_WIDTH_32            0x00000020U
+#define FMC_SDRAM_MEM_BUS_WIDTH_8               (0x00000000U)
+#define FMC_SDRAM_MEM_BUS_WIDTH_16              (0x00000010U)
+#define FMC_SDRAM_MEM_BUS_WIDTH_32              (0x00000020U)
 /**
   * @}
   */
@@ -620,8 +828,8 @@
 /** @defgroup FMC_SDRAM_Internal_Banks_Number FMC SDRAM Internal Banks Number
   * @{
   */
-#define FMC_SDRAM_INTERN_BANKS_NUM_2          0x00000000U
-#define FMC_SDRAM_INTERN_BANKS_NUM_4          0x00000040U
+#define FMC_SDRAM_INTERN_BANKS_NUM_2            (0x00000000U)
+#define FMC_SDRAM_INTERN_BANKS_NUM_4            (0x00000040U)
 /**
   * @}
   */
@@ -629,9 +837,9 @@
 /** @defgroup FMC_SDRAM_CAS_Latency FMC SDRAM CAS Latency
   * @{
   */
-#define FMC_SDRAM_CAS_LATENCY_1               0x00000080U
-#define FMC_SDRAM_CAS_LATENCY_2               0x00000100U
-#define FMC_SDRAM_CAS_LATENCY_3               0x00000180U
+#define FMC_SDRAM_CAS_LATENCY_1                 (0x00000080U)
+#define FMC_SDRAM_CAS_LATENCY_2                 (0x00000100U)
+#define FMC_SDRAM_CAS_LATENCY_3                 (0x00000180U)
 /**
   * @}
   */
@@ -639,9 +847,8 @@
 /** @defgroup FMC_SDRAM_Write_Protection FMC SDRAM Write Protection
   * @{
   */
-#define FMC_SDRAM_WRITE_PROTECTION_DISABLE    0x00000000U
-#define FMC_SDRAM_WRITE_PROTECTION_ENABLE     0x00000200U
-
+#define FMC_SDRAM_WRITE_PROTECTION_DISABLE      (0x00000000U)
+#define FMC_SDRAM_WRITE_PROTECTION_ENABLE       (0x00000200U)
 /**
   * @}
   */
@@ -649,9 +856,9 @@
 /** @defgroup FMC_SDRAM_Clock_Period FMC SDRAM Clock Period
   * @{
   */
-#define FMC_SDRAM_CLOCK_DISABLE               0x00000000U
-#define FMC_SDRAM_CLOCK_PERIOD_2              0x00000800U
-#define FMC_SDRAM_CLOCK_PERIOD_3              0x00000C00U
+#define FMC_SDRAM_CLOCK_DISABLE                 (0x00000000U)
+#define FMC_SDRAM_CLOCK_PERIOD_2                (0x00000800U)
+#define FMC_SDRAM_CLOCK_PERIOD_3                (0x00000C00U)
 /**
   * @}
   */
@@ -659,18 +866,18 @@
 /** @defgroup FMC_SDRAM_Read_Burst FMC SDRAM Read Burst
   * @{
   */
-#define FMC_SDRAM_RBURST_DISABLE              0x00000000U
-#define FMC_SDRAM_RBURST_ENABLE               0x00001000U
+#define FMC_SDRAM_RBURST_DISABLE                (0x00000000U)
+#define FMC_SDRAM_RBURST_ENABLE                 (0x00001000U)
 /**
   * @}
   */
-  
+
 /** @defgroup FMC_SDRAM_Read_Pipe_Delay FMC SDRAM Read Pipe Delay
   * @{
   */
-#define FMC_SDRAM_RPIPE_DELAY_0               0x00000000U
-#define FMC_SDRAM_RPIPE_DELAY_1               0x00002000U
-#define FMC_SDRAM_RPIPE_DELAY_2               0x00004000U
+#define FMC_SDRAM_RPIPE_DELAY_0                 (0x00000000U)
+#define FMC_SDRAM_RPIPE_DELAY_1                 (0x00002000U)
+#define FMC_SDRAM_RPIPE_DELAY_2                 (0x00004000U)
 /**
   * @}
   */
@@ -678,13 +885,13 @@
 /** @defgroup FMC_SDRAM_Command_Mode FMC SDRAM Command Mode
   * @{
   */
-#define FMC_SDRAM_CMD_NORMAL_MODE             0x00000000U
-#define FMC_SDRAM_CMD_CLK_ENABLE              0x00000001U
-#define FMC_SDRAM_CMD_PALL                    0x00000002U
-#define FMC_SDRAM_CMD_AUTOREFRESH_MODE        0x00000003U
-#define FMC_SDRAM_CMD_LOAD_MODE               0x00000004U
-#define FMC_SDRAM_CMD_SELFREFRESH_MODE        0x00000005U
-#define FMC_SDRAM_CMD_POWERDOWN_MODE          0x00000006U
+#define FMC_SDRAM_CMD_NORMAL_MODE               (0x00000000U)
+#define FMC_SDRAM_CMD_CLK_ENABLE                (0x00000001U)
+#define FMC_SDRAM_CMD_PALL                      (0x00000002U)
+#define FMC_SDRAM_CMD_AUTOREFRESH_MODE          (0x00000003U)
+#define FMC_SDRAM_CMD_LOAD_MODE                 (0x00000004U)
+#define FMC_SDRAM_CMD_SELFREFRESH_MODE          (0x00000005U)
+#define FMC_SDRAM_CMD_POWERDOWN_MODE            (0x00000006U)
 /**
   * @}
   */
@@ -692,75 +899,62 @@
 /** @defgroup FMC_SDRAM_Command_Target FMC SDRAM Command Target
   * @{
   */
-#define FMC_SDRAM_CMD_TARGET_BANK2            FMC_SDCMR_CTB2
-#define FMC_SDRAM_CMD_TARGET_BANK1            FMC_SDCMR_CTB1
-#define FMC_SDRAM_CMD_TARGET_BANK1_2          0x00000018U
-/**
-  * @}
-  */ 
-
-/** @defgroup FMC_SDRAM_Mode_Status FMC SDRAM Mode Status 
-  * @{
-  */
-#define FMC_SDRAM_NORMAL_MODE                     0x00000000U
-#define FMC_SDRAM_SELF_REFRESH_MODE               FMC_SDSR_MODES1_0
-#define FMC_SDRAM_POWER_DOWN_MODE                 FMC_SDSR_MODES1_1
-/**
-  * @}
-  */ 
- 
-/**
-  * @}
-  */ 
-
-/** @defgroup FMC_LL_Interrupt_definition FMC Interrupt definition  
-  * @{
-  */  
-#define FMC_IT_RISING_EDGE                0x00000008U
-#define FMC_IT_LEVEL                      0x00000010U
-#define FMC_IT_FALLING_EDGE               0x00000020U
-#define FMC_IT_REFRESH_ERROR              0x00004000U
+#define FMC_SDRAM_CMD_TARGET_BANK2              FMC_SDCMR_CTB2
+#define FMC_SDRAM_CMD_TARGET_BANK1              FMC_SDCMR_CTB1
+#define FMC_SDRAM_CMD_TARGET_BANK1_2            (0x00000018U)
 /**
   * @}
   */
-    
-/** @defgroup FMC_LL_Flag_definition FMC Flag definition 
+
+/** @defgroup FMC_SDRAM_Mode_Status FMC SDRAM Mode Status
   * @{
-  */ 
-#define FMC_FLAG_RISING_EDGE                    0x00000001U
-#define FMC_FLAG_LEVEL                          0x00000002U
-#define FMC_FLAG_FALLING_EDGE                   0x00000004U
-#define FMC_FLAG_FEMPT                          0x00000040U
+  */
+#define FMC_SDRAM_NORMAL_MODE                   (0x00000000U)
+#define FMC_SDRAM_SELF_REFRESH_MODE             FMC_SDSR_MODES1_0
+#define FMC_SDRAM_POWER_DOWN_MODE               FMC_SDSR_MODES1_1
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+#endif /* FMC_Bank5_6 */
+
+/** @defgroup FMC_LL_Interrupt_definition FMC Low Layer Interrupt definition
+  * @{
+  */
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
+#define FMC_IT_RISING_EDGE                      (0x00000008U)
+#define FMC_IT_LEVEL                            (0x00000010U)
+#define FMC_IT_FALLING_EDGE                     (0x00000020U)
+#endif /* FMC_Bank3 || FMC_Bank2_3 || FMC_Bank4 */
+#if defined(FMC_Bank5_6)
+#define FMC_IT_REFRESH_ERROR                    (0x00004000U)
+#endif /* FMC_Bank5_6 */
+/**
+  * @}
+  */
+
+/** @defgroup FMC_LL_Flag_definition FMC Low Layer Flag definition
+  * @{
+  */
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FMC_Bank4)
+#define FMC_FLAG_RISING_EDGE                    (0x00000001U)
+#define FMC_FLAG_LEVEL                          (0x00000002U)
+#define FMC_FLAG_FALLING_EDGE                   (0x00000004U)
+#define FMC_FLAG_FEMPT                          (0x00000040U)
+#endif /* FMC_Bank3 || FMC_Bank2_3 || FMC_Bank4 */
+#if defined(FMC_Bank5_6)
 #define FMC_SDRAM_FLAG_REFRESH_IT               FMC_SDSR_RE
 #define FMC_SDRAM_FLAG_BUSY                     FMC_SDSR_BUSY
 #define FMC_SDRAM_FLAG_REFRESH_ERROR            FMC_SDRTR_CRE
+#endif /* FMC_Bank5_6 */
 /**
   * @}
   */
 
-/** @defgroup FMC_LL_Alias_definition  FMC Alias definition
-  * @{
-  */
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-   #define FMC_NAND_TypeDef               FMC_Bank3_TypeDef
-#else 
-   #define FMC_NAND_TypeDef               FMC_Bank2_3_TypeDef
-   #define FMC_PCCARD_TypeDef             FMC_Bank4_TypeDef
-#endif /* STM32F446xx || STM32F469xx || STM32F479xx */
-   #define FMC_NORSRAM_TypeDef            FMC_Bank1_TypeDef
-   #define FMC_NORSRAM_EXTENDED_TypeDef   FMC_Bank1E_TypeDef
-   #define FMC_SDRAM_TypeDef              FMC_Bank5_6_TypeDef
-
-
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-   #define FMC_NAND_DEVICE                FMC_Bank3
-#else 
-   #define FMC_NAND_DEVICE                FMC_Bank2_3
-   #define FMC_PCCARD_DEVICE              FMC_Bank4
-#endif /* STM32F446xx || STM32F469xx || STM32F479xx */
-   #define FMC_NORSRAM_DEVICE             FMC_Bank1
-   #define FMC_NORSRAM_EXTENDED_DEVICE    FMC_Bank1E
-   #define FMC_SDRAM_DEVICE               FMC_Bank5_6
 /**
   * @}
   */
@@ -770,291 +964,282 @@
   */
 
 /* Private macro -------------------------------------------------------------*/
-/** @defgroup FMC_LL_Private_Macros FMC Private Macros
+/** @defgroup FMC_LL_Private_Macros FMC_LL  Private Macros
+  * @{
+  */
+#if defined(FMC_Bank1)
+/** @defgroup FMC_LL_NOR_Macros FMC NOR/SRAM Macros
+  * @brief macros to handle NOR device enable/disable and read/write operations
   * @{
   */
 
-/** @defgroup FMC_LL_NOR_Macros FMC NOR/SRAM Macros
- *  @brief macros to handle NOR device enable/disable and read/write operations
- *  @{
- */
 /**
   * @brief  Enable the NORSRAM device access.
   * @param  __INSTANCE__ FMC_NORSRAM Instance
-  * @param  __BANK__ FMC_NORSRAM Bank     
+  * @param  __BANK__ FMC_NORSRAM Bank
   * @retval None
-  */ 
-#define __FMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__)  ((__INSTANCE__)->BTCR[(__BANK__)] |= FMC_BCR1_MBKEN)
+  */
+#define __FMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__)  ((__INSTANCE__)->BTCR[(__BANK__)]\
+                                                       |= FMC_BCR1_MBKEN)
 
 /**
   * @brief  Disable the NORSRAM device access.
   * @param  __INSTANCE__ FMC_NORSRAM Instance
-  * @param  __BANK__ FMC_NORSRAM Bank   
+  * @param  __BANK__ FMC_NORSRAM Bank
   * @retval None
-  */ 
-#define __FMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] &= ~FMC_BCR1_MBKEN)  
+  */
+#define __FMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)]\
+                                                       &= ~FMC_BCR1_MBKEN)
+
 /**
   * @}
-  */ 
+  */
+#endif /* FMC_Bank1 */
 
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
 /** @defgroup FMC_LL_NAND_Macros FMC NAND Macros
- *  @brief macros to handle NAND device enable/disable
- *  @{
- */
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) 
-/**
-  * @brief  Enable the NAND device access.
-  * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__ FMC_NAND Bank    
-  * @retval None
-  */  
-#define __FMC_NAND_ENABLE(__INSTANCE__, __BANK__)  ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
+  *  @brief macros to handle NAND device enable/disable
+  *  @{
+  */
 
 /**
-  * @brief  Disable the NAND device access.
-  * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__ FMC_NAND Bank  
-  * @retval None
-  */
-#define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->PCR &= ~FMC_PCR_PBKEN)
-#else /* defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
-/**
   * @brief  Enable the NAND device access.
   * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__ FMC_NAND Bank    
+  * @param  __BANK__     FMC_NAND Bank
   * @retval None
-  */  
+  */
+#if defined(FMC_Bank2_3)
+#if defined (FMC_PCR_PBKEN)
+#define __FMC_NAND_ENABLE(__INSTANCE__)  ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
+#else
 #define __FMC_NAND_ENABLE(__INSTANCE__, __BANK__)  (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 |= FMC_PCR2_PBKEN): \
-                                                    ((__INSTANCE__)->PCR3 |= FMC_PCR3_PBKEN))
+                                                             ((__INSTANCE__)->PCR3 |= FMC_PCR3_PBKEN))
+#endif /* FMC_PCR_PBKEN */
+#else
+#define __FMC_NAND_ENABLE(__INSTANCE__)  ((__INSTANCE__)->PCR |= FMC_PCR_PBKEN)
+#endif /* FMC_Bank2_3 */
 
 /**
   * @brief  Disable the NAND device access.
   * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__ FMC_NAND Bank  
+  * @param  __BANK__     FMC_NAND Bank
   * @retval None
   */
-#define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 &= ~FMC_PCR2_PBKEN): \
-                                                    ((__INSTANCE__)->PCR3 &= ~FMC_PCR3_PBKEN))
+#if defined(FMC_Bank2_3)
+#if  defined (FMC_PCR_PBKEN)
+#define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
+#else
+#define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FMC_NAND_BANK2)? CLEAR_BIT((__INSTANCE__)->PCR2, FMC_PCR2_PBKEN): \
+                                                             CLEAR_BIT((__INSTANCE__)->PCR3, FMC_PCR3_PBKEN))
+#endif /* FMC_PCR_PBKEN */
+#else
+#define __FMC_NAND_DISABLE(__INSTANCE__, __BANK__) CLEAR_BIT((__INSTANCE__)->PCR, FMC_PCR_PBKEN)
+#endif /* FMC_Bank2_3 */
 
-#endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) */
 /**
   * @}
-  */ 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+  */
+#endif /* FMC_Bank3 || FMC_Bank2_3 */
+
+#if defined(FMC_Bank4)
 /** @defgroup FMC_LL_PCCARD_Macros FMC PCCARD Macros
- *  @brief macros to handle SRAM read/write operations 
- *  @{
- */
+  *  @brief macros to handle PCCARD read/write operations
+  *  @{
+  */
 /**
   * @brief  Enable the PCCARD device access.
-  * @param  __INSTANCE__ FMC_PCCARD Instance  
+  * @param  __INSTANCE__ FMC_PCCARD Instance
   * @retval None
-  */ 
+  */
 #define __FMC_PCCARD_ENABLE(__INSTANCE__)  ((__INSTANCE__)->PCR4 |= FMC_PCR4_PBKEN)
 
 /**
   * @brief  Disable the PCCARD device access.
-  * @param  __INSTANCE__ FMC_PCCARD Instance     
+  * @param  __INSTANCE__ FMC_PCCARD Instance
   * @retval None
-  */ 
+  */
 #define __FMC_PCCARD_DISABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 &= ~FMC_PCR4_PBKEN)
 /**
   * @}
   */
-#endif /* defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
 
-/** @defgroup FMC_LL_Flag_Interrupt_Macros FMC Flag&Interrupt Macros
- *  @brief macros to handle FMC flags and interrupts
- * @{
- */ 
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#endif
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
+/** @defgroup FMC_LL_NAND_Interrupt FMC NAND Interrupt
+  * @brief macros to handle NAND interrupts
+  * @{
+  */
+
 /**
   * @brief  Enable the NAND device interrupt.
   * @param  __INSTANCE__  FMC_NAND instance
-  * @param  __BANK__      FMC_NAND Bank     
-  * @param  __INTERRUPT__ FMC_NAND interrupt 
-  *         This parameter can be any combination of the following values:
-  *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
-  *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.       
-  * @retval None
-  */  
-#define __FMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  ((__INSTANCE__)->SR |= (__INTERRUPT__))
-
-/**
-  * @brief  Disable the NAND device interrupt.
-  * @param  __INSTANCE__  FMC_NAND Instance
-  * @param  __BANK__      FMC_NAND Bank    
+  * @param  __BANK__     FMC_NAND Bank
   * @param  __INTERRUPT__ FMC_NAND interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.   
+  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
   */
-#define __FMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  ((__INSTANCE__)->SR &= ~(__INTERRUPT__)) 
-
-/**
-  * @brief  Get flag status of the NAND device.
-  * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__     FMC_NAND Bank      
-  * @param  __FLAG__ FMC_NAND flag
-  *         This parameter can be any combination of the following values:
-  *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
-  *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
-  *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.   
-  * @retval The state of FLAG (SET or RESET).
-  */
-#define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__INSTANCE__)->SR &(__FLAG__)) == (__FLAG__))
-/**
-  * @brief  Clear flag status of the NAND device.
-  * @param  __INSTANCE__ FMC_NAND Instance  
-  * @param  __BANK__     FMC_NAND Bank  
-  * @param  __FLAG__ FMC_NAND flag
-  *         This parameter can be any combination of the following values:
-  *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
-  *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
-  *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.   
-  * @retval None
-  */
-#define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__)  ((__INSTANCE__)->SR &= ~(__FLAG__))
-#else /* defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
-/**
-  * @brief  Enable the NAND device interrupt.
-  * @param  __INSTANCE__  FMC_NAND instance
-  * @param  __BANK__      FMC_NAND Bank     
-  * @param  __INTERRUPT__ FMC_NAND interrupt 
-  *         This parameter can be any combination of the following values:
-  *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
-  *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.       
-  * @retval None
-  */  
+#if defined(FMC_Bank2_3)
 #define __FMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 |= (__INTERRUPT__)): \
-                                                                                                       ((__INSTANCE__)->SR3 |= (__INTERRUPT__)))
+                                                                               ((__INSTANCE__)->SR3 |= (__INTERRUPT__)))
+#else
+#define __FMC_NAND_ENABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR |= (__INTERRUPT__))
+#endif /* FMC_Bank2_3 */
 
 /**
   * @brief  Disable the NAND device interrupt.
   * @param  __INSTANCE__  FMC_NAND Instance
-  * @param  __BANK__      FMC_NAND Bank    
+  * @param  __BANK__     FMC_NAND Bank
   * @param  __INTERRUPT__ FMC_NAND interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.   
+  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
   */
+#if defined(FMC_Bank2_3)
 #define __FMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__INTERRUPT__)): \
-                                                                                                        ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__))) 
+                                                                                ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__)))
+#else
+#define __FMC_NAND_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR &= ~(__INTERRUPT__))
+#endif /* FMC_Bank2_3 */
 
 /**
   * @brief  Get flag status of the NAND device.
   * @param  __INSTANCE__ FMC_NAND Instance
-  * @param  __BANK__     FMC_NAND Bank      
-  * @param  __FLAG__ FMC_NAND flag
+  * @param  __BANK__     FMC_NAND Bank
+  * @param  __FLAG__     FMC_NAND flag
   *         This parameter can be any combination of the following values:
   *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.
   * @retval The state of FLAG (SET or RESET).
   */
+#if defined(FMC_Bank2_3)
 #define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__BANK__) == FMC_NAND_BANK2)? (((__INSTANCE__)->SR2 &(__FLAG__)) == (__FLAG__)): \
-                                                                                                 (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__)))
+                                                                         (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__)))
+#else
+#define __FMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__INSTANCE__)->SR &(__FLAG__)) == (__FLAG__))
+#endif /* FMC_Bank2_3 */
+
 /**
   * @brief  Clear flag status of the NAND device.
-  * @param  __INSTANCE__ FMC_NAND Instance  
-  * @param  __BANK__     FMC_NAND Bank  
-  * @param  __FLAG__ FMC_NAND flag
+  * @param  __INSTANCE__ FMC_NAND Instance
+  * @param  __BANK__     FMC_NAND Bank
+  * @param  __FLAG__     FMC_NAND flag
   *         This parameter can be any combination of the following values:
   *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.
   * @retval None
   */
+#if defined(FMC_Bank2_3)
 #define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__BANK__) == FMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__FLAG__)): \
-                                                                                                   ((__INSTANCE__)->SR3 &= ~(__FLAG__)))
-#endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) */
+                                                                           ((__INSTANCE__)->SR3 &= ~(__FLAG__)))
+#else
+#define __FMC_NAND_CLEAR_FLAG(__INSTANCE__, __FLAG__)  ((__INSTANCE__)->SR &= ~(__FLAG__))
+#endif /* FMC_Bank2_3 */
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+/**
+  * @}
+  */
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
+
+#if defined(FMC_Bank4)
+/** @defgroup FMC_LL_PCCARD_Interrupt FMC PCCARD Interrupt
+  * @brief macros to handle PCCARD interrupts
+  * @{
+  */
+
 /**
   * @brief  Enable the PCCARD device interrupt.
-  * @param  __INSTANCE__ FMC_PCCARD instance  
-  * @param  __INTERRUPT__ FMC_PCCARD interrupt 
+  * @param  __INSTANCE__ FMC_PCCARD instance
+  * @param  __INTERRUPT__ FMC_PCCARD interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.       
+  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
-  */ 
+  */
 #define __FMC_PCCARD_ENABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 |= (__INTERRUPT__))
 
 /**
   * @brief  Disable the PCCARD device interrupt.
-  * @param  __INSTANCE__ FMC_PCCARD instance  
-  * @param  __INTERRUPT__ FMC_PCCARD interrupt 
+  * @param  __INSTANCE__ FMC_PCCARD instance
+  * @param  __INTERRUPT__ FMC_PCCARD interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FMC_IT_LEVEL: Interrupt level.
-  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.       
+  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
-  */ 
-#define __FMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__)) 
+  */
+#define __FMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__))
 
 /**
   * @brief  Get flag status of the PCCARD device.
-  * @param  __INSTANCE__ FMC_PCCARD instance  
+  * @param  __INSTANCE__ FMC_PCCARD instance
   * @param  __FLAG__ FMC_PCCARD flag
   *         This parameter can be any combination of the following values:
   *            @arg  FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg  FMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg  FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg  FMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg  FMC_FLAG_FEMPT: FIFO empty flag.
   * @retval The state of FLAG (SET or RESET).
   */
 #define __FMC_PCCARD_GET_FLAG(__INSTANCE__, __FLAG__)  (((__INSTANCE__)->SR4 &(__FLAG__)) == (__FLAG__))
 
 /**
   * @brief  Clear flag status of the PCCARD device.
-  * @param  __INSTANCE__ FMC_PCCARD instance  
+  * @param  __INSTANCE__ FMC_PCCARD instance
   * @param  __FLAG__ FMC_PCCARD flag
   *         This parameter can be any combination of the following values:
   *            @arg  FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg  FMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg  FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg  FMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg  FMC_FLAG_FEMPT: FIFO empty flag.
   * @retval None
   */
 #define __FMC_PCCARD_CLEAR_FLAG(__INSTANCE__, __FLAG__)  ((__INSTANCE__)->SR4 &= ~(__FLAG__))
-#endif /* defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
+
+/**
+  * @}
+  */
+#endif
+
+#if defined(FMC_Bank5_6)
+/** @defgroup FMC_LL_SDRAM_Interrupt FMC SDRAM Interrupt
+  * @brief macros to handle SDRAM interrupts
+  * @{
+  */
 
 /**
   * @brief  Enable the SDRAM device interrupt.
-  * @param  __INSTANCE__ FMC_SDRAM instance  
-  * @param  __INTERRUPT__ FMC_SDRAM interrupt 
+  * @param  __INSTANCE__  FMC_SDRAM instance
+  * @param  __INTERRUPT__ FMC_SDRAM interrupt
   *         This parameter can be any combination of the following values:
-  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error      
+  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error
   * @retval None
   */
 #define __FMC_SDRAM_ENABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SDRTR |= (__INTERRUPT__))
 
 /**
   * @brief  Disable the SDRAM device interrupt.
-  * @param  __INSTANCE__ FMC_SDRAM instance  
-  * @param  __INTERRUPT__ FMC_SDRAM interrupt 
+  * @param  __INSTANCE__  FMC_SDRAM instance
+  * @param  __INTERRUPT__ FMC_SDRAM interrupt
   *         This parameter can be any combination of the following values:
-  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error      
+  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error
   * @retval None
   */
 #define __FMC_SDRAM_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SDRTR &= ~(__INTERRUPT__))
 
 /**
   * @brief  Get flag status of the SDRAM device.
-  * @param  __INSTANCE__ FMC_SDRAM instance  
-  * @param  __FLAG__ FMC_SDRAM flag
+  * @param  __INSTANCE__ FMC_SDRAM instance
+  * @param  __FLAG__     FMC_SDRAM flag
   *         This parameter can be any combination of the following values:
   *            @arg FMC_SDRAM_FLAG_REFRESH_IT: Interrupt refresh error.
   *            @arg FMC_SDRAM_FLAG_BUSY: SDRAM busy flag.
@@ -1065,236 +1250,52 @@
 
 /**
   * @brief  Clear flag status of the SDRAM device.
-  * @param  __INSTANCE__ FMC_SDRAM instance  
-  * @param  __FLAG__ FMC_SDRAM flag
+  * @param  __INSTANCE__ FMC_SDRAM instance
+  * @param  __FLAG__     FMC_SDRAM flag
   *         This parameter can be any combination of the following values:
   *           @arg FMC_SDRAM_FLAG_REFRESH_ERROR
   * @retval None
   */
 #define __FMC_SDRAM_CLEAR_FLAG(__INSTANCE__, __FLAG__)  ((__INSTANCE__)->SDRTR |= (__FLAG__))
+
 /**
   * @}
   */
-
-/** @defgroup FSMC_LL_Assert_Macros FSMC Assert Macros
-  * @{
-  */
-#define IS_FMC_NORSRAM_BANK(BANK) (((BANK) == FMC_NORSRAM_BANK1) || \
-                                   ((BANK) == FMC_NORSRAM_BANK2) || \
-                                   ((BANK) == FMC_NORSRAM_BANK3) || \
-                                   ((BANK) == FMC_NORSRAM_BANK4))
-
-#define IS_FMC_MUX(__MUX__) (((__MUX__) == FMC_DATA_ADDRESS_MUX_DISABLE) || \
-                              ((__MUX__) == FMC_DATA_ADDRESS_MUX_ENABLE))
-
-#define IS_FMC_MEMORY(__MEMORY__) (((__MEMORY__) == FMC_MEMORY_TYPE_SRAM) || \
-                                    ((__MEMORY__) == FMC_MEMORY_TYPE_PSRAM)|| \
-                                    ((__MEMORY__) == FMC_MEMORY_TYPE_NOR))
-
-#define IS_FMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_8)  || \
-                                                 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_16) || \
-                                                 ((__WIDTH__) == FMC_NORSRAM_MEM_BUS_WIDTH_32))
-
-#define IS_FMC_ACCESS_MODE(__MODE__) (((__MODE__) == FMC_ACCESS_MODE_A) || \
-                                       ((__MODE__) == FMC_ACCESS_MODE_B) || \
-                                       ((__MODE__) == FMC_ACCESS_MODE_C) || \
-                                       ((__MODE__) == FMC_ACCESS_MODE_D))
-
-#define IS_FMC_NAND_BANK(BANK) (((BANK) == FMC_NAND_BANK2) || \
-                                ((BANK) == FMC_NAND_BANK3))
-
-#define IS_FMC_WAIT_FEATURE(FEATURE) (((FEATURE) == FMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \
-                                      ((FEATURE) == FMC_NAND_PCC_WAIT_FEATURE_ENABLE))
-
-#define IS_FMC_NAND_MEMORY_WIDTH(WIDTH) (((WIDTH) == FMC_NAND_PCC_MEM_BUS_WIDTH_8) || \
-                                         ((WIDTH) == FMC_NAND_PCC_MEM_BUS_WIDTH_16))
-
-#define IS_FMC_ECC_STATE(STATE) (((STATE) == FMC_NAND_ECC_DISABLE) || \
-                                 ((STATE) == FMC_NAND_ECC_ENABLE))
-
-#define IS_FMC_ECCPAGE_SIZE(SIZE) (((SIZE) == FMC_NAND_ECC_PAGE_SIZE_256BYTE)  || \
-                                   ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_512BYTE)  || \
-                                   ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
-                                   ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
-                                   ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
-                                   ((SIZE) == FMC_NAND_ECC_PAGE_SIZE_8192BYTE))
-
-#define IS_FMC_TCLR_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_TAR_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_SETUP_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_WAIT_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_HOLD_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_HIZ_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_DEVICE)
-
-#define IS_FMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NORSRAM_EXTENDED_DEVICE)
-
-#define IS_FMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_NAND_DEVICE)
-
-#define IS_FMC_PCCARD_DEVICE(__INSTANCE__) ((__INSTANCE__) == FMC_PCCARD_DEVICE)
-
-#define IS_FMC_BURSTMODE(__STATE__) (((__STATE__) == FMC_BURST_ACCESS_MODE_DISABLE) || \
-                                     ((__STATE__) == FMC_BURST_ACCESS_MODE_ENABLE))
-
-#define IS_FMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_LOW) || \
-                                            ((__POLARITY__) == FMC_WAIT_SIGNAL_POLARITY_HIGH))
-
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
-#define IS_FMC_WRAP_MODE(__MODE__) (((__MODE__) == FMC_WRAP_MODE_DISABLE) || \
-                                    ((__MODE__) == FMC_WRAP_MODE_ENABLE))
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ 
-
-#define IS_FMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FMC_WAIT_TIMING_BEFORE_WS) || \
-                                                ((__ACTIVE__) == FMC_WAIT_TIMING_DURING_WS)) 
-
-#define IS_FMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FMC_WRITE_OPERATION_DISABLE) || \
-                                                ((__OPERATION__) == FMC_WRITE_OPERATION_ENABLE))
-
-#define IS_FMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FMC_WAIT_SIGNAL_DISABLE) || \
-                                          ((__SIGNAL__) == FMC_WAIT_SIGNAL_ENABLE))
-
-#define IS_FMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FMC_EXTENDED_MODE_DISABLE) || \
-                                         ((__MODE__) == FMC_EXTENDED_MODE_ENABLE))
-
-#define IS_FMC_ASYNWAIT(__STATE__) (((__STATE__) == FMC_ASYNCHRONOUS_WAIT_DISABLE) || \
-                                     ((__STATE__) == FMC_ASYNCHRONOUS_WAIT_ENABLE))
-
-#define IS_FMC_WRITE_BURST(__BURST__) (((__BURST__) == FMC_WRITE_BURST_DISABLE) || \
-                                        ((__BURST__) == FMC_WRITE_BURST_ENABLE))
-
-#define IS_FMC_CONTINOUS_CLOCK(CCLOCK) (((CCLOCK) == FMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
-                                        ((CCLOCK) == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
-
-#define IS_FMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U)
-
-#define IS_FMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U))
-
-#define IS_FMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U))
-
-#define IS_FMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U)
-
-#define IS_FMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U))
-
-#define IS_FMC_CLK_DIV(DIV) (((DIV) > 1U) && ((DIV) <= 16U))
-
-#define IS_FMC_SDRAM_BANK(BANK) (((BANK) == FMC_SDRAM_BANK1) || \
-                                 ((BANK) == FMC_SDRAM_BANK2))
-
-#define IS_FMC_COLUMNBITS_NUMBER(COLUMN) (((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_8)  || \
-                                          ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_9)  || \
-                                          ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_10) || \
-                                          ((COLUMN) == FMC_SDRAM_COLUMN_BITS_NUM_11))
-
-#define IS_FMC_ROWBITS_NUMBER(ROW) (((ROW) == FMC_SDRAM_ROW_BITS_NUM_11) || \
-                                    ((ROW) == FMC_SDRAM_ROW_BITS_NUM_12) || \
-                                    ((ROW) == FMC_SDRAM_ROW_BITS_NUM_13))
-
-#define IS_FMC_SDMEMORY_WIDTH(WIDTH) (((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_8)  || \
-                                      ((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_16) || \
-                                      ((WIDTH) == FMC_SDRAM_MEM_BUS_WIDTH_32))
-
-#define IS_FMC_INTERNALBANK_NUMBER(NUMBER) (((NUMBER) == FMC_SDRAM_INTERN_BANKS_NUM_2) || \
-                                            ((NUMBER) == FMC_SDRAM_INTERN_BANKS_NUM_4))
-
-
-#define IS_FMC_CAS_LATENCY(LATENCY) (((LATENCY) == FMC_SDRAM_CAS_LATENCY_1) || \
-                                     ((LATENCY) == FMC_SDRAM_CAS_LATENCY_2) || \
-                                     ((LATENCY) == FMC_SDRAM_CAS_LATENCY_3))
-
-#define IS_FMC_SDCLOCK_PERIOD(PERIOD) (((PERIOD) == FMC_SDRAM_CLOCK_DISABLE)  || \
-                                       ((PERIOD) == FMC_SDRAM_CLOCK_PERIOD_2) || \
-                                       ((PERIOD) == FMC_SDRAM_CLOCK_PERIOD_3))
-
-#define IS_FMC_READ_BURST(RBURST) (((RBURST) == FMC_SDRAM_RBURST_DISABLE) || \
-                                   ((RBURST) == FMC_SDRAM_RBURST_ENABLE))
-
-
-#define IS_FMC_READPIPE_DELAY(DELAY) (((DELAY) == FMC_SDRAM_RPIPE_DELAY_0) || \
-                                      ((DELAY) == FMC_SDRAM_RPIPE_DELAY_1) || \
-                                      ((DELAY) == FMC_SDRAM_RPIPE_DELAY_2))
-
-#define IS_FMC_LOADTOACTIVE_DELAY(DELAY) (((DELAY) > 0U) && ((DELAY) <= 16U))
-
-#define IS_FMC_EXITSELFREFRESH_DELAY(DELAY) (((DELAY) > 0U) && ((DELAY) <= 16U))
- 
-#define IS_FMC_SELFREFRESH_TIME(TIME) (((TIME) > 0U) && ((TIME) <= 16U))
- 
-#define IS_FMC_ROWCYCLE_DELAY(DELAY) (((DELAY) > 0U) && ((DELAY) <= 16U))
-  
-#define IS_FMC_WRITE_RECOVERY_TIME(TIME) (((TIME) > 0U) && ((TIME) <= 16U))
- 
-#define IS_FMC_RP_DELAY(DELAY) (((DELAY) > 0U) && ((DELAY) <= 16U))
-
-#define IS_FMC_RCD_DELAY(DELAY) (((DELAY) > 0U) && ((DELAY) <= 16U))
-
-#define IS_FMC_COMMAND_MODE(COMMAND) (((COMMAND) == FMC_SDRAM_CMD_NORMAL_MODE)      || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_CLK_ENABLE)       || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_PALL)             || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_AUTOREFRESH_MODE) || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_LOAD_MODE)        || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_SELFREFRESH_MODE) || \
-                                      ((COMMAND) == FMC_SDRAM_CMD_POWERDOWN_MODE))
-
-#define IS_FMC_COMMAND_TARGET(TARGET) (((TARGET) == FMC_SDRAM_CMD_TARGET_BANK1) || \
-                                       ((TARGET) == FMC_SDRAM_CMD_TARGET_BANK2) || \
-                                       ((TARGET) == FMC_SDRAM_CMD_TARGET_BANK1_2))
-
-#define IS_FMC_AUTOREFRESH_NUMBER(NUMBER) (((NUMBER) > 0U) && ((NUMBER) <= 16U))
-
-#define IS_FMC_MODE_REGISTER(CONTENT) ((CONTENT) <= 8191U)
-
-#define IS_FMC_REFRESH_RATE(RATE) ((RATE) <= 8191U)
-
-#define IS_FMC_SDRAM_DEVICE(INSTANCE) ((INSTANCE) == FMC_SDRAM_DEVICE)
-
-#define IS_FMC_WRITE_PROTECTION(WRITE) (((WRITE) == FMC_SDRAM_WRITE_PROTECTION_DISABLE) || \
-                                        ((WRITE) == FMC_SDRAM_WRITE_PROTECTION_ENABLE))
-
-#define IS_FMC_PAGESIZE(SIZE) (((SIZE) == FMC_PAGE_SIZE_NONE) || \
-                               ((SIZE) == FMC_PAGE_SIZE_128)  || \
-                               ((SIZE) == FMC_PAGE_SIZE_256)  || \
-                               ((SIZE) == FMC_PAGE_SIZE_512)  || \
-                               ((SIZE) == FMC_PAGE_SIZE_1024))
-
-#if defined (STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-#define IS_FMC_WRITE_FIFO(FIFO) (((FIFO) == FMC_WRITE_FIFO_DISABLE) || \
-                                 ((FIFO) == FMC_WRITE_FIFO_ENABLE))
-#endif /* STM32F446xx || STM32F469xx || STM32F479xx */
-
+#endif /* FMC_Bank5_6 */
 /**
   * @}
   */
 
 /**
   * @}
-  */ 
+  */
 
 /* Private functions ---------------------------------------------------------*/
 /** @defgroup FMC_LL_Private_Functions FMC LL Private Functions
   *  @{
   */
 
+#if defined(FMC_Bank1)
 /** @defgroup FMC_LL_NORSRAM  NOR SRAM
   *  @{
   */
-/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group1 NOR SRAM Initialization/de-initialization functions 
+/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group1 NOR SRAM Initialization/de-initialization functions
   *  @{
   */
-HAL_StatusTypeDef  FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef *Init);
-HAL_StatusTypeDef  FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
-HAL_StatusTypeDef  FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode);
-HAL_StatusTypeDef  FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
+HAL_StatusTypeDef  FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device,
+                                    FMC_NORSRAM_InitTypeDef *Init);
+HAL_StatusTypeDef  FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device,
+                                           FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device,
+                                                    FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank,
+                                                    uint32_t ExtendedMode);
+HAL_StatusTypeDef  FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device,
+                                      FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
 /**
   * @}
-  */ 
+  */
 
-/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group2 NOR SRAM Control functions 
+/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group2 NOR SRAM Control functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank);
@@ -1305,45 +1306,54 @@
 /**
   * @}
   */
+#endif /* FMC_Bank1 */
 
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
 /** @defgroup FMC_LL_NAND NAND
   *  @{
   */
-/** @defgroup FMC_LL_NAND_Private_Functions_Group1 NAND Initialization/de-initialization functions 
+/** @defgroup FMC_LL_NAND_Private_Functions_Group1 NAND Initialization/de-initialization functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init);
-HAL_StatusTypeDef  FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
-HAL_StatusTypeDef  FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device,
+                                                    FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device,
+                                                       FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
 HAL_StatusTypeDef  FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank);
 /**
   * @}
   */
 
-/** @defgroup FMC_LL_NAND_Private_Functions_Group2 NAND Control functions 
+/** @defgroup FMC_LL_NAND_Private_Functions_Group2 NAND Control functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank);
 HAL_StatusTypeDef  FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank);
-HAL_StatusTypeDef  FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout);
+HAL_StatusTypeDef  FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
+                                   uint32_t Timeout);
+/**
+  * @}
+  */
+/**
+  * @}
+  */
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
 
-/**
-  * @}
-  */
-/**
-  * @}
-  */
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+#if defined(FMC_Bank4)
 /** @defgroup FMC_LL_PCCARD PCCARD
   *  @{
   */
-/** @defgroup FMC_LL_PCCARD_Private_Functions_Group1 PCCARD Initialization/de-initialization functions 
+/** @defgroup FMC_LL_PCCARD_Private_Functions_Group1 PCCARD Initialization/de-initialization functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_PCCARD_Init(FMC_PCCARD_TypeDef *Device, FMC_PCCARD_InitTypeDef *Init);
-HAL_StatusTypeDef  FMC_PCCARD_CommonSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing);
-HAL_StatusTypeDef  FMC_PCCARD_AttributeSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing);
-HAL_StatusTypeDef  FMC_PCCARD_IOSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing); 
+HAL_StatusTypeDef  FMC_PCCARD_CommonSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                               FMC_NAND_PCC_TimingTypeDef *Timing);
+HAL_StatusTypeDef  FMC_PCCARD_AttributeSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                                  FMC_NAND_PCC_TimingTypeDef *Timing);
+HAL_StatusTypeDef  FMC_PCCARD_IOSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                           FMC_NAND_PCC_TimingTypeDef *Timing);
 HAL_StatusTypeDef  FMC_PCCARD_DeInit(FMC_PCCARD_TypeDef *Device);
 /**
   * @}
@@ -1351,29 +1361,33 @@
 /**
   * @}
   */
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#endif /* FMC_Bank4 */
 
+#if defined(FMC_Bank5_6)
 /** @defgroup FMC_LL_SDRAM SDRAM
   *  @{
   */
-/** @defgroup FMC_LL_SDRAM_Private_Functions_Group1 SDRAM Initialization/de-initialization functions 
+/** @defgroup FMC_LL_SDRAM_Private_Functions_Group1 SDRAM Initialization/de-initialization functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_SDRAM_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_InitTypeDef *Init);
-HAL_StatusTypeDef  FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device,
+                                         FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank);
 HAL_StatusTypeDef  FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
 /**
   * @}
   */
 
-/** @defgroup FMC_LL_SDRAM_Private_Functions_Group2 SDRAM Control functions 
+/** @defgroup FMC_LL_SDRAM_Private_Functions_Group2 SDRAM Control functions
   *  @{
   */
 HAL_StatusTypeDef  FMC_SDRAM_WriteProtection_Enable(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
 HAL_StatusTypeDef  FMC_SDRAM_WriteProtection_Disable(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
-HAL_StatusTypeDef  FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout);
+HAL_StatusTypeDef  FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device,
+                                         FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout);
 HAL_StatusTypeDef  FMC_SDRAM_ProgramRefreshRate(FMC_SDRAM_TypeDef *Device, uint32_t RefreshRate);
-HAL_StatusTypeDef  FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber);
+HAL_StatusTypeDef  FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device,
+                                                  uint32_t AutoRefreshNumber);
 uint32_t           FMC_SDRAM_GetModeStatus(FMC_SDRAM_TypeDef *Device, uint32_t Bank);
 /**
   * @}
@@ -1381,12 +1395,12 @@
 /**
   * @}
   */
+#endif /* FMC_Bank5_6 */
 
 /**
   * @}
   */
 
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
 /**
   * @}
   */
@@ -1394,10 +1408,9 @@
 /**
   * @}
   */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_LL_FMC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_LL_FMC_H */
diff --git a/Inc/stm32f4xx_ll_fmpi2c.h b/Inc/stm32f4xx_ll_fmpi2c.h
index dd08b77..dcc0016 100644
--- a/Inc/stm32f4xx_ll_fmpi2c.h
+++ b/Inc/stm32f4xx_ll_fmpi2c.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1229,7 +1228,7 @@
 __STATIC_INLINE uint32_t LL_FMPI2C_IsEnabledSMBusTimeout(FMPI2C_TypeDef *FMPI2Cx, uint32_t ClockTimeout)
 {
   return ((READ_BIT(FMPI2Cx->TIMEOUTR, (FMPI2C_TIMEOUTR_TIMOUTEN | FMPI2C_TIMEOUTR_TEXTEN)) == \
-                    (ClockTimeout)) ? 1UL : 0UL);
+           (ClockTimeout)) ? 1UL : 0UL);
 }
 
 /**
@@ -2233,5 +2232,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_FMPI2C_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_fsmc.h b/Inc/stm32f4xx_ll_fsmc.h
index 12f3a14..8b0ceb7 100644
--- a/Inc/stm32f4xx_ll_fsmc.h
+++ b/Inc/stm32f4xx_ll_fsmc.h
@@ -6,23 +6,22 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_LL_FSMC_H
-#define __STM32F4xx_LL_FSMC_H
+#ifndef STM32F4xx_LL_FSMC_H
+#define STM32F4xx_LL_FSMC_H
 
 #ifdef __cplusplus
- extern "C" {
+extern "C" {
 #endif
 
 /* Includes ------------------------------------------------------------------*/
@@ -31,152 +30,271 @@
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
-   
+
 /** @addtogroup FSMC_LL
   * @{
   */
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
-/* Private types -------------------------------------------------------------*/
-/** @defgroup FSMC_LL_Private_Types FSMC Private Types
+/** @addtogroup FSMC_LL_Private_Macros
+  * @{
+  */
+#if defined(FSMC_Bank1)
+
+#define IS_FSMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FSMC_NORSRAM_BANK1) || \
+                                       ((__BANK__) == FSMC_NORSRAM_BANK2) || \
+                                       ((__BANK__) == FSMC_NORSRAM_BANK3) || \
+                                       ((__BANK__) == FSMC_NORSRAM_BANK4))
+#define IS_FSMC_MUX(__MUX__) (((__MUX__) == FSMC_DATA_ADDRESS_MUX_DISABLE) || \
+                             ((__MUX__) == FSMC_DATA_ADDRESS_MUX_ENABLE))
+#define IS_FSMC_MEMORY(__MEMORY__) (((__MEMORY__) == FSMC_MEMORY_TYPE_SRAM) || \
+                                   ((__MEMORY__) == FSMC_MEMORY_TYPE_PSRAM)|| \
+                                   ((__MEMORY__) == FSMC_MEMORY_TYPE_NOR))
+#define IS_FSMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_8)  || \
+                                                ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_16) || \
+                                                ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_32))
+#define IS_FSMC_PAGESIZE(__SIZE__) (((__SIZE__) == FSMC_PAGE_SIZE_NONE) || \
+                                   ((__SIZE__) == FSMC_PAGE_SIZE_128) || \
+                                   ((__SIZE__) == FSMC_PAGE_SIZE_256) || \
+                                   ((__SIZE__) == FSMC_PAGE_SIZE_512) || \
+                                   ((__SIZE__) == FSMC_PAGE_SIZE_1024))
+#if defined(FSMC_BCR1_WFDIS)
+#define IS_FSMC_WRITE_FIFO(__FIFO__) (((__FIFO__) == FSMC_WRITE_FIFO_DISABLE) || \
+                                     ((__FIFO__) == FSMC_WRITE_FIFO_ENABLE))
+#endif /* FSMC_BCR1_WFDIS */
+#define IS_FSMC_ACCESS_MODE(__MODE__) (((__MODE__) == FSMC_ACCESS_MODE_A) || \
+                                      ((__MODE__) == FSMC_ACCESS_MODE_B) || \
+                                      ((__MODE__) == FSMC_ACCESS_MODE_C) || \
+                                      ((__MODE__) == FSMC_ACCESS_MODE_D))
+#define IS_FSMC_BURSTMODE(__STATE__) (((__STATE__) == FSMC_BURST_ACCESS_MODE_DISABLE) || \
+                                     ((__STATE__) == FSMC_BURST_ACCESS_MODE_ENABLE))
+#define IS_FSMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_LOW) || \
+                                            ((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_HIGH))
+#define IS_FSMC_WRAP_MODE(__MODE__) (((__MODE__) == FSMC_WRAP_MODE_DISABLE) || \
+                                             ((__MODE__) == FSMC_WRAP_MODE_ENABLE))
+#define IS_FSMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FSMC_WAIT_TIMING_BEFORE_WS) || \
+                                               ((__ACTIVE__) == FSMC_WAIT_TIMING_DURING_WS))
+#define IS_FSMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FSMC_WRITE_OPERATION_DISABLE) || \
+                                               ((__OPERATION__) == FSMC_WRITE_OPERATION_ENABLE))
+#define IS_FSMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FSMC_WAIT_SIGNAL_DISABLE) || \
+                                         ((__SIGNAL__) == FSMC_WAIT_SIGNAL_ENABLE))
+#define IS_FSMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FSMC_EXTENDED_MODE_DISABLE) || \
+                                        ((__MODE__) == FSMC_EXTENDED_MODE_ENABLE))
+#define IS_FSMC_ASYNWAIT(__STATE__) (((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_DISABLE) || \
+                                    ((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_ENABLE))
+#define IS_FSMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U))
+#define IS_FSMC_WRITE_BURST(__BURST__) (((__BURST__) == FSMC_WRITE_BURST_DISABLE) || \
+                                       ((__BURST__) == FSMC_WRITE_BURST_ENABLE))
+#define IS_FSMC_CONTINOUS_CLOCK(__CCLOCK__) (((__CCLOCK__) == FSMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
+                                            ((__CCLOCK__) == FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
+#define IS_FSMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U)
+#define IS_FSMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U))
+#define IS_FSMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U))
+#define IS_FSMC_DATAHOLD_DURATION(__DATAHOLD__) ((__DATAHOLD__) <= 3U)
+#define IS_FSMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U)
+#define IS_FSMC_CLK_DIV(__DIV__) (((__DIV__) > 1U) && ((__DIV__) <= 16U))
+#define IS_FSMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_DEVICE)
+#define IS_FSMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_EXTENDED_DEVICE)
+
+#endif /* FSMC_Bank1 */
+#if  defined(FSMC_Bank2_3)
+
+#define IS_FSMC_NAND_BANK(__BANK__) (((__BANK__) == FSMC_NAND_BANK2) || \
+                                            ((__BANK__) == FSMC_NAND_BANK3))
+#define IS_FSMC_WAIT_FEATURE(__FEATURE__) (((__FEATURE__) == FSMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \
+                                                   ((__FEATURE__) == FSMC_NAND_PCC_WAIT_FEATURE_ENABLE))
+#define IS_FSMC_NAND_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FSMC_NAND_PCC_MEM_BUS_WIDTH_8) || \
+                                                      ((__WIDTH__) == FSMC_NAND_PCC_MEM_BUS_WIDTH_16))
+#define IS_FSMC_ECC_STATE(__STATE__) (((__STATE__) == FSMC_NAND_ECC_DISABLE) || \
+                                     ((__STATE__) == FSMC_NAND_ECC_ENABLE))
+
+#define IS_FSMC_ECCPAGE_SIZE(__SIZE__) (((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_256BYTE)  || \
+                                       ((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_512BYTE)  || \
+                                       ((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
+                                       ((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
+                                       ((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
+                                       ((__SIZE__) == FSMC_NAND_ECC_PAGE_SIZE_8192BYTE))
+#define IS_FSMC_TCLR_TIME(__TIME__) ((__TIME__) <= 255U)
+#define IS_FSMC_TAR_TIME(__TIME__) ((__TIME__) <= 255U)
+#define IS_FSMC_SETUP_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FSMC_WAIT_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FSMC_HOLD_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FSMC_HIZ_TIME(__TIME__) ((__TIME__) <= 254U)
+#define IS_FSMC_NAND_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NAND_DEVICE)
+
+#endif /* FSMC_Bank2_3 */
+#if defined(FSMC_Bank4)
+#define IS_FSMC_PCCARD_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_PCCARD_DEVICE)
+
+#endif /* FSMC_Bank4 */
+
+/**
+  * @}
+  */
+
+/* Exported typedef ----------------------------------------------------------*/
+
+/** @defgroup FSMC_LL_Exported_typedef FSMC Low Layer Exported Types
   * @{
   */
 
-/** 
-  * @brief FSMC NORSRAM Configuration Structure definition
-  */ 
+#if defined(FSMC_Bank1)
+#define FSMC_NORSRAM_TypeDef            FSMC_Bank1_TypeDef
+#define FSMC_NORSRAM_EXTENDED_TypeDef   FSMC_Bank1E_TypeDef
+#endif /* FSMC_Bank1 */
+#if defined(FSMC_Bank2_3)
+#define FSMC_NAND_TypeDef               FSMC_Bank2_3_TypeDef
+#endif /* FSMC_Bank2_3 */
+#if defined(FSMC_Bank4)
+#define FSMC_PCCARD_TypeDef             FSMC_Bank4_TypeDef
+#endif /* FSMC_Bank4 */
+
+#if defined(FSMC_Bank1)
+#define FSMC_NORSRAM_DEVICE             FSMC_Bank1
+#define FSMC_NORSRAM_EXTENDED_DEVICE    FSMC_Bank1E
+#endif /* FSMC_Bank1 */
+#if defined(FSMC_Bank2_3)
+#define FSMC_NAND_DEVICE                FSMC_Bank2_3
+#endif /* FSMC_Bank2_3 */
+#if defined(FSMC_Bank4)
+#define FSMC_PCCARD_DEVICE              FSMC_Bank4
+#endif /* FSMC_Bank4 */
+
+#if defined(FSMC_Bank1)
+/**
+  * @brief  FSMC NORSRAM Configuration Structure definition
+  */
 typedef struct
 {
   uint32_t NSBank;                       /*!< Specifies the NORSRAM memory device that will be used.
-                                              This parameter can be a value of @ref FSMC_NORSRAM_Bank                     */
+                                              This parameter can be a value of @ref FSMC_NORSRAM_Bank                  */
 
   uint32_t DataAddressMux;               /*!< Specifies whether the address and data values are
-                                              multiplexed on the data bus or not. 
-                                              This parameter can be a value of @ref FSMC_Data_Address_Bus_Multiplexing    */
+                                              multiplexed on the data bus or not.
+                                              This parameter can be a value of @ref FSMC_Data_Address_Bus_Multiplexing */
 
   uint32_t MemoryType;                   /*!< Specifies the type of external memory attached to
                                               the corresponding memory device.
-                                              This parameter can be a value of @ref FSMC_Memory_Type                      */
+                                              This parameter can be a value of @ref FSMC_Memory_Type                   */
 
   uint32_t MemoryDataWidth;              /*!< Specifies the external memory device width.
-                                              This parameter can be a value of @ref FSMC_NORSRAM_Data_Width               */
+                                              This parameter can be a value of @ref FSMC_NORSRAM_Data_Width            */
 
   uint32_t BurstAccessMode;              /*!< Enables or disables the burst access mode for Flash memory,
                                               valid only with synchronous burst Flash memories.
-                                              This parameter can be a value of @ref FSMC_Burst_Access_Mode                */
+                                              This parameter can be a value of @ref FSMC_Burst_Access_Mode             */
 
   uint32_t WaitSignalPolarity;           /*!< Specifies the wait signal polarity, valid only when accessing
                                               the Flash memory in burst mode.
-                                              This parameter can be a value of @ref FSMC_Wait_Signal_Polarity             */
+                                              This parameter can be a value of @ref FSMC_Wait_Signal_Polarity          */
 
   uint32_t WrapMode;                     /*!< Enables or disables the Wrapped burst access mode for Flash
                                               memory, valid only when accessing Flash memories in burst mode.
-                                              This parameter can be a value of @ref FSMC_Wrap_Mode                        
-                                              This mode is available only for the STM32F405/407/4015/417xx devices        */
+                                              This parameter can be a value of @ref FSMC_Wrap_Mode
+                                              This mode is available only for the STM32F405/407/4015/417xx devices             */
 
   uint32_t WaitSignalActive;             /*!< Specifies if the wait signal is asserted by the memory one
                                               clock cycle before the wait state or during the wait state,
-                                              valid only when accessing memories in burst mode. 
-                                              This parameter can be a value of @ref FSMC_Wait_Timing                      */
+                                              valid only when accessing memories in burst mode.
+                                              This parameter can be a value of @ref FSMC_Wait_Timing                   */
 
-  uint32_t WriteOperation;               /*!< Enables or disables the write operation in the selected device by the FSMC. 
-                                              This parameter can be a value of @ref FSMC_Write_Operation                  */
+  uint32_t WriteOperation;               /*!< Enables or disables the write operation in the selected device by the FSMC.
+                                              This parameter can be a value of @ref FSMC_Write_Operation               */
 
   uint32_t WaitSignal;                   /*!< Enables or disables the wait state insertion via wait
-                                              signal, valid for Flash memory access in burst mode. 
-                                              This parameter can be a value of @ref FSMC_Wait_Signal                      */
+                                              signal, valid for Flash memory access in burst mode.
+                                              This parameter can be a value of @ref FSMC_Wait_Signal                   */
 
   uint32_t ExtendedMode;                 /*!< Enables or disables the extended mode.
-                                              This parameter can be a value of @ref FSMC_Extended_Mode                    */
+                                              This parameter can be a value of @ref FSMC_Extended_Mode                 */
 
   uint32_t AsynchronousWait;             /*!< Enables or disables wait signal during asynchronous transfers,
                                               valid only with asynchronous Flash memories.
-                                              This parameter can be a value of @ref FSMC_AsynchronousWait                 */
+                                              This parameter can be a value of @ref FSMC_AsynchronousWait              */
 
   uint32_t WriteBurst;                   /*!< Enables or disables the write burst operation.
-                                              This parameter can be a value of @ref FSMC_Write_Burst                      */
+                                              This parameter can be a value of @ref FSMC_Write_Burst                   */
 
-  uint32_t ContinuousClock;              /*!< Enables or disables the FMC clock output to external memory devices.
-                                              This parameter is only enabled through the FMC_BCR1 register, and don't care 
-                                              through FMC_BCR2..4 registers.
-                                              This parameter can be a value of @ref FMC_Continous_Clock    
-                                              This mode is available only for the STM32F412Vx/Zx/Rx devices                 */
+  uint32_t ContinuousClock;              /*!< Enables or disables the FSMC clock output to external memory devices.
+                                              This parameter is only enabled through the FSMC_BCR1 register,
+                                              and don't care through FSMC_BCR2..4 registers.
+                                              This parameter can be a value of @ref FSMC_Continous_Clock
+                                              This mode is available only for the STM32F412Vx/Zx/Rx devices           */
 
-  uint32_t WriteFifo;                    /*!< Enables or disables the write FIFO used by the FMC controller.
-                                              This parameter is only enabled through the FMC_BCR1 register, and don't care 
-                                              through FMC_BCR2..4 registers.
-                                              This parameter can be a value of @ref FMC_Write_FIFO
-                                              This mode is available only for the STM32F412Vx/Vx devices                    */
+  uint32_t WriteFifo;                    /*!< Enables or disables the write FIFO used by the FSMC controller.
+                                              This parameter is only enabled through the FSMC_BCR1 register,
+                                              and don't care through FSMC_BCR2..4 registers.
+                                              This parameter can be a value of @ref FSMC_Write_FIFO
+                                              This mode is available only for the STM32F412Vx/Vx devices              */
 
   uint32_t PageSize;                     /*!< Specifies the memory page size.
-                                              This parameter can be a value of @ref FMC_Page_Size                   */
-}FSMC_NORSRAM_InitTypeDef;
+                                              This parameter can be a value of @ref FSMC_Page_Size                     */
+} FSMC_NORSRAM_InitTypeDef;
 
-/** 
-  * @brief FSMC NORSRAM Timing parameters structure definition
+/**
+  * @brief  FSMC NORSRAM Timing parameters structure definition
   */
 typedef struct
 {
   uint32_t AddressSetupTime;             /*!< Defines the number of HCLK cycles to configure
-                                              the duration of the address setup time. 
+                                              the duration of the address setup time.
                                               This parameter can be a value between Min_Data = 0 and Max_Data = 15.
-                                              @note This parameter is not used with synchronous NOR Flash memories.      */
+                                              @note This parameter is not used with synchronous NOR Flash memories.   */
 
   uint32_t AddressHoldTime;              /*!< Defines the number of HCLK cycles to configure
                                               the duration of the address hold time.
-                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15. 
-                                              @note This parameter is not used with synchronous NOR Flash memories.      */
+                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15.
+                                              @note This parameter is not used with synchronous NOR Flash memories.   */
 
   uint32_t DataSetupTime;                /*!< Defines the number of HCLK cycles to configure
                                               the duration of the data setup time.
                                               This parameter can be a value between Min_Data = 1 and Max_Data = 255.
-                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed 
-                                              NOR Flash memories.                                                        */
+                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
+                                              NOR Flash memories.                                                     */
 
   uint32_t BusTurnAroundDuration;        /*!< Defines the number of HCLK cycles to configure
                                               the duration of the bus turnaround.
                                               This parameter can be a value between Min_Data = 0 and Max_Data = 15.
-                                              @note This parameter is only used for multiplexed NOR Flash memories.      */
+                                              @note This parameter is only used for multiplexed NOR Flash memories.   */
 
-  uint32_t CLKDivision;                  /*!< Defines the period of CLK clock output signal, expressed in number of 
-                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and Max_Data = 16.
-                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM 
-                                              accesses.                                                                  */
+  uint32_t CLKDivision;                  /*!< Defines the period of CLK clock output signal, expressed in number of
+                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and
+                                              Max_Data = 16.
+                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
+                                              accesses.                                                               */
 
   uint32_t DataLatency;                  /*!< Defines the number of memory clock cycles to issue
                                               to the memory before getting the first data.
                                               The parameter value depends on the memory type as shown below:
                                               - It must be set to 0 in case of a CRAM
                                               - It is don't care in asynchronous NOR, SRAM or ROM accesses
-                                              - It may assume a value between Min_Data = 2 and Max_Data = 17 in NOR Flash memories
-                                                with synchronous burst mode enable                                       */
+                                              - It may assume a value between Min_Data = 2 and Max_Data = 17
+                                                in NOR Flash memories with synchronous burst mode enable              */
 
-  uint32_t AccessMode;                   /*!< Specifies the asynchronous access mode. 
-                                              This parameter can be a value of @ref FSMC_Access_Mode                      */
+  uint32_t AccessMode;                   /*!< Specifies the asynchronous access mode.
+                                              This parameter can be a value of @ref FSMC_Access_Mode                   */
+} FSMC_NORSRAM_TimingTypeDef;
+#endif /* FSMC_Bank1 */
 
-}FSMC_NORSRAM_TimingTypeDef;
-
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-/** 
-  * @brief FSMC NAND Configuration Structure definition
-  */ 
+#if defined(FSMC_Bank2_3)
+/**
+  * @brief  FSMC NAND Configuration Structure definition
+  */
 typedef struct
 {
   uint32_t NandBank;               /*!< Specifies the NAND memory device that will be used.
-                                        This parameter can be a value of @ref FSMC_NAND_Bank                   */
+                                        This parameter can be a value of @ref FSMC_NAND_Bank                  */
 
   uint32_t Waitfeature;            /*!< Enables or disables the Wait feature for the NAND Memory device.
-                                        This parameter can be any value of @ref FSMC_Wait_feature              */
+                                        This parameter can be any value of @ref FSMC_Wait_feature             */
 
   uint32_t MemoryDataWidth;        /*!< Specifies the external memory device width.
-                                        This parameter can be any value of @ref FSMC_NAND_Data_Width           */
+                                        This parameter can be any value of @ref FSMC_NAND_Data_Width          */
 
   uint32_t EccComputation;         /*!< Enables or disables the ECC computation.
-                                        This parameter can be any value of @ref FSMC_ECC                       */
+                                        This parameter can be any value of @ref FSMC_ECC                      */
 
   uint32_t ECCPageSize;            /*!< Defines the page size for the extended ECC.
-                                        This parameter can be any value of @ref FSMC_ECC_Page_Size             */
+                                        This parameter can be any value of @ref FSMC_ECC_Page_Size            */
 
   uint32_t TCLRSetupTime;          /*!< Defines the number of HCLK cycles to configure the
                                         delay between CLE low and RE low.
@@ -185,11 +303,12 @@
   uint32_t TARSetupTime;           /*!< Defines the number of HCLK cycles to configure the
                                         delay between ALE low and RE low.
                                         This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
+} FSMC_NAND_InitTypeDef;
+#endif
 
-}FSMC_NAND_InitTypeDef;
-
-/** 
-  * @brief FSMC NAND/PCCARD Timing parameters structure definition
+#if defined(FSMC_Bank2_3) || defined(FSMC_Bank4)
+/**
+  * @brief  FSMC NAND Timing parameters structure definition
   */
 typedef struct
 {
@@ -197,36 +316,37 @@
                                       the command assertion for NAND-Flash read or write access
                                       to common/Attribute or I/O memory space (depending on
                                       the memory space timing to be configured).
-                                      This parameter can be a value between Min_Data = 0 and Max_Data = 255    */
+                                      This parameter can be a value between Min_Data = 0 and Max_Data = 254    */
 
   uint32_t WaitSetupTime;        /*!< Defines the minimum number of HCLK cycles to assert the
                                       command for NAND-Flash read or write access to
                                       common/Attribute or I/O memory space (depending on the
-                                      memory space timing to be configured). 
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
+                                      memory space timing to be configured).
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
 
   uint32_t HoldSetupTime;        /*!< Defines the number of HCLK clock cycles to hold address
                                       (and data for write access) after the command de-assertion
                                       for NAND-Flash read or write access to common/Attribute
                                       or I/O memory space (depending on the memory space timing
                                       to be configured).
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
 
   uint32_t HiZSetupTime;         /*!< Defines the number of HCLK clock cycles during which the
                                       data bus is kept in HiZ after the start of a NAND-Flash
                                       write access to common/Attribute or I/O memory space (depending
                                       on the memory space timing to be configured).
-                                      This parameter can be a number between Min_Data = 0 and Max_Data = 255   */
+                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
+} FSMC_NAND_PCC_TimingTypeDef;
+#endif /* FSMC_Bank2_3 */
 
-}FSMC_NAND_PCC_TimingTypeDef;
-
-/** 
-  * @brief  FSMC NAND Configuration Structure definition
+#if defined(FSMC_Bank4)
+/**
+  * @brief FSMC PCCARD Configuration Structure definition
   */
 typedef struct
 {
   uint32_t Waitfeature;            /*!< Enables or disables the Wait feature for the PCCARD Memory device.
-                                        This parameter can be any value of @ref FSMC_Wait_feature              */
+                                        This parameter can be any value of @ref FSMC_Wait_feature      */
 
   uint32_t TCLRSetupTime;          /*!< Defines the number of HCLK cycles to configure the
                                         delay between CLE low and RE low.
@@ -235,28 +355,30 @@
   uint32_t TARSetupTime;           /*!< Defines the number of HCLK cycles to configure the
                                         delay between ALE low and RE low.
                                         This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
-
 }FSMC_PCCARD_InitTypeDef;
+#endif /* FSMC_Bank4 */
+
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
 
-/* Private constants ---------------------------------------------------------*/
-/** @defgroup FSMC_LL_Private_Constants FSMC Private Constants
+/* Exported constants --------------------------------------------------------*/
+/** @addtogroup FSMC_LL_Exported_Constants FSMC Low Layer Exported Constants
+  * @{
+  */
+#if defined(FSMC_Bank1)
+
+/** @defgroup FSMC_LL_NOR_SRAM_Controller FSMC NOR/SRAM Controller
   * @{
   */
 
-/** @defgroup FSMC_LL_NOR_SRAM_Controller FSMC NOR/SRAM Controller 
-  * @{
-  */ 
 /** @defgroup FSMC_NORSRAM_Bank FSMC NOR/SRAM Bank
   * @{
   */
-#define FSMC_NORSRAM_BANK1                       0x00000000U
-#define FSMC_NORSRAM_BANK2                       0x00000002U
-#define FSMC_NORSRAM_BANK3                       0x00000004U
-#define FSMC_NORSRAM_BANK4                       0x00000006U
+#define FSMC_NORSRAM_BANK1                       (0x00000000U)
+#define FSMC_NORSRAM_BANK2                       (0x00000002U)
+#define FSMC_NORSRAM_BANK3                       (0x00000004U)
+#define FSMC_NORSRAM_BANK4                       (0x00000006U)
 /**
   * @}
   */
@@ -264,8 +386,8 @@
 /** @defgroup FSMC_Data_Address_Bus_Multiplexing FSMC Data Address Bus Multiplexing
   * @{
   */
-#define FSMC_DATA_ADDRESS_MUX_DISABLE            0x00000000U
-#define FSMC_DATA_ADDRESS_MUX_ENABLE             0x00000002U
+#define FSMC_DATA_ADDRESS_MUX_DISABLE            (0x00000000U)
+#define FSMC_DATA_ADDRESS_MUX_ENABLE             (0x00000002U)
 /**
   * @}
   */
@@ -273,19 +395,19 @@
 /** @defgroup FSMC_Memory_Type FSMC Memory Type
   * @{
   */
-#define FSMC_MEMORY_TYPE_SRAM                    0x00000000U
-#define FSMC_MEMORY_TYPE_PSRAM                   0x00000004U
-#define FSMC_MEMORY_TYPE_NOR                     0x00000008U
+#define FSMC_MEMORY_TYPE_SRAM                    (0x00000000U)
+#define FSMC_MEMORY_TYPE_PSRAM                   (0x00000004U)
+#define FSMC_MEMORY_TYPE_NOR                     (0x00000008U)
 /**
   * @}
   */
 
-/** @defgroup FSMC_NORSRAM_Data_Width FSMC NOR/SRAM Data Width
+/** @defgroup FSMC_NORSRAM_Data_Width FSMC NORSRAM Data Width
   * @{
   */
-#define FSMC_NORSRAM_MEM_BUS_WIDTH_8             0x00000000U
-#define FSMC_NORSRAM_MEM_BUS_WIDTH_16            0x00000010U
-#define FSMC_NORSRAM_MEM_BUS_WIDTH_32            0x00000020U
+#define FSMC_NORSRAM_MEM_BUS_WIDTH_8             (0x00000000U)
+#define FSMC_NORSRAM_MEM_BUS_WIDTH_16            (0x00000010U)
+#define FSMC_NORSRAM_MEM_BUS_WIDTH_32            (0x00000020U)
 /**
   * @}
   */
@@ -293,8 +415,8 @@
 /** @defgroup FSMC_NORSRAM_Flash_Access FSMC NOR/SRAM Flash Access
   * @{
   */
-#define FSMC_NORSRAM_FLASH_ACCESS_ENABLE         0x00000040U
-#define FSMC_NORSRAM_FLASH_ACCESS_DISABLE        0x00000000U
+#define FSMC_NORSRAM_FLASH_ACCESS_ENABLE         (0x00000040U)
+#define FSMC_NORSRAM_FLASH_ACCESS_DISABLE        (0x00000000U)
 /**
   * @}
   */
@@ -302,8 +424,8 @@
 /** @defgroup FSMC_Burst_Access_Mode FSMC Burst Access Mode
   * @{
   */
-#define FSMC_BURST_ACCESS_MODE_DISABLE           0x00000000U 
-#define FSMC_BURST_ACCESS_MODE_ENABLE            0x00000100U
+#define FSMC_BURST_ACCESS_MODE_DISABLE           (0x00000000U)
+#define FSMC_BURST_ACCESS_MODE_ENABLE            (0x00000100U)
 /**
   * @}
   */
@@ -311,8 +433,8 @@
 /** @defgroup FSMC_Wait_Signal_Polarity FSMC Wait Signal Polarity
   * @{
   */
-#define FSMC_WAIT_SIGNAL_POLARITY_LOW            0x00000000U
-#define FSMC_WAIT_SIGNAL_POLARITY_HIGH           0x00000200U
+#define FSMC_WAIT_SIGNAL_POLARITY_LOW            (0x00000000U)
+#define FSMC_WAIT_SIGNAL_POLARITY_HIGH           (0x00000200U)
 /**
   * @}
   */
@@ -321,8 +443,8 @@
   * @note  These values are available only for the STM32F405/415/407/417xx devices.
   * @{
   */
-#define FSMC_WRAP_MODE_DISABLE                   0x00000000U
-#define FSMC_WRAP_MODE_ENABLE                    0x00000400U
+#define FSMC_WRAP_MODE_DISABLE                   (0x00000000U)
+#define FSMC_WRAP_MODE_ENABLE                    (0x00000400U)
 /**
   * @}
   */
@@ -330,8 +452,8 @@
 /** @defgroup FSMC_Wait_Timing FSMC Wait Timing
   * @{
   */
-#define FSMC_WAIT_TIMING_BEFORE_WS               0x00000000U
-#define FSMC_WAIT_TIMING_DURING_WS               0x00000800U
+#define FSMC_WAIT_TIMING_BEFORE_WS               (0x00000000U)
+#define FSMC_WAIT_TIMING_DURING_WS               (0x00000800U)
 /**
   * @}
   */
@@ -339,8 +461,8 @@
 /** @defgroup FSMC_Write_Operation FSMC Write Operation
   * @{
   */
-#define FSMC_WRITE_OPERATION_DISABLE             0x00000000U
-#define FSMC_WRITE_OPERATION_ENABLE              0x00001000U
+#define FSMC_WRITE_OPERATION_DISABLE             (0x00000000U)
+#define FSMC_WRITE_OPERATION_ENABLE              (0x00001000U)
 /**
   * @}
   */
@@ -348,8 +470,8 @@
 /** @defgroup FSMC_Wait_Signal FSMC Wait Signal
   * @{
   */
-#define FSMC_WAIT_SIGNAL_DISABLE                 0x00000000U
-#define FSMC_WAIT_SIGNAL_ENABLE                  0x00002000U
+#define FSMC_WAIT_SIGNAL_DISABLE                 (0x00000000U)
+#define FSMC_WAIT_SIGNAL_ENABLE                  (0x00002000U)
 /**
   * @}
   */
@@ -357,8 +479,8 @@
 /** @defgroup FSMC_Extended_Mode FSMC Extended Mode
   * @{
   */
-#define FSMC_EXTENDED_MODE_DISABLE               0x00000000U
-#define FSMC_EXTENDED_MODE_ENABLE                0x00004000U
+#define FSMC_EXTENDED_MODE_DISABLE               (0x00000000U)
+#define FSMC_EXTENDED_MODE_ENABLE                (0x00004000U)
 /**
   * @}
   */
@@ -366,8 +488,8 @@
 /** @defgroup FSMC_AsynchronousWait FSMC Asynchronous Wait
   * @{
   */
-#define FSMC_ASYNCHRONOUS_WAIT_DISABLE           0x00000000U
-#define FSMC_ASYNCHRONOUS_WAIT_ENABLE            0x00008000U
+#define FSMC_ASYNCHRONOUS_WAIT_DISABLE           (0x00000000U)
+#define FSMC_ASYNCHRONOUS_WAIT_ENABLE            (0x00008000U)
 /**
   * @}
   */
@@ -375,21 +497,12 @@
 /** @defgroup FSMC_Page_Size FSMC Page Size
   * @{
   */
-#define FSMC_PAGE_SIZE_NONE           0x00000000U
-#define FSMC_PAGE_SIZE_128            ((uint32_t)FSMC_BCR1_CPSIZE_0)
-#define FSMC_PAGE_SIZE_256            ((uint32_t)FSMC_BCR1_CPSIZE_1)
-#define FSMC_PAGE_SIZE_512            ((uint32_t)(FSMC_BCR1_CPSIZE_0 | FSMC_BCR1_CPSIZE_1))
-#define FSMC_PAGE_SIZE_1024           ((uint32_t)FSMC_BCR1_CPSIZE_2)
-/**
-  * @}
-  */
-
-/** @defgroup FSMC_Write_FIFO FSMC Write FIFO
-  * @note  These values are available only for the STM32F412Vx/Zx/Rx devices.
-  * @{
-  */
-#define FSMC_WRITE_FIFO_DISABLE           ((uint32_t)FSMC_BCR1_WFDIS)
-#define FSMC_WRITE_FIFO_ENABLE            0x00000000U
+#define FSMC_PAGE_SIZE_NONE                      (0x00000000U)
+#define FSMC_PAGE_SIZE_128                       FSMC_BCR1_CPSIZE_0
+#define FSMC_PAGE_SIZE_256                       FSMC_BCR1_CPSIZE_1
+#define FSMC_PAGE_SIZE_512                       (FSMC_BCR1_CPSIZE_0\
+                                                 | FSMC_BCR1_CPSIZE_1)
+#define FSMC_PAGE_SIZE_1024                      FSMC_BCR1_CPSIZE_2
 /**
   * @}
   */
@@ -397,18 +510,30 @@
 /** @defgroup FSMC_Write_Burst FSMC Write Burst
   * @{
   */
-#define FSMC_WRITE_BURST_DISABLE                 0x00000000U
-#define FSMC_WRITE_BURST_ENABLE                  0x00080000U
+#define FSMC_WRITE_BURST_DISABLE                 (0x00000000U)
+#define FSMC_WRITE_BURST_ENABLE                  (0x00080000U)
 /**
   * @}
   */
-  
-/** @defgroup FSMC_Continous_Clock FSMC Continous Clock
+
+/** @defgroup FSMC_Continous_Clock FSMC Continuous Clock
   * @note  These values are available only for the STM32F412Vx/Zx/Rx devices.
   * @{
   */
-#define FSMC_CONTINUOUS_CLOCK_SYNC_ONLY          0x00000000U
-#define FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC         0x00100000U
+#define FSMC_CONTINUOUS_CLOCK_SYNC_ONLY          (0x00000000U)
+#define FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC         (0x00100000U)
+/**
+  * @}
+  */
+
+#if defined(FSMC_BCR1_WFDIS)
+/** @defgroup FSMC_Write_FIFO FSMC Write FIFO
+  * @note  These values are available only for the STM32F412Vx/Zx/Rx devices.
+  * @{
+  */
+#define FSMC_WRITE_FIFO_DISABLE                  FSMC_BCR1_WFDIS
+#define FSMC_WRITE_FIFO_ENABLE                   (0x00000000U)
+#endif /* FSMC_BCR1_WFDIS */
 /**
   * @}
   */
@@ -416,26 +541,31 @@
 /** @defgroup FSMC_Access_Mode FSMC Access Mode
   * @{
   */
-#define FSMC_ACCESS_MODE_A                        0x00000000U
-#define FSMC_ACCESS_MODE_B                        0x10000000U 
-#define FSMC_ACCESS_MODE_C                        0x20000000U
-#define FSMC_ACCESS_MODE_D                        0x30000000U
-/**
-  * @}
-  */
+#define FSMC_ACCESS_MODE_A                       (0x00000000U)
+#define FSMC_ACCESS_MODE_B                       (0x10000000U)
+#define FSMC_ACCESS_MODE_C                       (0x20000000U)
+#define FSMC_ACCESS_MODE_D                       (0x30000000U)
 /**
   * @}
   */
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-/** @defgroup FSMC_LL_NAND_Controller FSMC NAND and PCCARD Controller
+/**
+  * @}
+  */
+#endif /* FSMC_Bank1 */
+
+#if defined(FSMC_Bank2_3) || defined(FSMC_Bank4)
+
+/** @defgroup FSMC_LL_NAND_Controller FSMC NAND Controller
   * @{
   */
 /** @defgroup FSMC_NAND_Bank FSMC NAND Bank
   * @{
   */
-#define FSMC_NAND_BANK2                          0x00000010U
-#define FSMC_NAND_BANK3                          0x00000100U
+#if defined(FSMC_Bank2_3)
+#define FSMC_NAND_BANK2                          (0x00000010U)
+#endif
+#define FSMC_NAND_BANK3                          (0x00000100U)
 /**
   * @}
   */
@@ -443,8 +573,8 @@
 /** @defgroup FSMC_Wait_feature FSMC Wait feature
   * @{
   */
-#define FSMC_NAND_PCC_WAIT_FEATURE_DISABLE           0x00000000U
-#define FSMC_NAND_PCC_WAIT_FEATURE_ENABLE            0x00000002U
+#define FSMC_NAND_PCC_WAIT_FEATURE_DISABLE       (0x00000000U)
+#define FSMC_NAND_PCC_WAIT_FEATURE_ENABLE        (0x00000002U)
 /**
   * @}
   */
@@ -452,8 +582,10 @@
 /** @defgroup FSMC_PCR_Memory_Type FSMC PCR Memory Type
   * @{
   */
-#define FSMC_PCR_MEMORY_TYPE_PCCARD        0x00000000U
-#define FSMC_PCR_MEMORY_TYPE_NAND          0x00000008U
+#if defined(FSMC_Bank4)
+#define FSMC_PCR_MEMORY_TYPE_PCCARD              (0x00000000U)
+#endif /* FSMC_Bank4 */
+#define FSMC_PCR_MEMORY_TYPE_NAND                (0x00000008U)
 /**
   * @}
   */
@@ -461,8 +593,8 @@
 /** @defgroup FSMC_NAND_Data_Width FSMC NAND Data Width
   * @{
   */
-#define FSMC_NAND_PCC_MEM_BUS_WIDTH_8                0x00000000U
-#define FSMC_NAND_PCC_MEM_BUS_WIDTH_16               0x00000010U
+#define FSMC_NAND_PCC_MEM_BUS_WIDTH_8            (0x00000000U)
+#define FSMC_NAND_PCC_MEM_BUS_WIDTH_16           (0x00000010U)
 /**
   * @}
   */
@@ -470,8 +602,8 @@
 /** @defgroup FSMC_ECC FSMC ECC
   * @{
   */
-#define FSMC_NAND_ECC_DISABLE                    0x00000000U
-#define FSMC_NAND_ECC_ENABLE                     0x00000040U
+#define FSMC_NAND_ECC_DISABLE                    (0x00000000U)
+#define FSMC_NAND_ECC_ENABLE                     (0x00000040U)
 /**
   * @}
   */
@@ -479,38 +611,43 @@
 /** @defgroup FSMC_ECC_Page_Size FSMC ECC Page Size
   * @{
   */
-#define FSMC_NAND_ECC_PAGE_SIZE_256BYTE          0x00000000U
-#define FSMC_NAND_ECC_PAGE_SIZE_512BYTE          0x00020000U
-#define FSMC_NAND_ECC_PAGE_SIZE_1024BYTE         0x00040000U
-#define FSMC_NAND_ECC_PAGE_SIZE_2048BYTE         0x00060000U
-#define FSMC_NAND_ECC_PAGE_SIZE_4096BYTE         0x00080000U
-#define FSMC_NAND_ECC_PAGE_SIZE_8192BYTE         0x000A0000U
+#define FSMC_NAND_ECC_PAGE_SIZE_256BYTE          (0x00000000U)
+#define FSMC_NAND_ECC_PAGE_SIZE_512BYTE          (0x00020000U)
+#define FSMC_NAND_ECC_PAGE_SIZE_1024BYTE         (0x00040000U)
+#define FSMC_NAND_ECC_PAGE_SIZE_2048BYTE         (0x00060000U)
+#define FSMC_NAND_ECC_PAGE_SIZE_4096BYTE         (0x00080000U)
+#define FSMC_NAND_ECC_PAGE_SIZE_8192BYTE         (0x000A0000U)
 /**
   * @}
   */
-/**
-  * @}
-  */  
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
 
-/** @defgroup FSMC_LL_Interrupt_definition FSMC Interrupt definition
-  * @{
-  */  
-#define FSMC_IT_RISING_EDGE                0x00000008U
-#define FSMC_IT_LEVEL                      0x00000010U
-#define FSMC_IT_FALLING_EDGE               0x00000020U
-#define FSMC_IT_REFRESH_ERROR              0x00004000U
 /**
   * @}
   */
-    
-/** @defgroup FSMC_LL_Flag_definition  FSMC Flag definition
+#endif /* FSMC_Bank2_3 || FSMC_Bank4 */
+
+
+/** @defgroup FSMC_LL_Interrupt_definition FSMC Low Layer Interrupt definition
   * @{
-  */ 
-#define FSMC_FLAG_RISING_EDGE                    0x00000001U
-#define FSMC_FLAG_LEVEL                          0x00000002U
-#define FSMC_FLAG_FALLING_EDGE                   0x00000004U
-#define FSMC_FLAG_FEMPT                          0x00000040U
+  */
+#if defined(FSMC_Bank2_3) || defined(FSMC_Bank4)
+#define FSMC_IT_RISING_EDGE                      (0x00000008U)
+#define FSMC_IT_LEVEL                            (0x00000010U)
+#define FSMC_IT_FALLING_EDGE                     (0x00000020U)
+#endif /* FSMC_Bank2_3 || FSMC_Bank4 */
+/**
+  * @}
+  */
+
+/** @defgroup FSMC_LL_Flag_definition FSMC Low Layer Flag definition
+  * @{
+  */
+#if defined(FSMC_Bank2_3) || defined(FSMC_Bank4)
+#define FSMC_FLAG_RISING_EDGE                    (0x00000001U)
+#define FSMC_FLAG_LEVEL                          (0x00000002U)
+#define FSMC_FLAG_FALLING_EDGE                   (0x00000004U)
+#define FSMC_FLAG_FEMPT                          (0x00000040U)
+#endif /* FSMC_Bank2_3 || FSMC_Bank4 */
 /**
   * @}
   */
@@ -518,19 +655,8 @@
 /** @defgroup FSMC_LL_Alias_definition  FSMC Alias definition
   * @{
   */
-#define FSMC_NORSRAM_TypeDef                  FSMC_Bank1_TypeDef
-#define FSMC_NORSRAM_EXTENDED_TypeDef         FSMC_Bank1E_TypeDef
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-#define FSMC_NAND_TypeDef                     FSMC_Bank2_3_TypeDef
-#define FSMC_PCCARD_TypeDef                   FSMC_Bank4_TypeDef
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
-
-#define FSMC_NORSRAM_DEVICE                   FSMC_Bank1
-#define FSMC_NORSRAM_EXTENDED_DEVICE          FSMC_Bank1E
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-#define FSMC_NAND_DEVICE                      FSMC_Bank2_3
-#define FSMC_PCCARD_DEVICE                    FSMC_Bank4
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#define FMC_WRITE_OPERATION_DISABLE          FSMC_WRITE_OPERATION_DISABLE
+#define FMC_WRITE_OPERATION_ENABLE           FSMC_WRITE_OPERATION_ENABLE
 
 #define FMC_NORSRAM_MEM_BUS_WIDTH_8           FSMC_NORSRAM_MEM_BUS_WIDTH_8
 #define FMC_NORSRAM_MEM_BUS_WIDTH_16          FSMC_NORSRAM_MEM_BUS_WIDTH_16
@@ -549,7 +675,7 @@
 #define FMC_NORSRAM_WriteOperation_Disable    FSMC_NORSRAM_WriteOperation_Disable
 
 #define __FMC_NORSRAM_ENABLE                  __FSMC_NORSRAM_ENABLE
-#define __FMC_NORSRAM_DISABLE                 __FSMC_NORSRAM_DISABLE 
+#define __FMC_NORSRAM_DISABLE                 __FSMC_NORSRAM_DISABLE
 
 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
 #define FMC_NAND_InitTypeDef                  FSMC_NAND_InitTypeDef
@@ -591,16 +717,16 @@
 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
 
 #define FMC_NORSRAM_DEVICE                    FSMC_NORSRAM_DEVICE
-#define FMC_NORSRAM_EXTENDED_DEVICE           FSMC_NORSRAM_EXTENDED_DEVICE  
+#define FMC_NORSRAM_EXTENDED_DEVICE           FSMC_NORSRAM_EXTENDED_DEVICE
 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
 #define FMC_NAND_DEVICE                       FSMC_NAND_DEVICE
-#define FMC_PCCARD_DEVICE                     FSMC_PCCARD_DEVICE 
+#define FMC_PCCARD_DEVICE                     FSMC_PCCARD_DEVICE
 
 #define FMC_NAND_BANK2                        FSMC_NAND_BANK2
 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
 
-#define FMC_NORSRAM_BANK1                     FSMC_NORSRAM_BANK1    
-#define FMC_NORSRAM_BANK2                     FSMC_NORSRAM_BANK2    
+#define FMC_NORSRAM_BANK1                     FSMC_NORSRAM_BANK1
+#define FMC_NORSRAM_BANK2                     FSMC_NORSRAM_BANK2
 #define FMC_NORSRAM_BANK3                     FSMC_NORSRAM_BANK3
 
 #define FMC_IT_RISING_EDGE                    FSMC_IT_RISING_EDGE
@@ -620,388 +746,317 @@
   * @}
   */
 
+/**
+  * @}
+  */
+
 /* Private macro -------------------------------------------------------------*/
-/** @defgroup FSMC_LL_Private_Macros FSMC Private Macros
+/** @defgroup FSMC_LL_Private_Macros FSMC_LL  Private Macros
+  * @{
+  */
+#if defined(FSMC_Bank1)
+/** @defgroup FSMC_LL_NOR_Macros FSMC NOR/SRAM Macros
+  * @brief macros to handle NOR device enable/disable and read/write operations
   * @{
   */
 
-/** @defgroup FSMC_LL_NOR_Macros FSMC NOR/SRAM Exported Macros
- *  @brief macros to handle NOR device enable/disable and read/write operations
- *  @{
- */
 /**
   * @brief  Enable the NORSRAM device access.
   * @param  __INSTANCE__ FSMC_NORSRAM Instance
-  * @param  __BANK__ FSMC_NORSRAM Bank    
-  * @retval none
-  */ 
-#define __FSMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__)  ((__INSTANCE__)->BTCR[(__BANK__)] |= FSMC_BCR1_MBKEN)
+  * @param  __BANK__ FSMC_NORSRAM Bank
+  * @retval None
+  */
+#define __FSMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__)  ((__INSTANCE__)->BTCR[(__BANK__)]\
+                                                       |= FSMC_BCR1_MBKEN)
 
 /**
   * @brief  Disable the NORSRAM device access.
   * @param  __INSTANCE__ FSMC_NORSRAM Instance
-  * @param  __BANK__ FSMC_NORSRAM Bank   
-  * @retval none
-  */ 
-#define __FSMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] &= ~FSMC_BCR1_MBKEN)  
+  * @param  __BANK__ FSMC_NORSRAM Bank
+  * @retval None
+  */
+#define __FSMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)]\
+                                                       &= ~FSMC_BCR1_MBKEN)
+
 /**
   * @}
-  */ 
-  
+  */
+#endif /* FSMC_Bank1 */
+
+#if defined(FSMC_Bank2_3)
 /** @defgroup FSMC_LL_NAND_Macros FSMC NAND Macros
- *  @brief macros to handle NAND device enable/disable
- *  @{
- */
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
+  *  @brief macros to handle NAND device enable/disable
+  *  @{
+  */
+
 /**
   * @brief  Enable the NAND device access.
   * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__ FSMC_NAND Bank    
-  * @retval none
-  */  
+  * @param  __BANK__     FSMC_NAND Bank
+  * @retval None
+  */
 #define __FSMC_NAND_ENABLE(__INSTANCE__, __BANK__)  (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 |= FSMC_PCR2_PBKEN): \
-                                                    ((__INSTANCE__)->PCR3 |= FSMC_PCR3_PBKEN))
+                                                             ((__INSTANCE__)->PCR3 |= FSMC_PCR3_PBKEN))
 
 /**
   * @brief  Disable the NAND device access.
   * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__ FSMC_NAND Bank  
-  * @retval none
-  */                                          
-#define __FSMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 &= ~FSMC_PCR2_PBKEN): \
-                                                   ((__INSTANCE__)->PCR3 &= ~FSMC_PCR3_PBKEN))
+  * @param  __BANK__     FSMC_NAND Bank
+  * @retval None
+  */
+#define __FSMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FSMC_NAND_BANK2)? CLEAR_BIT((__INSTANCE__)->PCR2, FSMC_PCR2_PBKEN): \
+                                                             CLEAR_BIT((__INSTANCE__)->PCR3, FSMC_PCR3_PBKEN))
+
 /**
   * @}
-  */ 
-  
-/** @defgroup FSMC_LL_PCCARD_Macros FSMC PCCARD Macros
-  *  @brief macros to handle SRAM read/write operations 
+  */
+#endif /* FSMC_Bank2_3 */
+
+#if defined(FSMC_Bank4)
+/** @defgroup FSMC_LL_PCCARD_Macros FMC PCCARD Macros
+  *  @brief macros to handle PCCARD read/write operations
   *  @{
   */
 /**
   * @brief  Enable the PCCARD device access.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance  
-  * @retval none
-  */ 
+  * @param  __INSTANCE__ FSMC_PCCARD Instance
+  * @retval None
+  */
 #define __FSMC_PCCARD_ENABLE(__INSTANCE__)  ((__INSTANCE__)->PCR4 |= FSMC_PCR4_PBKEN)
 
 /**
   * @brief  Disable the PCCARD device access.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance   
-  * @retval none
-  */ 
+  * @param  __INSTANCE__ FSMC_PCCARD Instance
+  * @retval None
+  */
 #define __FSMC_PCCARD_DISABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 &= ~FSMC_PCR4_PBKEN)
 /**
   * @}
   */
-  
-/** @defgroup FSMC_LL_Flag_Interrupt_Macros FSMC Flag&Interrupt Macros
- *  @brief macros to handle FSMC flags and interrupts
- * @{
- */ 
-/**
-  * @brief  Enable the NAND device interrupt.
-  * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__ FSMC_NAND Bank 
-  * @param  __INTERRUPT__ FSMC_NAND interrupt 
-  *         This parameter can be any combination of the following values:
-  *            @arg FSMC_IT_RISING_EDGE: Interrupt rising edge.
-  *            @arg FSMC_IT_LEVEL: Interrupt level.
-  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.        
-  * @retval None
-  */  
-#define __FSMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 |= (__INTERRUPT__)): \
-                                                                                                         ((__INSTANCE__)->SR3 |= (__INTERRUPT__)))
+
+#endif
+#if defined(FSMC_Bank2_3)
+/** @defgroup FSMC_LL_NAND_Interrupt FSMC NAND Interrupt
+  * @brief macros to handle NAND interrupts
+  * @{
+  */
 
 /**
-  * @brief  Disable the NAND device interrupt.
-  * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__ FSMC_NAND Bank 
+  * @brief  Enable the NAND device interrupt.
+  * @param  __INSTANCE__  FSMC_NAND instance
+  * @param  __BANK__     FSMC_NAND Bank
   * @param  __INTERRUPT__ FSMC_NAND interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FSMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FSMC_IT_LEVEL: Interrupt level.
-  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.    
+  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.
+  * @retval None
+  */
+#define __FSMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 |= (__INTERRUPT__)): \
+                                                                               ((__INSTANCE__)->SR3 |= (__INTERRUPT__)))
+
+/**
+  * @brief  Disable the NAND device interrupt.
+  * @param  __INSTANCE__  FSMC_NAND Instance
+  * @param  __BANK__     FSMC_NAND Bank
+  * @param  __INTERRUPT__ FSMC_NAND interrupt
+  *         This parameter can be any combination of the following values:
+  *            @arg FSMC_IT_RISING_EDGE: Interrupt rising edge.
+  *            @arg FSMC_IT_LEVEL: Interrupt level.
+  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
   */
 #define __FSMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__)  (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__INTERRUPT__)): \
-                                                                                                          ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__))) 
+                                                                                ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__)))
 
 /**
   * @brief  Get flag status of the NAND device.
   * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__     FSMC_NAND Bank 
+  * @param  __BANK__     FSMC_NAND Bank
   * @param  __FLAG__     FSMC_NAND flag
   *         This parameter can be any combination of the following values:
   *            @arg FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg FSMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.
   * @retval The state of FLAG (SET or RESET).
   */
 #define __FSMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__BANK__) == FSMC_NAND_BANK2)? (((__INSTANCE__)->SR2 &(__FLAG__)) == (__FLAG__)): \
-                                                                                                   (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__)))
+                                                                         (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__)))
 
 /**
   * @brief  Clear flag status of the NAND device.
   * @param  __INSTANCE__ FSMC_NAND Instance
-  * @param  __BANK__ FSMC_NAND Bank 
-  * @param  __FLAG__ FSMC_NAND flag
+  * @param  __BANK__     FSMC_NAND Bank
+  * @param  __FLAG__     FSMC_NAND flag
   *         This parameter can be any combination of the following values:
   *            @arg FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
   *            @arg FSMC_FLAG_LEVEL: Interrupt level edge flag.
   *            @arg FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.
   * @retval None
   */
 #define __FSMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__)  (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__FLAG__)): \
-                                                                                                     ((__INSTANCE__)->SR3 &= ~(__FLAG__))) 
+                                                                           ((__INSTANCE__)->SR3 &= ~(__FLAG__)))
+
+/**
+  * @}
+  */
+#endif /* FSMC_Bank2_3 */
+
+#if defined(FSMC_Bank4)
+/** @defgroup FSMC_LL_PCCARD_Interrupt FSMC PCCARD Interrupt
+  * @brief macros to handle PCCARD interrupts
+  * @{
+  */
 
 /**
   * @brief  Enable the PCCARD device interrupt.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance  
-  * @param  __INTERRUPT__ FSMC_PCCARD interrupt 
+  * @param  __INSTANCE__ FSMC_PCCARD instance
+  * @param  __INTERRUPT__ FSMC_PCCARD interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FSMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FSMC_IT_LEVEL: Interrupt level.
-  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.        
+  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
-  */ 
+  */
 #define __FSMC_PCCARD_ENABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 |= (__INTERRUPT__))
 
 /**
   * @brief  Disable the PCCARD device interrupt.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance  
-  * @param  __INTERRUPT__ FSMC_PCCARD interrupt 
+  * @param  __INSTANCE__ FSMC_PCCARD instance
+  * @param  __INTERRUPT__ FSMC_PCCARD interrupt
   *         This parameter can be any combination of the following values:
   *            @arg FSMC_IT_RISING_EDGE: Interrupt rising edge.
   *            @arg FSMC_IT_LEVEL: Interrupt level.
-  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.       
+  *            @arg FSMC_IT_FALLING_EDGE: Interrupt falling edge.
   * @retval None
-  */ 
-#define __FSMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__)) 
+  */
+#define __FSMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__)  ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__))
 
 /**
   * @brief  Get flag status of the PCCARD device.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance  
+  * @param  __INSTANCE__ FSMC_PCCARD instance
   * @param  __FLAG__ FSMC_PCCARD flag
   *         This parameter can be any combination of the following values:
-  *            @arg FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
-  *            @arg FSMC_FLAG_LEVEL: Interrupt level edge flag.
-  *            @arg FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg  FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
+  *            @arg  FSMC_FLAG_LEVEL: Interrupt level edge flag.
+  *            @arg  FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
+  *            @arg  FSMC_FLAG_FEMPT: FIFO empty flag.
   * @retval The state of FLAG (SET or RESET).
   */
 #define __FSMC_PCCARD_GET_FLAG(__INSTANCE__, __FLAG__)  (((__INSTANCE__)->SR4 &(__FLAG__)) == (__FLAG__))
 
 /**
   * @brief  Clear flag status of the PCCARD device.
-  * @param  __INSTANCE__ FSMC_PCCARD Instance
+  * @param  __INSTANCE__ FSMC_PCCARD instance
   * @param  __FLAG__ FSMC_PCCARD flag
   *         This parameter can be any combination of the following values:
-  *            @arg FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
-  *            @arg FSMC_FLAG_LEVEL: Interrupt level edge flag.
-  *            @arg FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
-  *            @arg FSMC_FLAG_FEMPT: FIFO empty flag.   
+  *            @arg  FSMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
+  *            @arg  FSMC_FLAG_LEVEL: Interrupt level edge flag.
+  *            @arg  FSMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
+  *            @arg  FSMC_FLAG_FEMPT: FIFO empty flag.
   * @retval None
   */
 #define __FSMC_PCCARD_CLEAR_FLAG(__INSTANCE__, __FLAG__)  ((__INSTANCE__)->SR4 &= ~(__FLAG__))
-/**
-  * @}
-  */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
-
-/** @defgroup FSMC_LL_Assert_Macros FSMC Assert Macros
-  * @{
-  */
-#define IS_FSMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FSMC_NORSRAM_BANK1) || \
-                                        ((__BANK__) == FSMC_NORSRAM_BANK2) || \
-                                        ((__BANK__) == FSMC_NORSRAM_BANK3) || \
-                                        ((__BANK__) == FSMC_NORSRAM_BANK4))
-
-#define IS_FSMC_MUX(__MUX__) (((__MUX__) == FSMC_DATA_ADDRESS_MUX_DISABLE) || \
-                              ((__MUX__) == FSMC_DATA_ADDRESS_MUX_ENABLE))
-
-#define IS_FSMC_MEMORY(__MEMORY__) (((__MEMORY__) == FSMC_MEMORY_TYPE_SRAM) || \
-                                    ((__MEMORY__) == FSMC_MEMORY_TYPE_PSRAM)|| \
-                                    ((__MEMORY__) == FSMC_MEMORY_TYPE_NOR))
-
-#define IS_FSMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_8)  || \
-                                                 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_16) || \
-                                                 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_32))
-
-#define IS_FSMC_ACCESS_MODE(__MODE__) (((__MODE__) == FSMC_ACCESS_MODE_A) || \
-                                       ((__MODE__) == FSMC_ACCESS_MODE_B) || \
-                                       ((__MODE__) == FSMC_ACCESS_MODE_C) || \
-                                       ((__MODE__) == FSMC_ACCESS_MODE_D))
-
-#define IS_FSMC_NAND_BANK(BANK) (((BANK) == FSMC_NAND_BANK2) || \
-                                ((BANK) == FSMC_NAND_BANK3))
-
-#define IS_FSMC_WAIT_FEATURE(FEATURE) (((FEATURE) == FSMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \
-                                      ((FEATURE) == FSMC_NAND_PCC_WAIT_FEATURE_ENABLE))
-
-#define IS_FSMC_NAND_MEMORY_WIDTH(WIDTH) (((WIDTH) == FSMC_NAND_PCC_MEM_BUS_WIDTH_8) || \
-                                         ((WIDTH) == FSMC_NAND_PCC_MEM_BUS_WIDTH_16))
-
-#define IS_FSMC_ECC_STATE(STATE) (((STATE) == FSMC_NAND_ECC_DISABLE) || \
-                                 ((STATE) == FSMC_NAND_ECC_ENABLE))
-
-#define IS_FSMC_ECCPAGE_SIZE(SIZE) (((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_256BYTE)  || \
-                                   ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_512BYTE)  || \
-                                   ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \
-                                   ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \
-                                   ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \
-                                   ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_8192BYTE))
-
-#define IS_FSMC_TCLR_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_TAR_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_SETUP_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_WAIT_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_HOLD_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_HIZ_TIME(TIME) ((TIME) <= 255U)
-
-#define IS_FSMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_DEVICE)
-
-#define IS_FSMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_EXTENDED_DEVICE)
-
-#define IS_FSMC_NAND_DEVICE(INSTANCE) ((INSTANCE) == FSMC_NAND_DEVICE)
-
-#define IS_FSMC_PCCARD_DEVICE(INSTANCE) ((INSTANCE) == FSMC_PCCARD_DEVICE)
-
-#define IS_FSMC_BURSTMODE(__STATE__) (((__STATE__) == FSMC_BURST_ACCESS_MODE_DISABLE) || \
-                                      ((__STATE__) == FSMC_BURST_ACCESS_MODE_ENABLE))
-
-#define IS_FSMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_LOW) || \
-                                             ((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_HIGH))
-
-#define IS_FSMC_WRAP_MODE(__MODE__) (((__MODE__) == FSMC_WRAP_MODE_DISABLE) || \
-                                     ((__MODE__) == FSMC_WRAP_MODE_ENABLE)) 
-
-#define IS_FSMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FSMC_WAIT_TIMING_BEFORE_WS) || \
-                                                ((__ACTIVE__) == FSMC_WAIT_TIMING_DURING_WS)) 
-
-#define IS_FSMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FSMC_WRITE_OPERATION_DISABLE) || \
-                                                ((__OPERATION__) == FSMC_WRITE_OPERATION_ENABLE))
-
-#define IS_FSMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FSMC_WAIT_SIGNAL_DISABLE) || \
-                                          ((__SIGNAL__) == FSMC_WAIT_SIGNAL_ENABLE)) 
-
-#define IS_FSMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FSMC_EXTENDED_MODE_DISABLE) || \
-                                         ((__MODE__) == FSMC_EXTENDED_MODE_ENABLE))
-
-#define IS_FSMC_ASYNWAIT(__STATE__) (((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_DISABLE) || \
-                                     ((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_ENABLE))
-
-#define IS_FSMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U))
-
-#define IS_FSMC_WRITE_BURST(__BURST__) (((__BURST__) == FSMC_WRITE_BURST_DISABLE) || \
-                                        ((__BURST__) == FSMC_WRITE_BURST_ENABLE)) 
-
-#define IS_FSMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U)
-
-#define IS_FSMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U))
-
-#define IS_FSMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U))
-
-#define IS_FSMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U)
-
-#define IS_FSMC_CONTINOUS_CLOCK(CCLOCK) (((CCLOCK) == FSMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \
-                                         ((CCLOCK) == FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC))
-
-#define IS_FSMC_CLK_DIV(DIV) (((DIV) > 1U) && ((DIV) <= 16U))
-
-#define IS_FSMC_PAGESIZE(SIZE) (((SIZE) == FSMC_PAGE_SIZE_NONE) || \
-                                ((SIZE) == FSMC_PAGE_SIZE_128)  || \
-                                ((SIZE) == FSMC_PAGE_SIZE_256)  || \
-                                ((SIZE) == FSMC_PAGE_SIZE_512)  || \
-                                ((SIZE) == FSMC_PAGE_SIZE_1024))
-
-#define IS_FSMC_WRITE_FIFO(FIFO) (((FIFO) == FSMC_WRITE_FIFO_DISABLE) || \
-                                  ((FIFO) == FSMC_WRITE_FIFO_ENABLE))
 
 /**
   * @}
   */
+#endif
+
 /**
   * @}
-  */ 
+  */
+
+/**
+  * @}
+  */
 
 /* Private functions ---------------------------------------------------------*/
 /** @defgroup FSMC_LL_Private_Functions FSMC LL Private Functions
   *  @{
   */
 
+#if defined(FSMC_Bank1)
 /** @defgroup FSMC_LL_NORSRAM  NOR SRAM
   *  @{
   */
-
-/** @defgroup FSMC_LL_NORSRAM_Private_Functions_Group1 NOR SRAM Initialization/de-initialization functions 
+/** @defgroup FSMC_LL_NORSRAM_Private_Functions_Group1 NOR SRAM Initialization/de-initialization functions
   *  @{
   */
-HAL_StatusTypeDef  FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_InitTypeDef *Init);
-HAL_StatusTypeDef  FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
-HAL_StatusTypeDef  FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode);
-HAL_StatusTypeDef  FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
+HAL_StatusTypeDef  FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device,
+                                    FSMC_NORSRAM_InitTypeDef *Init);
+HAL_StatusTypeDef  FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device,
+                                           FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device,
+                                                    FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank,
+                                                    uint32_t ExtendedMode);
+HAL_StatusTypeDef  FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TypeDef *Device,
+                                      FSMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
 /**
   * @}
-  */ 
+  */
 
-/** @defgroup FSMC_LL_NORSRAM_Private_Functions_Group2 NOR SRAM Control functions 
+/** @defgroup FSMC_LL_NORSRAM_Private_Functions_Group2 NOR SRAM Control functions
   *  @{
   */
 HAL_StatusTypeDef  FSMC_NORSRAM_WriteOperation_Enable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank);
 HAL_StatusTypeDef  FSMC_NORSRAM_WriteOperation_Disable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank);
 /**
   * @}
-  */ 
+  */
 /**
   * @}
   */
+#endif /* FSMC_Bank1 */
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
+#if defined(FSMC_Bank2_3)
 /** @defgroup FSMC_LL_NAND NAND
   *  @{
   */
-/** @defgroup FSMC_LL_NAND_Private_Functions_Group1 NAND Initialization/de-initialization functions 
+/** @defgroup FSMC_LL_NAND_Private_Functions_Group1 NAND Initialization/de-initialization functions
   *  @{
   */
 HAL_StatusTypeDef  FSMC_NAND_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_InitTypeDef *Init);
-HAL_StatusTypeDef  FSMC_NAND_CommonSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
-HAL_StatusTypeDef  FSMC_NAND_AttributeSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FSMC_NAND_CommonSpace_Timing_Init(FSMC_NAND_TypeDef *Device,
+                                                    FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
+HAL_StatusTypeDef  FSMC_NAND_AttributeSpace_Timing_Init(FSMC_NAND_TypeDef *Device,
+                                                       FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
 HAL_StatusTypeDef  FSMC_NAND_DeInit(FSMC_NAND_TypeDef *Device, uint32_t Bank);
 /**
   * @}
   */
 
-/** @defgroup FSMC_LL_NAND_Private_Functions_Group2 NAND Control functions 
+/** @defgroup FSMC_LL_NAND_Private_Functions_Group2 NAND Control functions
   *  @{
   */
 HAL_StatusTypeDef  FSMC_NAND_ECC_Enable(FSMC_NAND_TypeDef *Device, uint32_t Bank);
 HAL_StatusTypeDef  FSMC_NAND_ECC_Disable(FSMC_NAND_TypeDef *Device, uint32_t Bank);
-HAL_StatusTypeDef  FSMC_NAND_GetECC(FSMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout);
+HAL_StatusTypeDef  FSMC_NAND_GetECC(FSMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
+                                   uint32_t Timeout);
 /**
   * @}
-  */ 
+  */
 /**
   * @}
-  */ 
+  */
+#endif /* FSMC_Bank2_3 */
 
+#if defined(FSMC_Bank4)
 /** @defgroup FSMC_LL_PCCARD PCCARD
   *  @{
   */
-/** @defgroup FSMC_LL_PCCARD_Private_Functions_Group1 PCCARD Initialization/de-initialization functions 
+/** @defgroup FSMC_LL_PCCARD_Private_Functions_Group1 PCCARD Initialization/de-initialization functions
   *  @{
   */
 HAL_StatusTypeDef  FSMC_PCCARD_Init(FSMC_PCCARD_TypeDef *Device, FSMC_PCCARD_InitTypeDef *Init);
-HAL_StatusTypeDef  FSMC_PCCARD_CommonSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing);
-HAL_StatusTypeDef  FSMC_PCCARD_AttributeSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing);
-HAL_StatusTypeDef  FSMC_PCCARD_IOSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing); 
+HAL_StatusTypeDef  FSMC_PCCARD_CommonSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                               FSMC_NAND_PCC_TimingTypeDef *Timing);
+HAL_StatusTypeDef  FSMC_PCCARD_AttributeSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                                  FSMC_NAND_PCC_TimingTypeDef *Timing);
+HAL_StatusTypeDef  FSMC_PCCARD_IOSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                           FSMC_NAND_PCC_TimingTypeDef *Timing);
 HAL_StatusTypeDef  FSMC_PCCARD_DeInit(FSMC_PCCARD_TypeDef *Device);
 /**
   * @}
@@ -1009,25 +1064,23 @@
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#endif /* FSMC_Bank4 */
+
 
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
-
-/**
-  * @}
-  */ 
 
 /**
   * @}
   */
-  
+
+/**
+  * @}
+  */
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __STM32F4xx_LL_FSMC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_LL_FSMC_H */
diff --git a/Inc/stm32f4xx_ll_gpio.h b/Inc/stm32f4xx_ll_gpio.h
index 76e9170..6bee7fd 100644
--- a/Inc/stm32f4xx_ll_gpio.h
+++ b/Inc/stm32f4xx_ll_gpio.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -980,4 +979,3 @@
 
 #endif /* __STM32F4xx_LL_GPIO_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_i2c.h b/Inc/stm32f4xx_ll_i2c.h
index 5a46bab..babba6b 100644
--- a/Inc/stm32f4xx_ll_i2c.h
+++ b/Inc/stm32f4xx_ll_i2c.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1889,4 +1888,3 @@
 
 #endif /* __STM32F4xx_LL_I2C_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_iwdg.h b/Inc/stm32f4xx_ll_iwdg.h
index 2f1b844..4158363 100644
--- a/Inc/stm32f4xx_ll_iwdg.h
+++ b/Inc/stm32f4xx_ll_iwdg.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -301,5 +300,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_IWDG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_lptim.h b/Inc/stm32f4xx_ll_lptim.h
index a91bf92..9495e01 100644
--- a/Inc/stm32f4xx_ll_lptim.h
+++ b/Inc/stm32f4xx_ll_lptim.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -353,7 +352,7 @@
   * @param  LPTIMx Low-Power Timer instance
   * @retval State of bit (1 or 0).
   */
-__STATIC_INLINE uint32_t LL_LPTIM_IsEnabled(LPTIM_TypeDef *LPTIMx)
+__STATIC_INLINE uint32_t LL_LPTIM_IsEnabled(LPTIM_TypeDef *const LPTIMx)
 {
   return (((READ_BIT(LPTIMx->CR, LPTIM_CR_ENABLE) == LPTIM_CR_ENABLE) ? 1UL : 0UL));
 }
@@ -399,7 +398,7 @@
   *         @arg @ref LL_LPTIM_UPDATE_MODE_IMMEDIATE
   *         @arg @ref LL_LPTIM_UPDATE_MODE_ENDOFPERIOD
   */
-__STATIC_INLINE uint32_t LL_LPTIM_GetUpdateMode(LPTIM_TypeDef *LPTIMx)
+__STATIC_INLINE uint32_t LL_LPTIM_GetUpdateMode(LPTIM_TypeDef *const LPTIMx)
 {
   return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_PRELOAD));
 }
@@ -414,7 +413,7 @@
   * @note autoreload value be strictly greater than the compare value.
   * @rmtoll ARR          ARR           LL_LPTIM_SetAutoReload
   * @param  LPTIMx Low-Power Timer instance
-  * @param  AutoReload Value between Min_Data=0x00 and Max_Data=0xFFFF
+  * @param  AutoReload Value between Min_Data=0x0001 and Max_Data=0xFFFF
   * @retval None
   */
 __STATIC_INLINE void LL_LPTIM_SetAutoReload(LPTIM_TypeDef *LPTIMx, uint32_t AutoReload)
@@ -426,9 +425,9 @@
   * @brief  Get actual auto reload value
   * @rmtoll ARR          ARR           LL_LPTIM_GetAutoReload
   * @param  LPTIMx Low-Power Timer instance
-  * @retval AutoReload Value between Min_Data=0x00 and Max_Data=0xFFFF
+  * @retval AutoReload Value between Min_Data=0x0001 and Max_Data=0xFFFF
   */
-__STATIC_INLINE uint32_t LL_LPTIM_GetAutoReload(LPTIM_TypeDef *LPTIMx)
+__STATIC_INLINE uint32_t LL_LPTIM_GetAutoReload(LPTIM_TypeDef *const LPTIMx)
 {
   return (uint32_t)(READ_BIT(LPTIMx->ARR, LPTIM_ARR_ARR));
 }
@@ -470,7 +469,7 @@
   * @param  LPTIMx Low-Power Timer instance
   * @retval Counter value
   */
-__STATIC_INLINE uint32_t LL_LPTIM_GetCounter(LPTIM_TypeDef *LPTIMx)
+__STATIC_INLINE uint32_t LL_LPTIM_GetCounter(LPTIM_TypeDef *const LPTIMx)
 {
   return (uint32_t)(READ_BIT(LPTIMx->CNT, LPTIM_CNT_CNT));
 }
@@ -498,7 +497,7 @@
   *         @arg @ref LL_LPTIM_COUNTER_MODE_INTERNAL
   *         @arg @ref LL_LPTIM_COUNTER_MODE_EXTERNAL
   */
-__STATIC_INLINE uint32_t LL_LPTIM_GetCounterMode(LPTIM_TypeDef *LPTIMx)
+__STATIC_INLINE uint32_t LL_LPTIM_GetCounterMode(LPTIM_TypeDef *const LPTIMx)
 {
   return (uint32_t)(READ_BIT(LPTIMx->CFGR, LPTIM_CFGR_COUNTMODE));
 }
@@ -1377,5 +1376,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_LPTIM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_pwr.h b/Inc/stm32f4xx_ll_pwr.h
index 03b8706..ea23dc5 100644
--- a/Inc/stm32f4xx_ll_pwr.h
+++ b/Inc/stm32f4xx_ll_pwr.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -985,5 +983,3 @@
 #endif
 
 #endif /* __STM32F4xx_LL_PWR_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_rcc.h b/Inc/stm32f4xx_ll_rcc.h
index d4c249f..1df1b58 100644
--- a/Inc/stm32f4xx_ll_rcc.h
+++ b/Inc/stm32f4xx_ll_rcc.h
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -7096,4 +7094,3 @@
 
 #endif /* __STM32F4xx_LL_RCC_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_rng.h b/Inc/stm32f4xx_ll_rng.h
index c142717..151cb4a 100644
--- a/Inc/stm32f4xx_ll_rng.h
+++ b/Inc/stm32f4xx_ll_rng.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -334,4 +333,3 @@
 
 #endif /* __STM32F4xx_LL_RNG_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_rtc.h b/Inc/stm32f4xx_ll_rtc.h
index 1f57ce4..180cc15 100644
--- a/Inc/stm32f4xx_ll_rtc.h
+++ b/Inc/stm32f4xx_ll_rtc.h
@@ -6,20 +6,19 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F4xx_LL_RTC_H
-#define __STM32F4xx_LL_RTC_H
+#ifndef STM32F4xx_LL_RTC_H
+#define STM32F4xx_LL_RTC_H
 
 #ifdef __cplusplus
 extern "C" {
@@ -46,7 +45,7 @@
   */
 /* Masks Definition */
 #define RTC_INIT_MASK                 0xFFFFFFFFU
-#define RTC_RSF_MASK                  0xFFFFFF5FU
+#define RTC_RSF_MASK                  ((uint32_t)~(RTC_ISR_INIT | RTC_ISR_RSF))
 
 /* Write protection defines */
 #define RTC_WRITE_PROTECTION_DISABLE  ((uint8_t)0xFFU)
@@ -87,19 +86,19 @@
 {
   uint32_t HourFormat;   /*!< Specifies the RTC Hours Format.
                               This parameter can be a value of @ref RTC_LL_EC_HOURFORMAT
-                              
+
                               This feature can be modified afterwards using unitary function
                               @ref LL_RTC_SetHourFormat(). */
 
   uint32_t AsynchPrescaler; /*!< Specifies the RTC Asynchronous Predivider value.
                               This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F
-                              
+
                               This feature can be modified afterwards using unitary function
                               @ref LL_RTC_SetAsynchPrescaler(). */
 
   uint32_t SynchPrescaler;  /*!< Specifies the RTC Synchronous Predivider value.
                               This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7FFF
-                              
+
                               This feature can be modified afterwards using unitary function
                               @ref LL_RTC_SetSynchPrescaler(). */
 } LL_RTC_InitTypeDef;
@@ -167,8 +166,8 @@
   uint32_t AlarmMask;            /*!< Specifies the RTC Alarm Masks.
                                       This parameter can be a value of @ref RTC_LL_EC_ALMA_MASK for ALARM A or @ref RTC_LL_EC_ALMB_MASK for ALARM B.
 
-                                      This feature can be modified afterwards using unitary function @ref LL_RTC_ALMA_SetMask() for ALARM A 
-                                      or @ref LL_RTC_ALMB_SetMask() for ALARM B
+                                      This feature can be modified afterwards using unitary function @ref LL_RTC_ALMA_SetMask() for ALARM A
+                                      or @ref LL_RTC_ALMB_SetMask() for ALARM B.
                                  */
 
   uint32_t AlarmDateWeekDaySel;  /*!< Specifies the RTC Alarm is on day or WeekDay.
@@ -205,8 +204,8 @@
 /** @defgroup RTC_LL_EC_FORMAT FORMAT
   * @{
   */
-#define LL_RTC_FORMAT_BIN                  0x000000000U /*!< Binary data format */
-#define LL_RTC_FORMAT_BCD                  0x000000001U /*!< BCD data format */
+#define LL_RTC_FORMAT_BIN                  0x00000000U /*!< Binary data format */
+#define LL_RTC_FORMAT_BCD                  0x00000001U /*!< BCD data format */
 /**
   * @}
   */
@@ -236,8 +235,9 @@
   * @{
   */
 #define LL_RTC_ISR_RECALPF                 RTC_ISR_RECALPF
-#define LL_RTC_ISR_TAMP3F                  RTC_ISR_TAMP3F
+#if defined(RTC_TAMPER2_SUPPORT)
 #define LL_RTC_ISR_TAMP2F                  RTC_ISR_TAMP2F
+#endif /* RTC_TAMPER2_SUPPORT */
 #define LL_RTC_ISR_TAMP1F                  RTC_ISR_TAMP1F
 #define LL_RTC_ISR_TSOVF                   RTC_ISR_TSOVF
 #define LL_RTC_ISR_TSF                     RTC_ISR_TSF
@@ -330,16 +330,6 @@
   * @}
   */
 
-/** @defgroup RTC_LL_EC_PIN PIN
-  * @{
-  */
-#define LL_RTC_PIN_PC13                    RTC_TAFCR_PC13MODE    /*!< PC13 is forced to push-pull output if all RTC alternate functions are disabled */
-#define LL_RTC_PIN_PC14                    RTC_TAFCR_PC14MODE    /*!< PC14 is forced to push-pull output if LSE is disabled */
-#define LL_RTC_PIN_PC15                    RTC_TAFCR_PC15MODE    /*!< PC15 is forced to push-pull output if LSE is disabled */
-/**
-  * @}
-  */
-
 /** @defgroup RTC_LL_EC_OUTPUTPOLARITY_PIN  OUTPUT POLARITY PIN
   * @{
   */
@@ -392,11 +382,11 @@
 /** @defgroup RTC_LL_EC_ALMB_MASK  ALARMB MASK
   * @{
   */
-#define LL_RTC_ALMB_MASK_NONE              0x00000000U             /*!< No masks applied on Alarm B*/
+#define LL_RTC_ALMB_MASK_NONE              0x00000000U             /*!< No masks applied on Alarm B                */
 #define LL_RTC_ALMB_MASK_DATEWEEKDAY       RTC_ALRMBR_MSK4         /*!< Date/day do not care in Alarm B comparison */
-#define LL_RTC_ALMB_MASK_HOURS             RTC_ALRMBR_MSK3         /*!< Hours do not care in Alarm B comparison */
-#define LL_RTC_ALMB_MASK_MINUTES           RTC_ALRMBR_MSK2         /*!< Minutes do not care in Alarm B comparison */
-#define LL_RTC_ALMB_MASK_SECONDS           RTC_ALRMBR_MSK1         /*!< Seconds do not care in Alarm B comparison */
+#define LL_RTC_ALMB_MASK_HOURS             RTC_ALRMBR_MSK3         /*!< Hours do not care in Alarm B comparison    */
+#define LL_RTC_ALMB_MASK_MINUTES           RTC_ALRMBR_MSK2         /*!< Minutes do not care in Alarm B comparison  */
+#define LL_RTC_ALMB_MASK_SECONDS           RTC_ALRMBR_MSK1         /*!< Seconds do not care in Alarm B comparison  */
 #define LL_RTC_ALMB_MASK_ALL               (RTC_ALRMBR_MSK4 | RTC_ALRMBR_MSK3 | RTC_ALRMBR_MSK2 | RTC_ALRMBR_MSK1) /*!< Masks all */
 /**
   * @}
@@ -440,29 +430,6 @@
   * @}
   */
 
-/** @defgroup RTC_LL_EC_TAMPER_MASK  TAMPER MASK
-  * @{
-  */
-#define LL_RTC_TAMPER_MASK_TAMPER1         RTC_TAFCR_TAMP1MF /*!< Tamper 1 event generates a trigger event. TAMP1F is masked and internally cleared by hardware.The backup registers are not erased */
-#if defined(RTC_TAMPER2_SUPPORT)
-#define LL_RTC_TAMPER_MASK_TAMPER2         RTC_TAFCR_TAMP2MF /*!< Tamper 2 event generates a trigger event. TAMP2F is masked and internally cleared by hardware. The backup registers are not erased. */
-#endif /* RTC_TAMPER2_SUPPORT */
-/**
-  * @}
-  */
-
-/** @defgroup RTC_LL_EC_TAMPER_NOERASE  TAMPER NO ERASE
-  * @{
-  */
-#define LL_RTC_TAMPER_NOERASE_TAMPER1      RTC_TAFCR_TAMP1NOERASE /*!< Tamper 1 event does not erase the backup registers. */
-#if defined(RTC_TAMPER2_SUPPORT)
-#define LL_RTC_TAMPER_NOERASE_TAMPER2      RTC_TAFCR_TAMP2NOERASE /*!< Tamper 2 event does not erase the backup registers. */
-#endif /* RTC_TAMPER2_SUPPORT */
-/**
-  * @}
-  */
-
-#if defined(RTC_TAFCR_TAMPPRCH)
 /** @defgroup RTC_LL_EC_TAMPER_DURATION  TAMPER DURATION
   * @{
   */
@@ -473,9 +440,7 @@
 /**
   * @}
   */
-#endif /* RTC_TAFCR_TAMPPRCH */
 
-#if defined(RTC_TAFCR_TAMPFLT)
 /** @defgroup RTC_LL_EC_TAMPER_FILTER  TAMPER FILTER
   * @{
   */
@@ -486,9 +451,7 @@
 /**
   * @}
   */
-#endif /* RTC_TAFCR_TAMPFLT */
 
-#if defined(RTC_TAFCR_TAMPFREQ)
 /** @defgroup RTC_LL_EC_TAMPER_SAMPLFREQDIV  TAMPER SAMPLING FREQUENCY DIVIDER
   * @{
   */
@@ -503,14 +466,13 @@
 /**
   * @}
   */
-#endif /* RTC_TAFCR_TAMPFREQ */
 
 /** @defgroup RTC_LL_EC_TAMPER_ACTIVELEVEL  TAMPER ACTIVE LEVEL
   * @{
   */
-#define LL_RTC_TAMPER_ACTIVELEVEL_TAMP1    RTC_TAFCR_TAMP1TRG /*!< RTC_TAMP1 input falling edge (if TAMPFLT = 00) or staying high (if TAMPFLT != 00) triggers a tamper detection event*/
+#define LL_RTC_TAMPER_ACTIVELEVEL_TAMP1    RTC_TAFCR_TAMP1TRG /*!< RTC_TAMP1 input falling edge (if TAMPFLT = 00) or staying high (if TAMPFLT != 00) triggers a tamper detection event */
 #if defined(RTC_TAMPER2_SUPPORT)
-#define LL_RTC_TAMPER_ACTIVELEVEL_TAMP2    RTC_TAFCR_TAMP2TRG /*!< RTC_TAMP2 input falling edge (if TAMPFLT = 00) or staying high (if TAMPFLT != 00) triggers a tamper detection event*/
+#define LL_RTC_TAMPER_ACTIVELEVEL_TAMP2    RTC_TAFCR_TAMP2TRG /*!< RTC_TAMP2 input falling edge (if TAMPFLT = 00) or staying high (if TAMPFLT != 00) triggers a tamper detection event */
 #endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
@@ -537,7 +499,6 @@
 #define LL_RTC_BKP_DR2                     0x00000002U
 #define LL_RTC_BKP_DR3                     0x00000003U
 #define LL_RTC_BKP_DR4                     0x00000004U
-#if RTC_BKP_NUMBER > 5
 #define LL_RTC_BKP_DR5                     0x00000005U
 #define LL_RTC_BKP_DR6                     0x00000006U
 #define LL_RTC_BKP_DR7                     0x00000007U
@@ -549,14 +510,10 @@
 #define LL_RTC_BKP_DR13                    0x0000000DU
 #define LL_RTC_BKP_DR14                    0x0000000EU
 #define LL_RTC_BKP_DR15                    0x0000000FU
-#endif /* RTC_BKP_NUMBER > 5 */
-
-#if RTC_BKP_NUMBER > 16
 #define LL_RTC_BKP_DR16                    0x00000010U
 #define LL_RTC_BKP_DR17                    0x00000011U
 #define LL_RTC_BKP_DR18                    0x00000012U
 #define LL_RTC_BKP_DR19                    0x00000013U
-#endif /* RTC_BKP_NUMBER > 16 */
 /**
   * @}
   */
@@ -580,7 +537,7 @@
   * @}
   */
 
-/** @defgroup RTC_LL_EC_CALIB_INSERTPULSE  Calibration pulse insertion 
+/** @defgroup RTC_LL_EC_CALIB_INSERTPULSE  Calibration pulse insertion
   * @{
   */
 #define LL_RTC_CALIB_INSERTPULSE_NONE      0x00000000U           /*!< No RTCCLK pulses are added */
@@ -605,7 +562,7 @@
 #define LL_RTC_TimeStampPin_Default        0x00000000U           /*!< Use RTC_AF1 as TIMESTAMP */
 #if defined(RTC_AF2_SUPPORT)
 #define LL_RTC_TimeStampPin_Pos1           RTC_TAFCR_TSINSEL     /*!< Use RTC_AF2 as TIMESTAMP */
-#endif
+#endif /* RTC_AF2_SUPPORT */
 /**
   * @}
   */
@@ -616,7 +573,7 @@
 #define LL_RTC_TamperPin_Default           0x00000000U           /*!< Use RTC_AF1 as TAMPER1 */
 #if defined(RTC_AF2_SUPPORT)
 #define LL_RTC_TamperPin_Pos1              RTC_TAFCR_TAMP1INSEL  /*!< Use RTC_AF2 as TAMPER1 */
-#endif
+#endif /* RTC_AF2_SUPPORT */
 /**
   * @}
   */
@@ -837,8 +794,6 @@
 /**
   * @brief  Set RTC_ALARM output type (ALARM in push-pull or open-drain output)
   * @note   Used only when RTC_ALARM is mapped on PC13
-  * @note   If all RTC alternate functions are disabled and PC13MODE = 1, PC13VALUE configures the
-  *         PC13 output data
   * @rmtoll TAFCR        ALARMOUTTYPE  LL_RTC_SetAlarmOutputType
   * @param  RTCx RTC Instance
   * @param  Output This parameter can be one of the following values:
@@ -854,8 +809,6 @@
 /**
   * @brief  Get RTC_ALARM output type (ALARM in push-pull or open-drain output)
   * @note   used only when RTC_ALARM is mapped on PC13
-  * @note   If all RTC alternate functions are disabled and PC13MODE = 1, PC13VALUE configures the
-  *         PC13 output data
   * @rmtoll TAFCR        ALARMOUTTYPE  LL_RTC_GetAlarmOutputType
   * @param  RTCx RTC Instance
   * @retval Returned value can be one of the following values:
@@ -868,76 +821,6 @@
 }
 
 /**
-  * @brief  Enable push-pull output on PC13, PC14 and/or PC15
-  * @note   PC13 forced to push-pull output if all RTC alternate functions are disabled
-  * @note   PC14 and PC15 forced to push-pull output if LSE is disabled
-  * @rmtoll TAFCR        PC13MODE  LL_RTC_EnablePushPullMode\n
-  * @rmtoll TAFCR        PC14MODE  LL_RTC_EnablePushPullMode\n
-  * @rmtoll TAFCR        PC15MODE  LL_RTC_EnablePushPullMode
-  * @param  RTCx RTC Instance
-  * @param  PinMask This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_PIN_PC13
-  *         @arg @ref LL_RTC_PIN_PC14
-  *         @arg @ref LL_RTC_PIN_PC15
-  * @retval None
-  */
-__STATIC_INLINE void LL_RTC_EnablePushPullMode(RTC_TypeDef *RTCx, uint32_t PinMask)
-{
-  SET_BIT(RTCx->TAFCR, PinMask);
-}
-
-/**
-  * @brief  Disable push-pull output on PC13, PC14 and/or PC15
-  * @note   PC13, PC14 and/or PC15 are controlled by the GPIO configuration registers.
-  *         Consequently PC13, PC14 and/or PC15 are floating in Standby mode.
-  * @rmtoll TAFCR        PC13MODE      LL_RTC_DisablePushPullMode\n
-  *         TAFCR        PC14MODE      LL_RTC_DisablePushPullMode\n
-  *         TAFCR        PC15MODE      LL_RTC_DisablePushPullMode
-  * @param  RTCx RTC Instance
-  * @param  PinMask This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_PIN_PC13
-  *         @arg @ref LL_RTC_PIN_PC14
-  *         @arg @ref LL_RTC_PIN_PC15
-  * @retval None
-  */
-__STATIC_INLINE void LL_RTC_DisablePushPullMode(RTC_TypeDef* RTCx, uint32_t PinMask)
-{
-  CLEAR_BIT(RTCx->TAFCR, PinMask);
-}
-
-/**
-  * @brief  Set PC14 and/or PC15 to high level.
-  * @note   Output data configuration is possible if the LSE is disabled and PushPull output is enabled (through @ref LL_RTC_EnablePushPullMode) 
-  * @rmtoll TAFCR        PC14VALUE     LL_RTC_SetOutputPin\n
-  *         TAFCR        PC15VALUE     LL_RTC_SetOutputPin
-  * @param  RTCx RTC Instance
-  * @param  PinMask This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_PIN_PC14
-  *         @arg @ref LL_RTC_PIN_PC15
-  * @retval None
-  */
-__STATIC_INLINE void LL_RTC_SetOutputPin(RTC_TypeDef* RTCx, uint32_t PinMask)
-{
-  SET_BIT(RTCx->TAFCR, (PinMask >> 1));
-}
-
-/**
-  * @brief  Set PC14 and/or PC15 to low level.
-  * @note   Output data configuration is possible if the LSE is disabled and PushPull output is enabled (through @ref LL_RTC_EnablePushPullMode) 
-  * @rmtoll TAFCR        PC14VALUE     LL_RTC_ResetOutputPin\n
-  *         TAFCR        PC15VALUE     LL_RTC_ResetOutputPin
-  * @param  RTCx RTC Instance
-  * @param  PinMask This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_PIN_PC14
-  *         @arg @ref LL_RTC_PIN_PC15
-  * @retval None
-  */
-__STATIC_INLINE void LL_RTC_ResetOutputPin(RTC_TypeDef* RTCx, uint32_t PinMask)
-{
-  CLEAR_BIT(RTCx->TAFCR, (PinMask >> 1));
-}
-
-/**
   * @brief  Enable initialization mode
   * @note   Initialization mode is used to program time and date register (RTC_TR and RTC_DR)
   *         and prescaler register (RTC_PRER).
@@ -1023,7 +906,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsShadowRegBypassEnabled(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_BYPSHAD) == (RTC_CR_BYPSHAD));
+  return ((READ_BIT(RTCx->CR, RTC_CR_BYPSHAD) == (RTC_CR_BYPSHAD)) ? 1UL : 0UL);
 }
 
 /**
@@ -1229,7 +1112,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_TIME_GetMinute(RTC_TypeDef *RTCx)
 {
-  return (uint32_t)(READ_BIT(RTCx->TR, (RTC_TR_MNT | RTC_TR_MNU))>> RTC_TR_MNU_Pos);
+  return (uint32_t)(READ_BIT(RTCx->TR, (RTC_TR_MNT | RTC_TR_MNU)) >> RTC_TR_MNU_Pos);
 }
 
 /**
@@ -1290,12 +1173,12 @@
   */
 __STATIC_INLINE void LL_RTC_TIME_Config(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
 {
-  register uint32_t temp = 0U;
+  uint32_t temp;
 
-  temp = Format12_24                                                                                    | \
-         (((Hours & 0xF0U) << (RTC_TR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_TR_HU_Pos))     | \
+  temp = Format12_24                                                                            | \
+         (((Hours   & 0xF0U) << (RTC_TR_HT_Pos  - 4U)) | ((Hours & 0x0FU) << RTC_TR_HU_Pos))    | \
          (((Minutes & 0xF0U) << (RTC_TR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_TR_MNU_Pos)) | \
-         (((Seconds & 0xF0U) << (RTC_TR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_TR_SU_Pos));
+         (((Seconds & 0xF0U) << (RTC_TR_ST_Pos  - 4U)) | ((Seconds & 0x0FU) << RTC_TR_SU_Pos));
   MODIFY_REG(RTCx->TR, (RTC_TR_PM | RTC_TR_HT | RTC_TR_HU | RTC_TR_MNT | RTC_TR_MNU | RTC_TR_ST | RTC_TR_SU), temp);
 }
 
@@ -1318,12 +1201,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
 {
-  register uint32_t temp = 0U;
-  
-  temp = READ_BIT(RTCx->TR, (RTC_TR_HT | RTC_TR_HU | RTC_TR_MNT | RTC_TR_MNU | RTC_TR_ST | RTC_TR_SU));
-  return (uint32_t)((((((temp & RTC_TR_HT) >> RTC_TR_HT_Pos) << 4U) | ((temp & RTC_TR_HU) >> RTC_TR_HU_Pos)) << RTC_OFFSET_HOUR) |  \
-                    (((((temp & RTC_TR_MNT) >> RTC_TR_MNT_Pos) << 4U) | ((temp & RTC_TR_MNU) >> RTC_TR_MNU_Pos)) << RTC_OFFSET_MINUTE) | \
-                    ((((temp & RTC_TR_ST) >> RTC_TR_ST_Pos) << 4U) | ((temp & RTC_TR_SU) >> RTC_TR_SU_Pos)));
+  return (uint32_t)(READ_BIT(RTCx->TR, (RTC_TR_HT | RTC_TR_HU | RTC_TR_MNT | RTC_TR_MNU | RTC_TR_ST | RTC_TR_SU)));
 }
 
 /**
@@ -1358,7 +1236,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_TIME_IsDayLightStoreEnabled(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_BKP) == (RTC_CR_BKP));
+  return ((READ_BIT(RTCx->CR, RTC_CR_BKP) == (RTC_CR_BKP)) ? 1UL : 0UL);
 }
 
 /**
@@ -1386,17 +1264,18 @@
 }
 
 /**
-  * @brief  Get Sub second value in the synchronous prescaler counter.
+  * @brief  Get subseconds value in the synchronous prescaler counter.
   * @note  You can use both SubSeconds value and SecondFraction (PREDIV_S through
   *        LL_RTC_GetSynchPrescaler function) terms returned to convert Calendar
   *        SubSeconds value in second fraction ratio with time unit following
   *        generic formula:
-  *          ==> Seconds fraction ratio * time_unit= [(SecondFraction-SubSeconds)/(SecondFraction+1)] * time_unit
+  *          ==> Seconds fraction ratio * time_unit =
+  *                 [(SecondFraction-SubSeconds)/(SecondFraction+1)] * time_unit
   *        This conversion can be performed only if no shift operation is pending
   *        (ie. SHFP=0) when PREDIV_S >= SS.
   * @rmtoll SSR          SS            LL_RTC_TIME_GetSubSecond
   * @param  RTCx RTC Instance
-  * @retval Sub second value (number between 0 and 65535)
+  * @retval Subseconds value (number between 0 and 65535)
   */
 __STATIC_INLINE uint32_t LL_RTC_TIME_GetSubSecond(RTC_TypeDef *RTCx)
 {
@@ -1550,7 +1429,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_DATE_GetMonth(RTC_TypeDef *RTCx)
 {
-  return (uint32_t)((READ_BIT(RTCx->DR, (RTC_DR_MT | RTC_DR_MU)))>> RTC_DR_MU_Pos);
+  return (uint32_t)((READ_BIT(RTCx->DR, (RTC_DR_MT | RTC_DR_MU))) >> RTC_DR_MU_Pos);
 }
 
 /**
@@ -1620,12 +1499,12 @@
   */
 __STATIC_INLINE void LL_RTC_DATE_Config(RTC_TypeDef *RTCx, uint32_t WeekDay, uint32_t Day, uint32_t Month, uint32_t Year)
 {
-  register uint32_t temp = 0U;
+  uint32_t temp;
 
-  temp = (WeekDay << RTC_DR_WDU_Pos)                                                        | \
-         (((Year & 0xF0U) << (RTC_DR_YT_Pos - 4U)) | ((Year & 0x0FU) << RTC_DR_YU_Pos))   | \
+  temp = (  WeekDay                                                    << RTC_DR_WDU_Pos) | \
+         (((Year  & 0xF0U) << (RTC_DR_YT_Pos - 4U)) | ((Year  & 0x0FU) << RTC_DR_YU_Pos)) | \
          (((Month & 0xF0U) << (RTC_DR_MT_Pos - 4U)) | ((Month & 0x0FU) << RTC_DR_MU_Pos)) | \
-         (((Day & 0xF0U) << (RTC_DR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_DR_DU_Pos));
+         (((Day   & 0xF0U) << (RTC_DR_DT_Pos - 4U)) | ((Day   & 0x0FU) << RTC_DR_DU_Pos));
 
   MODIFY_REG(RTCx->DR, (RTC_DR_WDU | RTC_DR_MT | RTC_DR_MU | RTC_DR_DT | RTC_DR_DU | RTC_DR_YT | RTC_DR_YU), temp);
 }
@@ -1648,13 +1527,14 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_DATE_Get(RTC_TypeDef *RTCx)
 {
-  register uint32_t temp = 0U;
-  
+  uint32_t temp;
+
   temp = READ_BIT(RTCx->DR, (RTC_DR_WDU | RTC_DR_MT | RTC_DR_MU | RTC_DR_DT | RTC_DR_DU | RTC_DR_YT | RTC_DR_YU));
-  return (uint32_t)((((temp & RTC_DR_WDU) >> RTC_DR_WDU_Pos) << RTC_OFFSET_WEEKDAY) | \
-                    (((((temp & RTC_DR_DT) >> RTC_DR_DT_Pos) << 4U) | ((temp & RTC_DR_DU) >> RTC_DR_DU_Pos)) << RTC_OFFSET_DAY) | \
-                    (((((temp & RTC_DR_MT) >> RTC_DR_MT_Pos) << 4U) | ((temp & RTC_DR_MU) >> RTC_DR_MU_Pos)) << RTC_OFFSET_MONTH) | \
-                    ((((temp & RTC_DR_YT) >> RTC_DR_YT_Pos) << 4U) | ((temp & RTC_DR_YU) >> RTC_DR_YU_Pos)));
+
+  return (uint32_t)((((temp &              RTC_DR_WDU) >> RTC_DR_WDU_Pos) << RTC_OFFSET_WEEKDAY) | \
+                    (((temp & (RTC_DR_DT | RTC_DR_DU)) >> RTC_DR_DU_Pos)  << RTC_OFFSET_DAY)     | \
+                    (((temp & (RTC_DR_MT | RTC_DR_MU)) >> RTC_DR_MU_Pos)  << RTC_OFFSET_MONTH)   | \
+                     ((temp & (RTC_DR_YT | RTC_DR_YU)) >> RTC_DR_YU_Pos));
 }
 
 /**
@@ -1869,7 +1749,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetHour(RTC_TypeDef *RTCx)
 {
-  return (uint32_t)(( READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_HT | RTC_ALRMAR_HU))) >> RTC_ALRMAR_HU_Pos);
+  return (uint32_t)((READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_HT | RTC_ALRMAR_HU))) >> RTC_ALRMAR_HU_Pos);
 }
 
 /**
@@ -1948,11 +1828,12 @@
   */
 __STATIC_INLINE void LL_RTC_ALMA_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
 {
-  register uint32_t temp = 0U;
+  uint32_t temp;
 
-  temp = Format12_24 | (((Hours & 0xF0U) << (RTC_ALRMAR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMAR_HU_Pos))    | \
+  temp = Format12_24                                                                                    | \
+         (((Hours   & 0xF0U) << (RTC_ALRMAR_HT_Pos  - 4U)) | ((Hours   & 0x0FU) << RTC_ALRMAR_HU_Pos))  | \
          (((Minutes & 0xF0U) << (RTC_ALRMAR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMAR_MNU_Pos)) | \
-         (((Seconds & 0xF0U) << (RTC_ALRMAR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMAR_SU_Pos));
+         (((Seconds & 0xF0U) << (RTC_ALRMAR_ST_Pos  - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMAR_SU_Pos));
 
   MODIFY_REG(RTCx->ALRMAR, RTC_ALRMAR_PM | RTC_ALRMAR_HT | RTC_ALRMAR_HU | RTC_ALRMAR_MNT | RTC_ALRMAR_MNU | RTC_ALRMAR_ST | RTC_ALRMAR_SU, temp);
 }
@@ -1976,7 +1857,8 @@
 }
 
 /**
-  * @brief  Set Alarm A Mask the most-significant bits starting at this bit
+  * @brief  Mask the most-significant bits of the subseconds field starting from
+  *         the bit specified in parameter Mask
   * @note This register can be written only when ALRAE is reset in RTC_CR register,
   *       or in initialization mode.
   * @rmtoll ALRMASSR     MASKSS        LL_RTC_ALMA_SetSubSecondMask
@@ -1990,7 +1872,7 @@
 }
 
 /**
-  * @brief  Get Alarm A Mask the most-significant bits starting at this bit
+  * @brief  Get Alarm A subseconds mask
   * @rmtoll ALRMASSR     MASKSS        LL_RTC_ALMA_GetSubSecondMask
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data=0xF
@@ -2001,7 +1883,7 @@
 }
 
 /**
-  * @brief  Set Alarm A Sub seconds value
+  * @brief  Set Alarm A subseconds value
   * @rmtoll ALRMASSR     SS            LL_RTC_ALMA_SetSubSecond
   * @param  RTCx RTC Instance
   * @param  Subsecond Value between Min_Data=0x00 and Max_Data=0x7FFF
@@ -2013,7 +1895,7 @@
 }
 
 /**
-  * @brief  Get Alarm A Sub seconds value
+  * @brief  Get Alarm A subseconds value
   * @rmtoll ALRMASSR     SS            LL_RTC_ALMA_GetSubSecond
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data=0x7FFF
@@ -2129,7 +2011,7 @@
   */
 __STATIC_INLINE void LL_RTC_ALMB_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
 {
-  MODIFY_REG(RTC->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU),
+  MODIFY_REG(RTCx->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU),
              (((Day & 0xF0U) << (RTC_ALRMBR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_ALRMBR_DU_Pos)));
 }
 
@@ -2143,7 +2025,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetDay(RTC_TypeDef *RTCx)
 {
-  return (uint32_t)(( READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU))) >> RTC_ALRMBR_DU_Pos);
+  return (uint32_t)((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU))) >> RTC_ALRMBR_DU_Pos);
 }
 
 /**
@@ -2291,10 +2173,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetSecond(RTC_TypeDef *RTCx)
 {
-  register uint32_t temp = 0U;
-
-  temp = READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_ST | RTC_ALRMBR_SU));
-  return (uint32_t)((((temp & RTC_ALRMBR_ST) >> RTC_ALRMBR_ST_Pos) << 4U) | ((temp & RTC_ALRMBR_SU) >> RTC_ALRMBR_SU_Pos));
+  return (uint32_t)((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_ST | RTC_ALRMBR_SU))) >> RTC_ALRMBR_SU_Pos);
 }
 
 /**
@@ -2317,13 +2196,14 @@
   */
 __STATIC_INLINE void LL_RTC_ALMB_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
 {
-  register uint32_t temp = 0U;
+  uint32_t temp;
 
-  temp = Format12_24 | (((Hours & 0xF0U) << (RTC_ALRMBR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMBR_HU_Pos))    | \
+  temp = Format12_24                                                                                    | \
+         (((Hours   & 0xF0U) << (RTC_ALRMBR_HT_Pos  - 4U)) | ((Hours   & 0x0FU) << RTC_ALRMBR_HU_Pos))  | \
          (((Minutes & 0xF0U) << (RTC_ALRMBR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMBR_MNU_Pos)) | \
-         (((Seconds & 0xF0U) << (RTC_ALRMBR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMBR_SU_Pos));
+         (((Seconds & 0xF0U) << (RTC_ALRMBR_ST_Pos  - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMBR_SU_Pos));
 
-  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_PM| RTC_ALRMBR_HT | RTC_ALRMBR_HU | RTC_ALRMBR_MNT | RTC_ALRMBR_MNU | RTC_ALRMBR_ST | RTC_ALRMBR_SU, temp);
+  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_PM | RTC_ALRMBR_HT | RTC_ALRMBR_HU | RTC_ALRMBR_MNT | RTC_ALRMBR_MNU | RTC_ALRMBR_ST | RTC_ALRMBR_SU, temp);
 }
 
 /**
@@ -2345,7 +2225,8 @@
 }
 
 /**
-  * @brief  Set Alarm B Mask the most-significant bits starting at this bit
+  * @brief  Mask the most-significant bits of the subseconds field starting from
+  *         the bit specified in parameter Mask
   * @note This register can be written only when ALRBE is reset in RTC_CR register,
   *       or in initialization mode.
   * @rmtoll ALRMBSSR     MASKSS        LL_RTC_ALMB_SetSubSecondMask
@@ -2359,7 +2240,7 @@
 }
 
 /**
-  * @brief  Get Alarm B Mask the most-significant bits starting at this bit
+  * @brief  Get Alarm B subseconds mask
   * @rmtoll ALRMBSSR     MASKSS        LL_RTC_ALMB_GetSubSecondMask
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data=0xF
@@ -2370,7 +2251,7 @@
 }
 
 /**
-  * @brief  Set Alarm B Sub seconds value
+  * @brief  Set Alarm B subseconds value
   * @rmtoll ALRMBSSR     SS            LL_RTC_ALMB_SetSubSecond
   * @param  RTCx RTC Instance
   * @param  Subsecond Value between Min_Data=0x00 and Max_Data=0x7FFF
@@ -2382,7 +2263,7 @@
 }
 
 /**
-  * @brief  Get Alarm B Sub seconds value
+  * @brief  Get Alarm B subseconds value
   * @rmtoll ALRMBSSR     SS            LL_RTC_ALMB_GetSubSecond
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data=0x7FFF
@@ -2599,7 +2480,7 @@
 }
 
 /**
-  * @brief  Get time-stamp sub second value
+  * @brief  Get time-stamp subseconds value
   * @rmtoll TSSSR        SS            LL_RTC_TS_GetSubSecond
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data=0xFFFF
@@ -2637,17 +2518,17 @@
   * @brief  Set timestamp Pin
   * @rmtoll TAFCR       TSINSEL      LL_RTC_TS_SetPin
   * @param  RTCx RTC Instance
-  * @param  TSPin specifies the RTC TimeStamp Pin.
+  * @param  TSPin specifies the RTC Timestamp Pin.
   *          This parameter can be one of the following values:
-  *            @arg LL_RTC_TimeStampPin_Default: RTC_AF1 is used as RTC TimeStamp.
-  *            @arg LL_RTC_TimeStampPin_Pos1: RTC_AF2 is selected as RTC TimeStamp. (*)
-  *            
-  *            (*) value not defined in all devices.
+  *            @arg LL_RTC_TimeStampPin_Default: RTC_AF1 is used as RTC Timestamp Pin.
+  *            @arg LL_RTC_TimeStampPin_Pos1: RTC_AF2 is used as RTC Timestamp Pin. (*)
+  *
+  *            (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TS_SetPin(RTC_TypeDef *RTCx, uint32_t TSPin)
 {
-  MODIFY_REG(RTCx->TAFCR, RTC_TAFCR_TSINSEL , TSPin); 
+  MODIFY_REG(RTCx->TAFCR, RTC_TAFCR_TSINSEL, TSPin);
 }
 
 /**
@@ -2655,16 +2536,15 @@
   * @rmtoll TAFCR       TSINSEL      LL_RTC_TS_GetPin
   * @param  RTCx RTC Instance
   * @retval Returned value can be one of the following values:
-  *            @arg LL_RTC_TimeStampPin_Default: RTC_AF1 is used as RTC TimeStamp Pin.
-  *            @arg LL_RTC_TimeStampPin_Pos1: RTC_AF2 is selected as RTC TimeStamp Pin. (*)
-  *            
-  *            (*) value not defined in all devices.
+  *            @arg LL_RTC_TimeStampPin_Default: RTC_AF1 is used as RTC Timestamp Pin.
+  *            @arg LL_RTC_TimeStampPin_Pos1: RTC_AF2 is used as RTC Timestamp Pin. (*)
+  *
+  *            (*) value not applicable to all devices.
   * @retval None
   */
-
 __STATIC_INLINE uint32_t LL_RTC_TS_GetPin(RTC_TypeDef *RTCx)
 {
-   return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TSINSEL));
+  return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TSINSEL));
 }
 
 /**
@@ -2681,10 +2561,10 @@
   *         TAFCR       TAMP2E        LL_RTC_TAMPER_Enable\n
   * @param  RTCx RTC Instance
   * @param  Tamper This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_TAMPER_1 
+  *         @arg @ref LL_RTC_TAMPER_1
   *         @arg @ref LL_RTC_TAMPER_2 (*)
-  *         
-  *         (*) value not defined in all devices.
+  *
+  *         (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TAMPER_Enable(RTC_TypeDef *RTCx, uint32_t Tamper)
@@ -2698,10 +2578,10 @@
   *         TAFCR       TAMP2E        LL_RTC_TAMPER_Disable\n
   * @param  RTCx RTC Instance
   * @param  Tamper This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_TAMPER_1 
+  *         @arg @ref LL_RTC_TAMPER_1
   *         @arg @ref LL_RTC_TAMPER_2 (*)
-  *         
-  *         (*) value not defined in all devices.
+  *
+  *         (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TAMPER_Disable(RTC_TypeDef *RTCx, uint32_t Tamper)
@@ -2709,7 +2589,6 @@
   CLEAR_BIT(RTCx->TAFCR, Tamper);
 }
 
-#if defined(RTC_TAFCR_TAMPPUDIS)
 /**
   * @brief  Disable RTC_TAMPx pull-up disable (Disable precharge of RTC_TAMPx pins)
   * @rmtoll TAFCR       TAMPPUDIS     LL_RTC_TAMPER_DisablePullUp
@@ -2731,9 +2610,7 @@
 {
   CLEAR_BIT(RTCx->TAFCR, RTC_TAFCR_TAMPPUDIS);
 }
-#endif /* RTC_TAFCR_TAMPPUDIS */
 
-#if defined(RTC_TAFCR_TAMPPRCH)
 /**
   * @brief  Set RTC_TAMPx precharge duration
   * @rmtoll TAFCR       TAMPPRCH      LL_RTC_TAMPER_SetPrecharge
@@ -2764,9 +2641,7 @@
 {
   return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TAMPPRCH));
 }
-#endif /* RTC_TAFCR_TAMPPRCH */
 
-#if defined(RTC_TAFCR_TAMPFLT)
 /**
   * @brief  Set RTC_TAMPx filter count
   * @rmtoll TAFCR       TAMPFLT       LL_RTC_TAMPER_SetFilterCount
@@ -2797,9 +2672,7 @@
 {
   return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TAMPFLT));
 }
-#endif /* RTC_TAFCR_TAMPFLT */
 
-#if defined(RTC_TAFCR_TAMPFREQ)
 /**
   * @brief  Set Tamper sampling frequency
   * @rmtoll TAFCR       TAMPFREQ      LL_RTC_TAMPER_SetSamplingFreq
@@ -2838,7 +2711,6 @@
 {
   return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TAMPFREQ));
 }
-#endif /* RTC_TAFCR_TAMPFREQ */
 
 /**
   * @brief  Enable Active level for Tamper input
@@ -2846,10 +2718,10 @@
   *         TAFCR       TAMP2TRG      LL_RTC_TAMPER_EnableActiveLevel\n
   * @param  RTCx RTC Instance
   * @param  Tamper This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP1 
+  *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP1
   *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP2 (*)
-  *         
-  *         (*) value not defined in all devices.
+  *
+  *         (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TAMPER_EnableActiveLevel(RTC_TypeDef *RTCx, uint32_t Tamper)
@@ -2863,10 +2735,10 @@
   *         TAFCR       TAMP2TRG      LL_RTC_TAMPER_DisableActiveLevel\n
   * @param  RTCx RTC Instance
   * @param  Tamper This parameter can be a combination of the following values:
-  *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP1 
+  *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP1
   *         @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_TAMP2 (*)
-  *         
-  *         (*) value not defined in all devices.
+  *
+  *         (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TAMPER_DisableActiveLevel(RTC_TypeDef *RTCx, uint32_t Tamper)
@@ -2880,15 +2752,15 @@
   * @param  RTCx RTC Instance
   * @param  TamperPin specifies the RTC Tamper Pin.
   *          This parameter can be one of the following values:
-  *            @arg LL_RTC_TamperPin_Default: RTC_AF1 is used as RTC Tamper.
-  *            @arg LL_RTC_TamperPin_Pos1: RTC_AF2 is selected as RTC Tamper. (*)
-  *            
-  *            (*) value not defined in all devices.
+  *            @arg LL_RTC_TamperPin_Default: RTC_AF1 is used as RTC Tamper Pin.
+  *            @arg LL_RTC_TamperPin_Pos1: RTC_AF2 is used as RTC Tamper Pin. (*)
+  *
+  *            (*) value not applicable to all devices.
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_TAMPER_SetPin(RTC_TypeDef *RTCx, uint32_t TamperPin)
 {
-  MODIFY_REG(RTCx->TAFCR, RTC_TAFCR_TAMP1INSEL , TamperPin); 
+  MODIFY_REG(RTCx->TAFCR, RTC_TAFCR_TAMP1INSEL, TamperPin);
 }
 
 /**
@@ -2898,14 +2770,14 @@
   * @retval Returned value can be one of the following values:
   *            @arg LL_RTC_TamperPin_Default: RTC_AF1 is used as RTC Tamper Pin.
   *            @arg LL_RTC_TamperPin_Pos1: RTC_AF2 is selected as RTC Tamper Pin. (*)
-  *            
-  *            (*) value not defined in all devices.
+  *
+  *            (*) value not applicable to all devices.
   * @retval None
   */
 
 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetPin(RTC_TypeDef *RTCx)
 {
-   return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TAMP1INSEL));
+  return (uint32_t)(READ_BIT(RTCx->TAFCR, RTC_TAFCR_TAMP1INSEL));
 }
 
 /**
@@ -2948,13 +2820,13 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_WAKEUP_IsEnabled(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_WUTE) == (RTC_CR_WUTE));
+  return ((READ_BIT(RTCx->CR, RTC_CR_WUTE) == (RTC_CR_WUTE)) ? 1UL : 0UL);
 }
 
 /**
   * @brief  Select Wakeup clock
   * @note   Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
-  * @note Bit can be written only when RTC_CR WUTE bit = 0 and RTC_ISR WUTWF bit = 1
+  * @note   Bit can be written only when RTC_CR WUTE bit = 0 and RTC_ISR WUTWF bit = 1
   * @rmtoll CR           WUCKSEL       LL_RTC_WAKEUP_SetClock
   * @param  RTCx RTC Instance
   * @param  WakeupClock This parameter can be one of the following values:
@@ -2990,7 +2862,7 @@
 
 /**
   * @brief  Set Wakeup auto-reload value
-  * @note Bit can be written only when WUTWF is set to 1 in RTC_ISR
+  * @note   Bit can be written only when WUTWF is set to 1 in RTC_ISR
   * @rmtoll WUTR         WUT           LL_RTC_WAKEUP_SetAutoReload
   * @param  RTCx RTC Instance
   * @param  Value Value between Min_Data=0x00 and Max_Data=0xFFFF
@@ -3050,13 +2922,13 @@
   */
 __STATIC_INLINE void LL_RTC_BAK_SetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister, uint32_t Data)
 {
-  register uint32_t tmp = 0U;
+  uint32_t temp;
 
-  tmp = (uint32_t)(&(RTCx->BKP0R));
-  tmp += (BackupRegister * 4U);
+  temp = (uint32_t)(&(RTCx->BKP0R));
+  temp += (BackupRegister * 4U);
 
   /* Write the specified register */
-  *(__IO uint32_t *)tmp = (uint32_t)Data;
+  *(__IO uint32_t *)temp = (uint32_t)Data;
 }
 
 /**
@@ -3088,13 +2960,13 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_BAK_GetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister)
 {
-  register uint32_t tmp = 0U;
+  uint32_t temp;
 
-  tmp = (uint32_t)(&(RTCx->BKP0R));
-  tmp += (BackupRegister * 4U);
+  temp = (uint32_t)(&(RTCx->BKP0R));
+  temp += (BackupRegister * 4U);
 
   /* Read the specified register */
-  return (*(__IO uint32_t *)tmp);
+  return (*(__IO uint32_t *)temp);
 }
 
 /**
@@ -3115,6 +2987,7 @@
   *         @arg @ref LL_RTC_CALIB_OUTPUT_NONE
   *         @arg @ref LL_RTC_CALIB_OUTPUT_1HZ
   *         @arg @ref LL_RTC_CALIB_OUTPUT_512HZ
+  *
   * @retval None
   */
 __STATIC_INLINE void LL_RTC_CAL_SetOutputFreq(RTC_TypeDef *RTCx, uint32_t Frequency)
@@ -3131,6 +3004,7 @@
   *         @arg @ref LL_RTC_CALIB_OUTPUT_NONE
   *         @arg @ref LL_RTC_CALIB_OUTPUT_1HZ
   *         @arg @ref LL_RTC_CALIB_OUTPUT_512HZ
+  *
   */
 __STATIC_INLINE uint32_t LL_RTC_CAL_GetOutputFreq(RTC_TypeDef *RTCx)
 {
@@ -3178,7 +3052,7 @@
   * @note   This Calibration value should be between 0 and 126 when using positive sign with a 4-ppm step.
   * @retval None
   */
-__STATIC_INLINE void LL_RTC_CAL_ConfigCoarseDigital(RTC_TypeDef* RTCx, uint32_t Sign, uint32_t Value)
+__STATIC_INLINE void LL_RTC_CAL_ConfigCoarseDigital(RTC_TypeDef *RTCx, uint32_t Sign, uint32_t Value)
 {
   MODIFY_REG(RTCx->CALIBR, RTC_CALIBR_DCS | RTC_CALIBR_DC, Sign | Value);
 }
@@ -3202,7 +3076,7 @@
   *         @arg @ref LL_RTC_CALIB_SIGN_POSITIVE
   *         @arg @ref LL_RTC_CALIB_SIGN_NEGATIVE
   */
-__STATIC_INLINE uint32_t LL_RTC_CAL_GetCoarseDigitalSign(RTC_TypeDef* RTCx)
+__STATIC_INLINE uint32_t LL_RTC_CAL_GetCoarseDigitalSign(RTC_TypeDef *RTCx)
 {
   return (uint32_t)(READ_BIT(RTCx->CALIBR, RTC_CALIBR_DCS));
 }
@@ -3210,7 +3084,7 @@
 /**
   * @brief  Insert or not One RTCCLK pulse every 2exp11 pulses (frequency increased by 488.5 ppm)
   * @note   Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
-  * @note Bit can be written only when RECALPF is set to 0 in RTC_ISR
+  * @note   Bit can be written only when RECALPF is set to 0 in RTC_ISR
   * @rmtoll CALR         CALP          LL_RTC_CAL_SetPulse
   * @param  RTCx RTC Instance
   * @param  Pulse This parameter can be one of the following values:
@@ -3231,11 +3105,11 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_CAL_IsPulseInserted(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CALR, RTC_CALR_CALP) == (RTC_CALR_CALP));
+  return ((READ_BIT(RTCx->CALR, RTC_CALR_CALP) == (RTC_CALR_CALP)) ? 1UL : 0UL);
 }
 
 /**
-  * @brief  Set the calibration cycle period
+  * @brief  Set smooth calibration cycle period
   * @note   Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
   * @note   Bit can be written only when RECALPF is set to 0 in RTC_ISR
   * @rmtoll CALR         CALW8         LL_RTC_CAL_SetPeriod\n
@@ -3253,7 +3127,7 @@
 }
 
 /**
-  * @brief  Get the calibration cycle period
+  * @brief  Get smooth calibration cycle period
   * @rmtoll CALR         CALW8         LL_RTC_CAL_GetPeriod\n
   *         CALR         CALW16        LL_RTC_CAL_GetPeriod
   * @param  RTCx RTC Instance
@@ -3268,7 +3142,7 @@
 }
 
 /**
-  * @brief  Set Calibration minus
+  * @brief  Set smooth Calibration minus
   * @note   Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
   * @note   Bit can be written only when RECALPF is set to 0 in RTC_ISR
   * @rmtoll CALR         CALM          LL_RTC_CAL_SetMinus
@@ -3282,7 +3156,7 @@
 }
 
 /**
-  * @brief  Get Calibration minus
+  * @brief  Get smooth Calibration minus
   * @rmtoll CALR         CALM          LL_RTC_CAL_GetMinus
   * @param  RTCx RTC Instance
   * @retval Value between Min_Data=0x00 and Max_Data= 0x1FF
@@ -3308,10 +3182,9 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RECALP(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_RECALPF) == (RTC_ISR_RECALPF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_RECALPF) == (RTC_ISR_RECALPF)) ? 1UL : 0UL);
 }
 
-
 #if defined(RTC_TAMPER2_SUPPORT)
 /**
   * @brief  Get RTC_TAMP2 detection flag
@@ -3321,7 +3194,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_TAMP2F) == (RTC_ISR_TAMP2F));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_TAMP2F) == (RTC_ISR_TAMP2F)) ? 1UL : 0UL);
 }
 #endif /* RTC_TAMPER2_SUPPORT */
 
@@ -3333,7 +3206,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_TAMP1F) == (RTC_ISR_TAMP1F));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_TAMP1F) == (RTC_ISR_TAMP1F)) ? 1UL : 0UL);
 }
 
 /**
@@ -3344,7 +3217,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOV(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_TSOVF) == (RTC_ISR_TSOVF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_TSOVF) == (RTC_ISR_TSOVF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3355,7 +3228,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TS(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_TSF) == (RTC_ISR_TSF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_TSF) == (RTC_ISR_TSF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3366,7 +3239,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUT(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_WUTF) == (RTC_ISR_WUTF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_WUTF) == (RTC_ISR_WUTF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3377,7 +3250,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRB(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRBF) == (RTC_ISR_ALRBF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_ALRBF) == (RTC_ISR_ALRBF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3388,10 +3261,9 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRA(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRAF) == (RTC_ISR_ALRAF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_ALRAF) == (RTC_ISR_ALRAF)) ? 1UL : 0UL);
 }
 
-
 #if defined(RTC_TAMPER2_SUPPORT)
 /**
   * @brief  Clear RTC_TAMP2 detection flag
@@ -3479,7 +3351,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INIT(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_INITF) == (RTC_ISR_INITF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_INITF) == (RTC_ISR_INITF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3490,7 +3362,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_RSF) == (RTC_ISR_RSF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_RSF) == (RTC_ISR_RSF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3512,7 +3384,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INITS(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_INITS) == (RTC_ISR_INITS));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_INITS) == (RTC_ISR_INITS)) ? 1UL : 0UL);
 }
 
 /**
@@ -3523,7 +3395,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SHP(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_SHPF) == (RTC_ISR_SHPF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_SHPF) == (RTC_ISR_SHPF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3534,7 +3406,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTW(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_WUTWF) == (RTC_ISR_WUTWF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_WUTWF) == (RTC_ISR_WUTWF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3545,7 +3417,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRBW(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRBWF) == (RTC_ISR_ALRBWF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_ALRBWF) == (RTC_ISR_ALRBWF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3556,7 +3428,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRAW(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRAWF) == (RTC_ISR_ALRAWF));
+  return ((READ_BIT(RTCx->ISR, RTC_ISR_ALRAWF) == (RTC_ISR_ALRAWF)) ? 1UL : 0UL);
 }
 
 /**
@@ -3693,7 +3565,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TS(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_TSIE) == (RTC_CR_TSIE));
+  return ((READ_BIT(RTCx->CR, RTC_CR_TSIE) == (RTC_CR_TSIE)) ? 1UL : 0UL);
 }
 
 /**
@@ -3704,7 +3576,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_WUT(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_WUTIE) == (RTC_CR_WUTIE));
+  return ((READ_BIT(RTCx->CR, RTC_CR_WUTIE) == (RTC_CR_WUTIE)) ? 1UL : 0UL);
 }
 
 /**
@@ -3715,7 +3587,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRB(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_ALRBIE) == (RTC_CR_ALRBIE));
+  return ((READ_BIT(RTCx->CR, RTC_CR_ALRBIE) == (RTC_CR_ALRBIE)) ? 1UL : 0UL);
 }
 
 /**
@@ -3726,7 +3598,7 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRA(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->CR, RTC_CR_ALRAIE) == (RTC_CR_ALRAIE));
+  return ((READ_BIT(RTCx->CR, RTC_CR_ALRAIE) == (RTC_CR_ALRAIE)) ? 1UL : 0UL);
 }
 
 /**
@@ -3737,8 +3609,8 @@
   */
 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP(RTC_TypeDef *RTCx)
 {
-  return (READ_BIT(RTCx->TAFCR,
-                   RTC_TAFCR_TAMPIE) == (RTC_TAFCR_TAMPIE));
+  return ((READ_BIT(RTCx->TAFCR,
+                    RTC_TAFCR_TAMPIE) == (RTC_TAFCR_TAMPIE)) ? 1UL : 0UL);
 }
 
 /**
@@ -3788,6 +3660,4 @@
 }
 #endif
 
-#endif /* __STM32F4xx_LL_RTC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* STM32F4xx_LL_RTC_H */
diff --git a/Inc/stm32f4xx_ll_sdmmc.h b/Inc/stm32f4xx_ll_sdmmc.h
index 540a0e1..a4092d0 100644
--- a/Inc/stm32f4xx_ll_sdmmc.h
+++ b/Inc/stm32f4xx_ll_sdmmc.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -1069,8 +1068,14 @@
 
 /* SDMMC Cards mode management functions */
 HAL_StatusTypeDef SDIO_SetSDMMCReadWaitMode(SDIO_TypeDef *SDIOx, uint32_t SDIO_ReadWaitMode);
+/**
+  * @}
+  */
 
 /* SDMMC Commands management functions */
+/** @addtogroup HAL_SDMMC_LL_Group4
+  * @{
+  */
 uint32_t SDMMC_CmdBlockLength(SDIO_TypeDef *SDIOx, uint32_t BlockSize);
 uint32_t SDMMC_CmdReadSingleBlock(SDIO_TypeDef *SDIOx, uint32_t ReadAdd);
 uint32_t SDMMC_CmdReadMultiBlock(SDIO_TypeDef *SDIOx, uint32_t ReadAdd);
@@ -1091,13 +1096,26 @@
 uint32_t SDMMC_CmdSendSCR(SDIO_TypeDef *SDIOx);
 uint32_t SDMMC_CmdSendCID(SDIO_TypeDef *SDIOx);
 uint32_t SDMMC_CmdSendCSD(SDIO_TypeDef *SDIOx, uint32_t Argument);
-uint32_t SDMMC_CmdSendEXTCSD(SDIO_TypeDef *SDIOx, uint32_t Argument);
 uint32_t SDMMC_CmdSetRelAdd(SDIO_TypeDef *SDIOx, uint16_t *pRCA);
+uint32_t SDMMC_CmdSetRelAddMmc(SDIO_TypeDef *SDIOx, uint16_t RCA);
 uint32_t SDMMC_CmdSendStatus(SDIO_TypeDef *SDIOx, uint32_t Argument);
 uint32_t SDMMC_CmdStatusRegister(SDIO_TypeDef *SDIOx);
 uint32_t SDMMC_CmdOpCondition(SDIO_TypeDef *SDIOx, uint32_t Argument);
 uint32_t SDMMC_CmdSwitch(SDIO_TypeDef *SDIOx, uint32_t Argument);
+uint32_t SDMMC_CmdSendEXTCSD(SDIO_TypeDef *SDIOx, uint32_t Argument);
+/**
+  * @}
+  */
 
+/* SDMMC Responses management functions *****************************************/
+/** @addtogroup HAL_SDMMC_LL_Group5
+  * @{
+  */
+uint32_t SDMMC_GetCmdResp1(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint32_t Timeout);
+uint32_t SDMMC_GetCmdResp2(SDIO_TypeDef *SDIOx);
+uint32_t SDMMC_GetCmdResp3(SDIO_TypeDef *SDIOx);
+uint32_t SDMMC_GetCmdResp6(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint16_t *pRCA);
+uint32_t SDMMC_GetCmdResp7(SDIO_TypeDef *SDIOx);
 /**
   * @}
   */
@@ -1121,5 +1139,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_SDMMC_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_spi.h b/Inc/stm32f4xx_ll_spi.h
index d7ef2f6..4f3b030 100644
--- a/Inc/stm32f4xx_ll_spi.h
+++ b/Inc/stm32f4xx_ll_spi.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -2026,4 +2025,3 @@
 
 #endif /* STM32F4xx_LL_SPI_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_system.h b/Inc/stm32f4xx_ll_system.h
index cc7635e..84ea5c4 100644
--- a/Inc/stm32f4xx_ll_system.h
+++ b/Inc/stm32f4xx_ll_system.h
@@ -3,6 +3,18 @@
   * @file    stm32f4xx_ll_system.h
   * @author  MCD Application Team
   * @brief   Header file of SYSTEM LL module.
+  *
+  ******************************************************************************
+  * @attention
+  *
+  *Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -16,17 +28,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Define to prevent recursive inclusion -------------------------------------*/
@@ -767,7 +768,7 @@
 /**
   * @brief  Enables the DFSDM1 or DFSDM2 Delay clock
   * @rmtoll SYSCFG_MCHDLYCR MCHDLYEN      LL_SYSCFG_DFSDM_EnableDelayClock
-  * @param MCHDLY This paramater can be one of the following values
+  * @param MCHDLY This parameter can be one of the following values
   *         @arg @ref LL_SYSCFG_DFSDM1_MCHDLYEN
   *         @arg @ref LL_SYSCFG_DFSDM2_MCHDLYEN
   * @retval None
@@ -780,7 +781,7 @@
 /**
   * @brief  Disables the DFSDM1 or the DFSDM2 Delay clock
   * @rmtoll SYSCFG_MCHDLYCR MCHDLY1EN      LL_SYSCFG_DFSDM1_DisableDelayClock
-  * @param MCHDLY This paramater can be one of the following values
+  * @param MCHDLY This parameter can be one of the following values
   *         @arg @ref LL_SYSCFG_DFSDM1_MCHDLYEN
   *         @arg @ref LL_SYSCFG_DFSDM2_MCHDLYEN
   * @retval None
@@ -1707,4 +1708,4 @@
 
 #endif /* __STM32F4xx_LL_SYSTEM_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Inc/stm32f4xx_ll_tim.h b/Inc/stm32f4xx_ll_tim.h
index 3f83c98..61148e4 100644
--- a/Inc/stm32f4xx_ll_tim.h
+++ b/Inc/stm32f4xx_ll_tim.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1045,7 +1044,7 @@
   * @retval Prescaler value  (between Min_Data=0 and Max_Data=65535)
   */
 #define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__)   \
-  (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)(((__TIMCLK__)/(__CNTCLK__)) - 1U) : 0U)
+  (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
 
 /**
   * @brief  HELPER macro calculating the auto-reload value to achieve the required output signal frequency.
@@ -4092,4 +4091,3 @@
 #endif
 
 #endif /* __STM32F4xx_LL_TIM_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_usart.h b/Inc/stm32f4xx_ll_usart.h
index 86ee731..e07c232 100644
--- a/Inc/stm32f4xx_ll_usart.h
+++ b/Inc/stm32f4xx_ll_usart.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -2520,4 +2519,3 @@
 
 #endif /* __STM32F4xx_LL_USART_H */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_usb.h b/Inc/stm32f4xx_ll_usb.h
index ca78e2a..a7114cd 100644
--- a/Inc/stm32f4xx_ll_usb.h
+++ b/Inc/stm32f4xx_ll_usb.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -23,7 +22,7 @@
 
 #ifdef __cplusplus
 extern "C" {
-#endif
+#endif /* __cplusplus */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal_def.h"
@@ -80,6 +79,7 @@
   HC_DATATGLERR
 } USB_OTG_HCStateTypeDef;
 
+
 /**
   * @brief  USB Instance Initialization Structure definition
   */
@@ -131,6 +131,9 @@
   uint8_t   is_stall;             /*!< Endpoint stall condition
                                        This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
 
+  uint8_t   is_iso_incomplete;    /*!< Endpoint isoc condition
+                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
+
   uint8_t   type;                 /*!< Endpoint type
                                        This parameter can be any value of @ref USB_LL_EP_Type                   */
 
@@ -152,6 +155,8 @@
 
   uint32_t  xfer_len;             /*!< Current transfer length                                                  */
 
+  uint32_t  xfer_size;            /*!< requested transfer size                                                  */
+
   uint32_t  xfer_count;           /*!< Partial transfer length in case of multi packet transfer                 */
 } USB_OTG_EPTypeDef;
 
@@ -188,7 +193,7 @@
 
   uint8_t   *xfer_buff;         /*!< Pointer to transfer buffer.                                                */
 
-  uint32_t  XferSize;             /*!< OTG Channel transfer size.                                                   */
+  uint32_t  XferSize;             /*!< OTG Channel transfer size.                                               */
 
   uint32_t  xfer_len;           /*!< Current transfer length.                                                   */
 
@@ -318,10 +323,10 @@
 /** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
   * @{
   */
-#define EP_MPS_64                        0U
-#define EP_MPS_32                        1U
-#define EP_MPS_16                        2U
-#define EP_MPS_8                         3U
+#define EP_MPS_64                              0U
+#define EP_MPS_32                              1U
+#define EP_MPS_16                              2U
+#define EP_MPS_8                               3U
 /**
   * @}
   */
@@ -395,6 +400,12 @@
 #define GRXSTS_PKTSTS_DATA_TOGGLE_ERR          5U
 #define GRXSTS_PKTSTS_CH_HALTED                7U
 
+#define TEST_J                                 1U
+#define TEST_K                                 2U
+#define TEST_SE0_NAK                           3U
+#define TEST_PACKET                            4U
+#define TEST_FORCE_EN                          5U
+
 #define USBx_PCGCCTL    *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_PCGCCTL_BASE)
 #define USBx_HPRT0      *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_HOST_PORT_BASE)
 
@@ -415,6 +426,10 @@
 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
 
 #define EP_ADDR_MSK                            0xFU
+
+#ifndef USE_USB_DOUBLE_BUFFER
+#define USE_USB_DOUBLE_BUFFER                  1U
+#endif /* USE_USB_DOUBLE_BUFFER */
 /**
   * @}
   */
@@ -460,6 +475,7 @@
 void             *USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
 HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
 HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
+HAL_StatusTypeDef USB_EPStopXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
 HAL_StatusTypeDef USB_SetDevAddress(USB_OTG_GlobalTypeDef *USBx, uint8_t address);
 HAL_StatusTypeDef USB_DevConnect(USB_OTG_GlobalTypeDef *USBx);
 HAL_StatusTypeDef USB_DevDisconnect(USB_OTG_GlobalTypeDef *USBx);
@@ -514,9 +530,7 @@
 
 #ifdef __cplusplus
 }
-#endif
+#endif /* __cplusplus */
 
 
 #endif /* STM32F4xx_LL_USB_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_utils.h b/Inc/stm32f4xx_ll_utils.h
index 3bac30c..2b254a1 100644
--- a/Inc/stm32f4xx_ll_utils.h
+++ b/Inc/stm32f4xx_ll_utils.h
@@ -18,13 +18,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -306,5 +305,3 @@
 #endif
 
 #endif /* __STM32F4xx_LL_UTILS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Inc/stm32f4xx_ll_wwdg.h b/Inc/stm32f4xx_ll_wwdg.h
index f20b82d..5cbca0d 100644
--- a/Inc/stm32f4xx_ll_wwdg.h
+++ b/Inc/stm32f4xx_ll_wwdg.h
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -315,5 +314,3 @@
 #endif
 
 #endif /* STM32F4xx_LL_WWDG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/LICENSE.md b/LICENSE.md
index fa1b6f2..479c4f6 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,4 +1,4 @@
-Copyright 2016 STMicroelectronics.
+Copyright 2017 STMicroelectronics.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/README.md b/README.md
index a4ed686..c345d9b 100644
--- a/README.md
+++ b/README.md
@@ -21,13 +21,6 @@
 
 This **stm32f4xx_hal_driver** MCU component repository is one element of the STM32CubeF4 MCU embedded software package, providing the **HAL-LL Drivers** part.
 
-## License
-
-Copyright (c) 2016 STMicroelectronics.
-
-This software component is licensed by STMicroelectronics under BSD-3-Clause license. You may not use this file except in compliance with the License. 
-You may obtain a copy of the License [here](https://opensource.org/licenses/BSD-3-Clause).
-
 ## Release note
 
 Details about the content of this release are available in the release note [here](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html).
@@ -48,6 +41,7 @@
 Tag v1.7.11| Tag v2.6.6 | Tag v5.4.0_cm4 | Tag v1.26.0 (and following, if any, till HAL tag)
 Tag v1.7.12| Tag v2.6.6 | Tag v5.4.0_cm4 | Tag v1.26.1 (and following, if any, till HAL tag)
 Tag v1.7.13| Tag v2.6.7 | Tag v5.4.0_cm4 | Tag v1.26.2 (and following, if any, till HAL tag)
+Tag v1.8.0 | Tag v2.6.8 | Tag v5.4.0_cm4 | Tag v1.27.0 (and following, if any, till HAL tag)
 
 The full **STM32CubeF4** MCU package is available [here](https://github.com/STMicroelectronics/STM32CubeF4).
 
diff --git a/Release_Notes.html b/Release_Notes.html
index 4fafe1b..08f03c7 100644
--- a/Release_Notes.html
+++ b/Release_Notes.html
@@ -1,162 +1,59 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html xmlns:v="urn:schemas-microsoft-com:vml"
-  xmlns:o="urn:schemas-microsoft-com:office:office"
-  xmlns:w="urn:schemas-microsoft-com:office:word"
-  xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
-  xmlns="http://www.w3.org/TR/REC-html40">
-  <head>
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head>
+
+
+
+
+
     <meta http-equiv="content-type" content="text/html;
-      charset=windows-1252">
-    <title>Release Notes for STM32F4xx HAL Drivers</title>
-  </head>
-  <body style="tab-interval:.5in;word-wrap:break-word" link="blue"
-    lang="EN-US" vlink="blue">
+      charset=windows-1252"><title>Release Notes for STM32F4xx HAL Drivers</title></head><body lang="EN-US" link="blue" vlink="blue">
     <div class="WordSection1">
       <div>
-        <p class="MsoNormal"
-          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span
-            style="font-family:&quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
+        <p class="MsoNormal" style=""><span style="font-family: &quot;Arial&quot;,sans-serif;"><o:p>&nbsp;</o:p></span></p>
         <div align="center">
-          <table class="MsoNormalTable"
-            style="width:675.0pt;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt:
-
-
-
-
-            0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0"
-            border="0" width="900">
+          <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900">
             <tbody>
-              <tr
-                style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes">
-                <td style="padding:0in 0in 0in 0in" valign="top">
-                  <table class="MsoNormalTable"
-                    style="width:675.0pt;mso-cellspacing:0in;mso-yfti-tbllook:1184;mso-padding-alt:
-
-
-
-
-                    0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0"
-                    border="0" width="900">
+              <tr style="">
+                <td style="padding: 0in;" valign="top">
+                  <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900">
                     <tbody>
-                      <tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes">
-                        <td style="padding:0in 5.4pt 0in 5.4pt"
-                          valign="top">
-                          <p class="MsoNormal"
-                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                            auto"><span
-                              style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                              color:blue"><a
-                                href="../../Release_Notes.html">Back to
-                                Release page</a></span><span
-                              style="font-size:10.0pt"><o:p></o:p></span></p>
+                      <tr style="">
+                        <td style="padding: 0in 5.4pt;" valign="top">
+                          <p class="MsoNormal" style=""><span style="font-size: 8pt; font-family: &quot;Arial&quot;,sans-serif; color: blue;"><a href="../../Release_Notes.html">Back to
+                                Release page</a></span><span style="font-size: 10pt;"><o:p></o:p></span></p>
                         </td>
                       </tr>
-                      <tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes">
-                        <td style="padding:1.5pt 1.5pt 1.5pt 1.5pt">
-                          <h1
-                            style="margin-bottom:.25in;text-align:center"
-                            align="center"><span
-                              style="font-size:20.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                      <tr style="">
+                        <td style="padding: 1.5pt;">
+                          <h1 style="margin-bottom: 0.25in; text-align: center;" align="center"><span style="font-size: 20pt; font-family: &quot;Verdana&quot;,sans-serif; color: rgb(51, 102, 255);">Release
 
 
 
-
-                              &quot;Times New Roman&quot;;color:#3366FF">Release
-
-
-
-                              Notes for STM32F4xx HAL Drivers</span><span
-                              style="font-size:20.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                              &quot;Times New Roman&quot;"><o:p></o:p></span></h1>
-                          <p class="MsoNormal"
-                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                            auto;text-align:center" align="center"><span
-                              style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-
-
-
-
-                              color:black">Copyright 2017
-                              STMicroelectronics</span><span
-                              style="color:black"><u1:p></u1:p><o:p></o:p></span></p>
-                          <p class="MsoNormal"
-                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                            auto;text-align:center" align="center"><span
-                              style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-
-
-
-
-                              color:black;mso-no-proof:yes"><img
-                                id="_x0000_i1044"
-                                src="_htmresc/st_logo.png" border="0"
-                                height="81" width="109"></span><span
-                              style="font-size: 10.0pt"><o:p></o:p></span></p>
+                              Notes for STM32F4xx HAL Drivers</span><span style="font-size: 20pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></h1>
+                          <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif; color: black;">Copyright 2017
+                              STMicroelectronics</span><span style="color: black;"><u1:p></u1:p><o:p></o:p></span></p>
+                          <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif; color: black;"><img id="_x0000_i1044" src="_htmresc/st_logo.png" border="0" height="81" width="109"></span><span style="font-size: 10pt;"><o:p></o:p></span></p>
                         </td>
                       </tr>
                     </tbody>
                   </table>
-                  <p class="MsoNormal"
-                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span
-style="font-family:&quot;Arial&quot;,sans-serif;display:none;mso-hide:all"><o:p>&nbsp;</o:p></span></p>
-                  <table class="MsoNormalTable"
-                    style="width:675.0pt;mso-cellspacing:1.5pt;mso-yfti-tbllook:1184;mso-padding-alt:
-
-
-
-
-                    0in 5.4pt 0in 5.4pt" cellpadding="0" border="0"
-                    width="900">
+                  <p class="MsoNormal" style=""><span style="font-family: &quot;Arial&quot;,sans-serif; display: none;"><o:p>&nbsp;</o:p></span></p>
+                  <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" width="900">
                     <tbody>
-                      <tr
-                        style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes">
-                        <td style="padding:0in 0in 0in 0in" valign="top">
-                          <table class="MsoNormalTable"
-                            style="width:846.25pt;mso-cellspacing:1.5pt;mso-yfti-tbllook:1184;
-                            mso-padding-alt:0in 5.4pt 0in 5.4pt"
-                            cellpadding="0" border="0" width="1128">
+                      <tr style="">
+                        <td style="padding: 0in;" valign="top">
+                          <table class="MsoNormalTable" style="width: 846.25pt;" border="0" cellpadding="0" width="1128">
                             <tbody>
-                              <tr
-                                style="mso-yfti-irow:0;mso-yfti-firstrow:yes">
-                                <td style="width:843.25pt;padding:0in
-                                  0in 0in 0in" width="1124" valign="top">
-                                  <h2
-                                    style="background:#3366FF;-moz-background-clip:
-                                    initial;-moz-background-origin:
-                                    initial;
-                                    -moz-background-inline-policy:
-                                    initial;background-position-x:0%;
-                                    background-position-y:50%;background-attachment:scroll"><font
-                                      color="#ffffff"><a name="History"></a><span
-                                        style="font-size:12.0pt;mso-fareast-font-family:&quot;Times
+                              <tr style="">
+                                <td style="padding: 0in; width: 843.25pt;" valign="top" width="1124">
+                                  <h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><font color="#ffffff"><a name="History"></a><span style="font-size: 12pt;">Update
 
 
 
-                                        New Roman&quot;; color:white">Update
-
-
-
-                                        History</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></font></h2>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New
-                                        Roman&quot;;color:white">V1.7.13
-                                        / 16-July-2021</span></font></h3>
+                                        History</span><span style=""><o:p></o:p></span></font></h2><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.8.0
+                                        / 11-February-2022</span></font></h3>
                                   <blockquote>
-                                    <p><b><u><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">Main
+                                    <p><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main
 
 
 
@@ -164,177 +61,316 @@
                                             Changes<br>
                                           </span></u></b></p>
                                   </blockquote>
-                                  <ul style="orphans:
-                                    2;text-align:start;widows:
-                                    2;word-spacing: 0px" type="disc">
-                                    <li>
+                                  <ul style="orphans: 2; text-align: start; widows: 2; word-spacing: 0px;" type="disc">
+                                    <li><font face="Verdana" size="-1">General updates to fix known defects and implementation enhancements.</font></li>
+                    <li><font face="Verdana" size="-1">All source files: update disclaimer to add reference to the new license agreement.<br>
+</font></li>
+<li><font face="Verdana" size="-1"><b>The following changes done on the HAL drivers require an update of the application code based on older HAL versions</b></font></li><ul><li><font face="Verdana" size="-1">Rework of HAL Ethernet driver to resolve problems and improve performance (<b>compatibility break</b>).&nbsp;</font></li><li><font face="Verdana" size="-1">A new HAL Ethernet driver has been redesigned with new APIs, to bypass limitations with previous HAL Ethernet driver version.</font></li><li><font face="Verdana" size="-1">The new HAL Ethernet driver is the
+recommended version. It is located as usual in
+Drivers/STM32F4xx_HAL_Driver/Src and Drivers/STM32F4xx_HAL_Driver/Inc
+folders.&nbsp;</font></li><ul><li><font face="Verdana" size="-1">It can be enabled through switch HAL_ETH_MODULE_ENABLED in stm32f4xx_hal_conf.h</font></li></ul><li><font face="Verdana" size="-1">The legacy HAL Ethernet driver is also
+present in the release in Drivers/STM32F4xx_HAL_Driver/Src/Legacy and
+Drivers/STM32F4xx_HAL_Driver/Inc/Legacy folders for software
+compatibility reasons.</font></li><ul><li><font face="Verdana" size="-1">Its usage is not recommended as
+deprecated. It can however be enabled through switch
+HAL_ETH_LEGACY_MODULE_ENABLED in stm32f4xx_hal_conf.h</font></li></ul></ul>
+                    <li><p><font face="Verdana" size="-1"><strong>HAL</strong>
+                                          updates</font></p>
+                                      <font face="Verdana" size="-1"> </font>
+                                      
+                      <ul>
+
+                                        <font face="Verdana" size="-1">
+                                        </font>
+                                        
+                        <li><font face="Verdana" size="-1"><strong>HAL ETH </strong>update </font>
+                                          <br><ul>
+                                            <li><font face="Verdana" size="-1">Entire receive process reworked.</font></li><li><font face="Verdana" size="-1">Resolve the problem of received data corruption.</font></li><li><font face="Verdana" size="-1">Implement transmission in interrupt mode.</font></li><li><font face="Verdana" size="-1">Handle one interrupt for multiple transmitted packets.</font></li><li><font face="Verdana" size="-1">Implement APIs to handle PTP feature.</font></li><li><font face="Verdana" size="-1">Implement APIs to handle Timestamp feature.</font></li><li><font face="Verdana" size="-1">Add support of receive buffer unavailable.</font></li>
+                            <li><font face="Verdana" size="-1">Update HAL_ETH_IRQHandler() to handle receive buffer unavailable.</font></li>
+
+                                          </ul></li>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL SMBUS</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Update to fix issue of mismatched data
+received by master in case of data size to be transmitted by the slave
+is greater than the data size to be received by the master.</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">Add flush on TX register.</font></li>
+                          </ul>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL TIM</span> update</font></li>
+                        <ul>
+<li><font face="Verdana" size="-1">__LL_TIM_CALC_PSC() macro update to round up the evaluate value when the fractional part of the division is greater than 0.5.</font></li>
+                        </ul>
+
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL LPTIM</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1"> Add check on PRIMASK register to prevent from enabling unwanted global interrupts within LPTIM_Disable() and LL_LPTIM_Disable()</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL UART</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Add const qualifier for read only pointers.</font></li>
+                          <li><font face="Verdana" size="-1">Improve header description of UART_WaitOnFlagUntilTimeout() function.</font></li>
+                          <li><font face="Verdana" size="-1">Add a check on the UART parity before enabling the parity error interruption.</font></li>
+                          <li><font face="Verdana" size="-1">Fix typo in UART_IT_TXE bit description.<br>
+</font></li>
+
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL IRDA </span>update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Improve header description of IRDA_WaitOnFlagUntilTimeout() function.</font></li>
+                          <li><font face="Verdana" size="-1">Add a check on the IRDA parity before enabling the parity error interrupt.</font></li>
+                          <li><font face="Verdana" size="-1">Add const qualifier for read only pointers.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL SMARTCARD</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Improve header description of SMARTCARD_WaitOnFlagUntilTimeout() function</font></li>
+                          <li><font face="Verdana" size="-1">Add const qualifier for read only pointers.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL NOR</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Apply adequate commands according to the command set field value</font></li>
+                          <li><font face="Verdana" size="-1">command set 1 for Micron JS28F512P33</font></li>
+                          <li><font face="Verdana" size="-1">command set 2 for Micron M29W128G and Cypress S29GL128P</font></li>
+                          <li><font face="Verdana" size="-1">Add new command operations:</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">NOR_CMD_READ_ARRAY</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_WORD_PROGRAM</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_BUFFERED_PROGRAM</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_CONFIRM</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_BLOCK_ERASE</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_BLOCK_UNLOCK</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_READ_STATUS_REG</font></li>
+                            <li><font face="Verdana" size="-1">NOR_CMD_CLEAR_STATUS_REG</font></li>
+                          </ul>
+                          <li><font face="Verdana" size="-1">Update some APIs in order to be compliant for memories with different command set, the updated APIs are:</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Init()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Read_ID()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_ReturnToReadMode()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Read()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Program()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_ReadBuffer()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_ProgramBuffer()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Erase_Block()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_Erase_Chip()</font></li>
+                            <li><font face="Verdana" size="-1">HAL_NOR_GetStatus()</font></li>
+                          </ul>
+                          <li><font face="Verdana" size="-1">Align HAL_NOR_Init() API with core of the function when write operation is disabled to avoid HardFault.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL SDMMC</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Take into account the voltage range in the CMD1 command.</font></li>
+                          <li><font face="Verdana" size="-1">Add new LL function to have correct response for MMC driver.</font></li>
+                          <li><font face="Verdana" size="-1">Update the driver to have all fields correctly initialized.</font></li>
+                          <li><font face="Verdana" size="-1">Add an internal variable to manage the power class and call it before to update speed of bus width.</font></li>
+                          <li><font face="Verdana" size="-1">Add new API to get the value of the Extended CSD register and populate the ExtCSD field of the MMC handle.</font></li>
+                          <li><font face="Verdana" size="-1">In HAL_MMC_InitCard(), call to SDIO_PowerState_ON() moved after
+__HAL_MMC_ENABLE() to ensure MMC clock is enabled before the call to
+HAL_Delay() from within SDIO_PowerState_ON().</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL DMA</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Manage the case of an invalid value of CallbackID passed to the HAL_DMA_RegisterCallback() API.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL LTDC</span> update</font></li>
+                        <ul>
+<li><font face="Verdana" size="-1">Update HAL_LTDC_DeInit() to fix MCU Hang up during LCD turn OFF.</font></li>
+                        </ul>
+
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL I2C</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Update to fix issue detected due to low system frequency execution (HSI).</font></li>
+                          <li><font face="Verdana" size="-1">Declare an internal macro link to DMA macro to check remaining data: I2C_GET_DMA_REMAIN_DATA</font></li>
+                          <li><font face="Verdana" size="-1">Update HAL I2C Master Receive IT process to safe manage data N= 2 and N= 3.</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">Disable RxNE interrupt if nothing to do.</font></li>
+                          </ul>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL USART</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Improve header description of USART_WaitOnFlagUntilTimeout() function.</font></li>
+                          <li><font face="Verdana" size="-1">Add a check on the USART parity before enabling the parity error interrupt.</font></li>
+                          <li><font face="Verdana" size="-1">Add const qualifier for read only pointers.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL/LL ADC</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Update LL_ADC_IsActiveFlag_MST_EOCS() API to get the appropriate flag.</font></li>
+                          <li><font face="Verdana" size="-1">Better performance by removing multiple volatile reads or writes in interrupt handler.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL FMPI2C</span> update <br>
+                          </font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Update to handle errors in polling mode.</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">Rename I2C_IsAcknowledgeFailed() to I2C_IsErrorOccurred() and correctly manage when error occurs.</font></li>
+                          </ul>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL EXTI</span> update</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Update HAL_EXTI_GetConfigLine() API to fix wrong calculation of GPIOSel value.</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL QSPI</span> update</font></li>
+                        <ul>
+<li><font face="Verdana" size="-1">Update HAL_QSPI_Abort() and&nbsp;
+HAL_QSPI_Abort_IT() APIs to check on QSPI BUSY flag status before
+executing the abort procedure.</font></li>
+                        </ul>
+
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL/LL RTC</span> cleanup</font></li>
+                        <ul>
+                          <li><font face="Verdana" size="-1">Use bits definitions from CMSIS Device header file instead of hard-coded values.</font></li>
+                          <li><font face="Verdana" size="-1">Wrap comments to be 80-character long and correct typos.</font></li>
+                          <li><font face="Verdana" size="-1">Move constants RTC_IT_TAMP. from hal_rtc.h to hal_rtc_ex.h.</font></li>
+                          <li><font face="Verdana" size="-1">Gather all instructions related to exiting the "init" mode into new function RTC_ExitInitMode().</font></li>
+                          <li><font face="Verdana" size="-1">Add
+new macro
+assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper-&gt;Filter,
+sTamper-&gt;Trigger)) to check tamper filtering is disabled in case
+tamper events are triggered on signal edges.</font></li>
+                          <li><font face="Verdana" size="-1">Rework functions HAL_RTCEx_SetTamper() and HAL_RTCEx_SetTamper_IT() to:</font></li>
+                          <ul>
+                            <li><font face="Verdana" size="-1">Write in TAFCR register in one single access instead of two.</font></li>
+                            <li><font face="Verdana" size="-1">Avoid modifying user structure sTamper.</font></li>
+                          </ul>
+                          <li><font face="Verdana" size="-1">Remove functions LL_RTC_EnablePushPullMode() and LL_RTC_DisablePushPullMode() as related to non-supported features.</font></li>
+                          <li><font face="Verdana" size="-1">Remove any reference to non-supported features (e.g., LL_RTC_ISR_TAMP3F).</font></li>
+                          <li><font face="Verdana" size="-1">Remove
+useless conditional defines as corresponding features are supported by
+all part-numbers (e.g., #if defined(RTC_TAFCR_TAMPPRCH)).</font></li>
+                        </ul>
+                        <li><font face="Verdana" size="-1"><span style="font-weight: bold;">HAL USB OTG</span> update</font></li>
+                        <ul>
+                          
+                          
+                          <li><font face="Verdana" size="-1">Fix USB_FlushRxFifo() and USB_FlushTxFifo() APIs by adding check on AHB master IDLE state before flushing the USB FIFO</font></li>
+                          <li><font face="Verdana" size="-1">Fix to avoid resetting host channel direction during channel halt</font></li>
+                          <li><font face="Verdana" size="-1">Fix to report correct received amount of data with USB DMA enabled</font></li>
+                          <li><font face="Verdana" size="-1">Fix to avoid compiler optimization on count variable used for USB HAL timeout loop check</font></li>
+                          <li><font face="Verdana" size="-1">Add missing registered callbacks check for HAL_HCD_HC_NotifyURBChange_Callback()</font></li>
+                          <li><font face="Verdana" size="-1">Add new API HAL_PCD_SetTestMode() APIs to handle USB device high speed Test modes</font></li>
+                          <li><font face="Verdana" size="-1">Setting SNAK for EPs not required during device reset</font></li>
+                          <li><font face="Verdana" size="-1">Update USB IRQ handler to enable EP OUT disable</font></li>
+                          <li><font face="Verdana" size="-1">Add support of USB IN/OUT Iso incomplete</font></li>
+                          <li><font face="Verdana" size="-1">Fix USB BCD data contact timeout<br>
+                            <br>
+                            </font></li>
+
+                        </ul>
+                      </ul>
+                    </li>
+</ul>
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.13
+                                        / 16-July-2021</span></font></h3>
+                                  <blockquote>
+                                    <p><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main
+
+
+
+
+                                            Changes<br>
+                                          </span></u></b></p>
+                                  </blockquote>
+                                  <ul style="orphans: 2; text-align: start; widows: 2; word-spacing: 0px;" type="disc"><li>
                                       <p><font face="Verdana" size="-1"><strong>HAL</strong>
                                           updates</font></p>
                                       <font face="Verdana" size="-1"> </font>
-                                      <ul>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL EXTI</strong>
+                                      <ul><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL EXTI</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 HAL_EXTI_GetConfigLine()
                                                 API to set default
                                                 configuration value of
                                                 Trigger and GPIOSel
                                                 before checking each
-                                                corresponding registers.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL GPIO</strong>
+                                                corresponding registers.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL GPIO</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 HAL_GPIO_Init() API to
                                                 avoid the configuration
                                                 of PUPDR register when
-                                                Analog mode is selected.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL DMA</strong>
+                                                Analog mode is selected.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL DMA</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 HAL_DMA_IRQHandler() API
                                                 to set the DMA state
                                                 before unlocking access
-                                                to the DMA handle.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL/LL ADC</strong>
+                                                to the DMA handle.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL/LL ADC</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 LL_ADC_DeInit() API to
                                                 clear missing SQR3
-                                                register.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                                register.</font></li><li><font face="Verdana" size="-1">Update
                                                 LL_ADC_DMA_GetRegAddr()
                                                 API to prevent unused
                                                 argument compilation
-                                                warning.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update HAL
+                                                warning.</font></li><li><font face="Verdana" size="-1">Update HAL
                                                 timeout mechanism to
                                                 avoid false timeout
                                                 detection in case of
-                                                preemption.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL CAN</strong>
+                                                preemption.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL CAN</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 HAL_CAN_Init() API to be
                                                 aligned with referance
                                                 manual and to avoid
-                                                timeout error:</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL/LL
+                                                timeout error:</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL/LL
                                               RTC_BKP</strong> update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 __HAL_RTC_Â…(__HANDLE__,
                                                 Â…) macros to access
                                                 registers through
                                                 (__HANDLE__)-&gt;Instance
                                                 pointer and avoid
                                                 “unused variable”
-                                                warnings.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Correct month
+                                                warnings.</font></li><li><font face="Verdana" size="-1">Correct month
                                                 management in
-                                                IS_LL_RTC_MONTH() macro.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL RNG</strong>
+                                                IS_LL_RTC_MONTH() macro.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL RNG</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update timeout
+                                          <ul><li><font face="Verdana" size="-1">Update timeout
                                                 mechanism to avoid false
                                                 timeout detection in
-                                                case of preemption.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL QSPI</strong>
+                                                case of preemption.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL QSPI</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">ES0305
+                                          <ul><li><font face="Verdana" size="-1">ES0305
                                                 workaround disabled for
-                                                STM32412xx devices.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL I2C</strong>
+                                                STM32412xx devices.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL I2C</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Update
                                                 HAL_I2C_Mem_Write_DMA()
                                                 and
                                                 HAL_I2C_Mem_Read_DMA()
                                                 APIs to initialize
                                                 Devaddress, Memaddress
                                                 and EventCount
-                                                parameters.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update to
+                                                parameters.</font></li><li><font face="Verdana" size="-1">Update to
                                                 prevent several calls of
                                                 Start bit: </font>
-                                              <ul>
-                                                <li><font face="Verdana"
-                                                    size="-1">Update
+                                              <ul><li><font face="Verdana" size="-1">Update
                                                     I2C_MemoryTransmit_TXE_BTF()
                                                     API to increment
-                                                    EventCount.</font></li>
-                                              </ul>
-                                            </li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update to
+                                                    EventCount.</font></li></ul>
+                                            </li><li><font face="Verdana" size="-1">Update to
                                                 avoid I2C interrupt in
                                                 endless loop: </font>
-                                              <ul>
-                                                <li><font face="Verdana"
-                                                    size="-1">Update
+                                              <ul><li><font face="Verdana" size="-1">Update
                                                     HAL_I2C_Master_Transmit_IT(),
                                                     HAL_I2C_Master_Receive_IT(),
 
@@ -345,226 +381,107 @@
                                                     APIs to unlock the
                                                     I2C peripheral
                                                     before generating
-                                                    the start.</font></li>
-                                              </ul>
-                                            </li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update to use
+                                                    the start.</font></li></ul>
+                                            </li><li><font face="Verdana" size="-1">Update to use
                                                 the right macro to clear
                                                 I2C ADDR flag inside
                                                 I2C_Slave_ADDR() API as
                                                 itÂ’s indicated in the
-                                                reference manual.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                                reference manual.</font></li><li><font face="Verdana" size="-1">Update
                                                 I2C_IsAcknowledgeFailed()
                                                 API to avoid I2C in busy
                                                 state if NACK received
                                                 after transmitting
-                                                register address.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                                register address.</font></li><li><font face="Verdana" size="-1">Update
                                                 HAL_I2C_EV_IRQHandler()
                                                 and
                                                 I2C_MasterTransmit_BTF()
                                                 APIs to correctly manage
                                                 memory transfers: </font>
-                                              <ul>
-                                                <li><font face="Verdana"
-                                                    size="-1">Add check
+                                              <ul><li><font face="Verdana" size="-1">Add check
                                                     on memory mode
                                                     before calling
                                                     callbacks
-                                                    procedures.</font></li>
-                                              </ul>
-                                            </li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>LL USART</strong>
+                                                    procedures.</font></li></ul>
+                                            </li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>LL USART</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Handling of
+                                          <ul><li><font face="Verdana" size="-1">Handling of
                                                 UART concurrent register
                                                 access in case of race
                                                 condition between Tx and
                                                 Rx transfers (HAL UART
-                                                and LL LPUART)</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL SMBUS</strong>
+                                                and LL LPUART)</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL SMBUS</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Updated
+                                          <ul><li><font face="Verdana" size="-1">Updated
                                                 HAL_SMBUS_ER_IRQHandler()
                                                 API to return the
                                                 correct error code
                                                 “SMBUS_FLAG_PECERR” in
                                                 case of packet error
-                                                occurs.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL/LL SPI</strong>
+                                                occurs.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL/LL SPI</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Updated to fix
-                                                MISRA-C 2012 Rule-13.2.</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Update
+                                          <ul><li><font face="Verdana" size="-1">Updated to fix
+                                                MISRA-C 2012 Rule-13.2.</font></li><li><font face="Verdana" size="-1">Update
                                                 LL_SPI_TransmitData8()
                                                 API to avoid casting the
-                                                result to 8 bits.</font></li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL UART</strong>
+                                                result to 8 bits.</font></li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL UART</strong>
                                             update </font>
-                                          <ul>
-                                            <li><font face="Verdana"
-                                                size="-1">Fix wrong
+                                          <ul><li><font face="Verdana" size="-1">Fix wrong
                                                 comment related to RX
                                                 pin configuration within
-                                                the description section</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Correction on
+                                                the description section</font></li><li><font face="Verdana" size="-1">Correction on
                                                 UART ReceptionType
                                                 management in case of
                                                 ReceptionToIdle API are
                                                 called from RxEvent
-                                                callback</font></li>
-                                            <li><font face="Verdana"
-                                                size="-1">Handling of
+                                                callback</font></li><li><font face="Verdana" size="-1">Handling of
                                                 UART concurrent register
                                                 access in case of race
                                                 condition between Tx and
                                                 Rx transfers (HAL UART
                                                 and LL LPUART) </font>
-                                              <ul>
-                                                <li><font face="Verdana"
-                                                    size="-1">Update CAN
+                                              <ul><li><font face="Verdana" size="-1">Update CAN
                                                     Initialization
                                                     sequence to set
                                                     "request
                                                     initialization" bit
                                                     before exit from
-                                                    sleep mode.</font></li>
-                                              </ul>
-                                            </li>
-                                          </ul>
-                                        </li>
-                                        <font face="Verdana" size="-1">
-                                        </font>
-                                        <li><font face="Verdana"
-                                            size="-1"><strong>HAL USB</strong>
+                                                    sleep mode.</font></li></ul>
+                                            </li></ul>
+                                        </li><font face="Verdana" size="-1">
+                                        </font><li><font face="Verdana" size="-1"><strong>HAL USB</strong>
                                             update </font>
-                                          <ul>
-                                            <font face="Verdana"
-                                              size="-1"> </font>
-                                            <li><font face="Verdana"
-                                                size="-1">HAL PCD: add
+                                          <ul><font face="Verdana" size="-1"> </font><li><font face="Verdana" size="-1">HAL PCD: add
                                                 fix transfer complete
                                                 for IN Interrupt
                                                 transaction in single
-                                                buffer mode</font></li>
-                                            <font face="Verdana"
-                                              size="-1"> </font>
-                                            <li><font face="Verdana"
-                                                size="-1">Race condition
+                                                buffer mode</font></li><font face="Verdana" size="-1"> </font><li><font face="Verdana" size="-1">Race condition
                                                 in USB PCD control
-                                                endpoint receive ISR.</font></li>
-                                          </ul>
-                                        </li>
-                                      </ul>
-                                    </li>
-                                  </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New
-                                        Roman&quot;;color:white">V1.7.12
-                                        / 26-March-2021</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-4.5pt;margin-left:118.5pt;text-indent:-97.5pt"><b><u><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">Main
+                                                endpoint receive ISR.</font><br><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;"></span></font></li></ul>
+                                        </li></ul>
+                                    </li></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.12
+                                        / 26-March-2021</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 118.5pt; text-indent: -97.5pt;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main
 
 
 
 
                                           Changes</span></u></b><o:p></o:p></p>
-                                  <ul style="orphans:
-                                    2;text-align:start;widows:
-                                    2;word-spacing: 0px" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:#111111;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l11
-
-
-
-                                      level1 lfo1;tab-stops:list .5in"><b><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL<o:p></o:p></span></b></li>
+                                  <ul style="orphans: 2; text-align: start; widows: 2; word-spacing: 0px;" type="disc">
+                                    <li class="MsoNormal" style="color: rgb(17, 17, 17);"><b><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL<o:p></o:p></span></b></li>
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l11
-
-
-
-                                        level2 lfo1;tab-stops:list
-                                        1.0in"><b><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL
-                                            USART</span></b><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><b><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
+                                            USART</span></b><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"> update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l11
-
-
-
-                                          level3 lfo1;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix typo in
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix typo in
                                             USART_Receive_IT() and
                                             USART_TransmitReceive_IT()
                                             APIs to avoid possible
@@ -574,70 +491,26 @@
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New
-                                        Roman&quot;;color:white">V1.7.11
-                                        / 12-February-2021</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-4.5pt;margin-left:118.5pt;text-indent:-97.5pt"><b><u><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">Main
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.11
+                                        / 12-February-2021</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 118.5pt; text-indent: -97.5pt;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main
 
 
 
 
                                           Changes</span></u></b><o:p></o:p></p>
-                                  <ul style="orphans:
-                                    2;text-align:start;widows:
-                                    2;word-spacing: 0px" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:#111111;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                      level1 lfo2;tab-stops:list .5in"><span
-                                        style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                  <ul style="orphans: 2; text-align: start; widows: 2; word-spacing: 0px;" type="disc">
+                                    <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:#111111;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l89
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added
 
 
 
-                                      level1 lfo2;tab-stops:list .5in"><span
-                                        style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Added
-
-
-
-                                        new&nbsp;<strong><span
-                                            style="font-family:
-                                            &quot;Verdana&quot;,sans-serif">HAL
+                                        new&nbsp;<strong><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
@@ -648,705 +521,103 @@
 
                                         to support FMPSMBUS fast Mode
                                         Plus.<o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:#111111;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                      level1 lfo2;tab-stops:list .5in"><span
-                                        style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Removed
+                                    <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Removed
 
 
 
                                         “register” keyword to be
                                         compliant with new C++ rules:<o:p></o:p></span></li>
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">The register
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">The register
                                           storage class specifier was
                                           deprecated in C++11 and
                                           removed in C++17.<o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:#111111;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                      level1 lfo2;tab-stops:list .5in"><strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL</span></strong><span
-                                        style="font-size:10.5pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">General
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">General
                                           updates to fix known defects
                                           and enhancements
                                           implementation.<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Added new
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added new
                                           defines for ARM compiler V6:<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__weak<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__packed<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__NOINLINE<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">__weak<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">__packed<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">__NOINLINE<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Updated HAL <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TimeBase</span></span>
-                                          TIM, RTC alarm and RTC <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">WakeUp</span></span>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated HAL <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TimeBase</span></span>
+                                          TIM, RTC alarm and RTC <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WakeUp</span></span>
                                           templates for more robustness<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Hal_Init_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Tick(</span></span>)
-                                            API to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">propoerty</span></span>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Hal_Init_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Tick(</span></span>)
+                                            API to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">propoerty</span></span>
                                             store the priority when
                                             using the non-default time
                                             base.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Updated
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
                                           PPP_MODULE_ENABLED for
                                           FMPSMBUS.<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL ADC</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL ADC</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated to
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated to
                                             add include of the LL ADC
                                             driver.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated the
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated the
                                             following APIs to set status
                                             HAL_ADC_STATE_ERROR_INTERNAL
                                             and error code
                                             HAL_ADC_ERROR_INTERNAL when
                                             error occurs:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADC_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Start(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADC_Start_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADC_Start_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADCEx_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">InjectedStart(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADCEx_InjectedStart_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_ADCEx_MultiModeStart_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_Start_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_Start_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADCEx_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">InjectedStart(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADCEx_InjectedStart_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADCEx_MultiModeStart_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_ADC_Stop_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_Stop_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             API to check if DMA state is
-                                            Busy before calling <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Abort</span></span>()
+                                            Busy before calling <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Abort</span></span>()
 
 
 
 
                                             API to avoid DMA internal
                                             error.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
                                             IS_ADC_CHANNEL to support
                                             temperature sensor for:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">STM32F411xE<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">STM32F413xx<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">STM32F423xx<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">STM32F411xE<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">STM32F413xx<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">STM32F423xx<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fixed wrong
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fixed wrong
                                             defined values for:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LL_ADC_MULTI_REG_DMA_LIMIT_3<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LL_ADC_MULTI_REG_DMA_UNLMT_3<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">LL_ADC_MULTI_REG_DMA_LIMIT_3<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">LL_ADC_MULTI_REG_DMA_UNLMT_3<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Added
-                                            __LL_ADC_CALC_VREFANALOG_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">VOLTAGE(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added
+                                            __LL_ADC_CALC_VREFANALOG_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VOLTAGE(</span></span>)
                                             macro to evaluate analog
                                             reference voltage.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Removed
-                                            __LL_ADC_CALC_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TEMPERATURE(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Removed
+                                            __LL_ADC_CALC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TEMPERATURE(</span></span>)
                                             macro for STM32F4x9 devices
                                             as the TS_CAL2 is not
                                             available.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL DAC</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL DAC</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Added <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">restruction</span></span>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">restruction</span></span>
                                             on DAC Channel 2 defines and
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">parametres</span></span>.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DAC_MSPINIT_CB_ID
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">parametres</span></span>.<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DAC_MSPINIT_CB_ID
 
 
 
@@ -1355,494 +626,88 @@
                                             used instead of
                                             HAL_DAC_MSP_INIT_CB_ID and
                                             HAL_DAC_MSP_DEINIT_CB_ID.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated to
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated to
                                             support dual mode:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Added two
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added two
                                               new APIs:<o:p></o:p></span></li>
                                           <ul type="square">
-                                            <li class="MsoNormal"
-                                              style="color:#111111;mso-margin-top-alt:auto;
-                                              mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                              level5 lfo2;tab-stops:
-                                              list 2.5in"><span
-                                                class="spelle"><span
-                                                  style="font-size:10.5pt;
-                                                  font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                  New Roman&quot;">HAL_DACEx_</span></span><span
-                                                class="grame"><span
-                                                  style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                  mso-fareast-font-family:&quot;Times
-
-
-
-                                                  New Roman&quot;">DualStart(</span></span><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">)<o:p></o:p></span></li>
-                                            <li class="MsoNormal"
-                                              style="color:#111111;mso-margin-top-alt:auto;
-                                              mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                              level5 lfo2;tab-stops:
-                                              list 2.5in"><span
-                                                class="spelle"><span
-                                                  style="font-size:10.5pt;
-                                                  font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                  New Roman&quot;">HAL_DACEx_</span></span><span
-                                                class="grame"><span
-                                                  style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                  mso-fareast-font-family:&quot;Times
-
-
-
-                                                  New Roman&quot;">DualStop(</span></span><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">)<o:p></o:p></span></li>
+                                            <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DualStart(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                            <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DualStop(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                           </ul>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Added
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added
                                             position bit definition to
                                             be used instead of
                                             __DAC_MASK_SHIFT macro<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__DAC_MASK_SHIFT
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">__DAC_MASK_SHIFT
 
 
 
                                               macro has been removed.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DAC_Start_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DAC_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             API to return HAL_ERROR when
                                             error occurs.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DAC_Stop_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DAC_Stop_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             API to not return HAL_ERROR
                                             when DAC is already
                                             disabled.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL CEC</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL CEC</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"> update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             API to avoid appending an
                                             extra byte to the end of a
                                             message.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL GPIO</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL GPIO</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
-                                            IS_GPIO_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">AF(</span></span>) to
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
+                                            IS_GPIO_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AF(</span></span>) to
                                             add missing values for
                                             STM32F401xC and STM32F401xE
                                             devices:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GPIO_AF3_TIM9<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GPIO_AF3_TIM10<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GPIO_AF3_TIM11<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">GPIO_AF3_TIM9<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">GPIO_AF3_TIM10<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">GPIO_AF3_TIM11<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
-                                            LL/HAL <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">GPIO_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TogglePin(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
+                                            LL/HAL <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GPIO_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TogglePin(</span></span>)
                                             APIs to allow multi PinÂ’s
                                             toggling.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_GPIO_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                             API to avoid the
                                             configuration of PUPDR
                                             register when Analog mode is
                                             selected.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL RCC</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL RCC</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">OscConfig(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span>)
                                             API to add missing checks
                                             and to donÂ’t return
                                             HAL_ERROR if request repeats
                                             the current PLL
                                             configuration.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
                                             IS_RCC_PLLN_VALUE(VALUE)
                                             macro in case of STM32F411xE
-                                            device <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">in order to</span></span>
+                                            device <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">in order to</span></span>
                                             be aligned with reference
                                             manual.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL SD</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL SD</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"> update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            function <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FindSCR(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FindSCR(</span></span>)
                                             to resolve issue of FIFO
                                             blocking when reading.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             read/write functions in DMA
-                                            mode <span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">in
+                                            mode <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">in
 
 
 
@@ -1850,83 +715,10 @@
                                             force the DMA direction,
                                             updated functions:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                             block size settings in the
                                             initialization functions and
                                             remove it from read/write
@@ -1935,326 +727,20 @@
                                             reconfiguration, updated
                                             functions:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">InitCard(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetCardStatus(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">ConfigWideBusOperation(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)&nbsp;<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">ReadBlocks(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">WriteBlocks(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SD_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">InitCard(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">GetCardStatus(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigWideBusOperation(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">ReadBlocks(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">WriteBlocks(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL&nbsp;MMC</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;MMC</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"> update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                             block size settings in the
                                             initialization function and
                                             remove it from read/write
@@ -2263,242 +749,17 @@
                                             reconfiguration, updated
                                             functions:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">InitCard(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">ReadBlocks(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">WriteBlocks(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">InitCard(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">ReadBlocks(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">WriteBlocks(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             read/write functions in DMA
-                                            mode <span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">in
+                                            mode <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">in
 
 
 
@@ -2506,179 +767,35 @@
                                             force the DMA direction,
                                             updated functions:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_ReadBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span class="spelle"><span
-                                                style="font-size:10.5pt;
-                                                font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_MMC_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></span><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_ReadBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span class="spelle"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_WriteBlocks_</span></span><span class="grame"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Deploy new
-                                            functions <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MMC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ReadExtCSD(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdSendEXTCSD</span></span>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Deploy new
+                                            functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MMC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReadExtCSD(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdSendEXTCSD</span></span>
                                             () that read and check the
                                             sectors&nbsp;number of the
                                             device in order to resolve
                                             the issue of wrongly reading
                                             big memory size.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><b><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL NAND
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><b><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL NAND
                                             update<o:p></o:p></span></b></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             functions
-                                            HAL_NAND_Read_SpareArea_16<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">b(</span></span>)
+                                            HAL_NAND_Read_SpareArea_16<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">b(</span></span>)
                                             and
                                             HAL_NAND_Write_SpareArea_16b()
                                             to fix column address
                                             calculation issue.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">LL SDMMC
-                                            update</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">LL SDMMC
+                                            update</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update the
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                             definition of
-                                            SDMMC_DATATIMEOUT constant <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">in
+                                            SDMMC_DATATIMEOUT constant <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">in
 
 
 
@@ -2686,641 +803,135 @@
                                             allow the user to redefine
                                             it in his proper
                                             application.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             'register' storage class
                                             specifier from LL SDMMC
                                             driver.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Deploy new
-                                            functions <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MMC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ReadExtCSD(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdSendEXTCSD</span></span>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Deploy new
+                                            functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MMC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReadExtCSD(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdSendEXTCSD</span></span>
                                             () that read and check the
                                             sectors number of the device
                                             in order to resolve the
                                             issue of wrongly reading big
                                             memory size.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL SMBUS</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL SMBUS</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Support for
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Support for
                                             Fast Mode Plus to be SMBUS
                                             rev 3 compliant.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Added <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_FMPSMBUSEx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EnableFastModePlus(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_FMPSMBUSEx_DisableFastModePlus</span></span>()
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Added <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPSMBUSEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableFastModePlus(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPSMBUSEx_DisableFastModePlus</span></span>()
 
 
 
 
                                             APIs to manage Fm+.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMBUS_MasterTransmit_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">BTF(</span></span>)
-                                            , <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SMBUS_MasterTransmit_TXE</span></span>()
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMBUS_MasterTransmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BTF(</span></span>)
+                                            , <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMBUS_MasterTransmit_TXE</span></span>()
 
 
 
 
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SMBUS_MasterReceive_BTF</span></span>()
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMBUS_MasterReceive_BTF</span></span>()
 
 
 
 
                                             APIs to&nbsp;allow stop
-                                            generation when <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CurrentXferOptions</span></span>
+                                            generation when <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CurrentXferOptions</span></span>
                                             is different from
                                             SMBUS_FIRST_FRAME and
                                             SMBUS_NEXT_FRAME.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMBUS_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ITError(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMBUS_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ITError(</span></span>)
                                             API to correct the twice
-                                            call of <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SMBUS_ErrorCallback</span></span>.<o:p></o:p></span></li>
+                                            call of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMBUS_ErrorCallback</span></span>.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL SPI</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL SPI</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                             API<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">To avoid
-                                              setting the <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">BaudRatePrescaler</span></span>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">To avoid
+                                              setting the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BaudRatePrescaler</span></span>
                                               in case of Slave Motorola
                                               Mode.<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Use the <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">bit-mask</span></span>
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Use the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">bit-mask</span></span>
                                               for SPI configuration.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
                                             Transmit/Receive processes
-                                            in half-duplex <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span><o:p></o:p></span></li>
+                                            in half-duplex <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Disable
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Disable
                                               the SPI instance before
                                               setting BDIOE bit.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fixed wrong
-                                            timeout <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Calculate
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fixed wrong
+                                            timeout <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Calculate
                                             Timeout based on a software
                                             loop to avoid blocking issue
-                                            if <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Systick</span></span>
+                                            if <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Systick</span></span>
                                             is disabled.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL
-                                            SPDIFRX&nbsp;</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+                                            SPDIFRX&nbsp;</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             'register' storage class
                                             specifier from HAL SPDIFRX
                                             driver.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL I2S</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL I2S</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
                                             I2SEx APIs to correctly
-                                            support circular <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">transfers</span></span><o:p></o:p></span></li>
+                                            support circular <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transfers</span></span><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Updated
-                                              I2SEx_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TxRxDMACplt(</span></span>)
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
+                                              I2SEx_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxRxDMACplt(</span></span>)
                                               API to manage DMA circular
                                               mode.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated
-                                            HAL_I2SEx_TransmitReceive_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
-                                            API to set <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>
-                                            (<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">transfert</span></span>
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated
+                                            HAL_I2SEx_TransmitReceive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
+                                            API to set <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>
+                                            (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transfert</span></span>
                                             callback and half) to NULL.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL SAI</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL SAI</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated to
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated to
                                             avoid the incorrect
                                             left/right synchronization.<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Updated <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Transmit_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Transmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                               API to follow the sequence
                                               described in the reference
                                               manual for slave
                                               transmitter mode.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                             API to correct the formula
                                             in case of SPDIF is wrong.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL CRYP</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL CRYP</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_GetConfig</span></span>()
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_GetConfig</span></span>()
 
 
 
 
                                             APIs to set/get the
-                                            continent of <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">KeyIVConfigSkip</span></span>
+                                            continent of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KeyIVConfigSkip</span></span>
                                             correctly.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL EXTI</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL EXTI</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__EXTI_LINE__
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">__EXTI_LINE__
 
 
 
@@ -3328,2133 +939,502 @@
                                             __LINE__ which is a standard
                                             C macro.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL DCMI</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL DCMI</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Support of
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Support of
                                             HAL callback registration
                                             feature for DCMI extended
                                             driver.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL TIM</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL TIM</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_OnePulseN_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Start(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_OnePulseN_Stop</span></span>()
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_OnePulseN_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_OnePulseN_Stop</span></span>()
 
 
 
 
                                             APIs (pooling and IT mode)
                                             to take into consideration
-                                            all <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">OutputChannel</span></span>
+                                            all <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OutputChannel</span></span>
                                             parameters.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Corrected
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Corrected
                                             reversed description of
                                             TIM_LL_EC_ONEPULSEMODE One
                                             Pulse Mode.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Updated <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">LL_TIM_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetCounterMode(</span></span>)
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetCounterMode(</span></span>)
                                             API to return the correct
                                             counter mode.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL
-                                            SMARTCARD</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
+                                            SMARTCARD</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fixed
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fixed
                                             invalid initialization of
                                             SMARTCARD configuration by
                                             removing FIFO mode
                                             configuration as it is not
-                                            member of <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMARTCARD_InitTypeDef</span></span>
+                                            member of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_InitTypeDef</span></span>
                                             Structure.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fixed typos
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fixed typos
                                             in SMARTCARD State
                                             definition description<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL/LL IRDA</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL IRDA</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fixed typos
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Fixed typos
                                             in IRDA State definition
                                             description<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">LL USART</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">LL USART</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             useless check on maximum BRR
                                             value by removing
-                                            IS_LL_USART_BRR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MAX(</span></span>)
+                                            IS_LL_USART_BRR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MAX(</span></span>)
                                             macro.<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             USART polling and
                                             interruption processes to
                                             fix issues related to
                                             accesses out of user
                                             specified buffer.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:#111111;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                        level2 lfo2;tab-stops:list
-                                        1.0in"><strong><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL USB</span></strong><span
-                                          style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;update<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(17, 17, 17);"><strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL USB</span></strong><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#111111;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                          level3 lfo2;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Enhanced
+                                        <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhanced
                                             USB OTG host HAL with USB
                                             DMA is enabled:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">fixed
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">fixed
                                               ping and data toggle
                                               issue,<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:#111111;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l89
-
-
-
-                                            level4 lfo2;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">reworked
+                                          <li class="MsoNormal" style="color: rgb(17, 17, 17);"><span style="font-size: 10.5pt; font-family: &quot;Verdana&quot;,sans-serif;">reworked
                                               Channel error report
                                               management<o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">V1.7.10
 
 
 
-                                        New Roman&quot;;color:white">V1.7.10
+                                        / 22-October-2020</span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
-                                        / 22-October-2020</span><span
-                                        style="font-family:&quot;Verdana&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                        updates to fix known defects.</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l77 level1
-                                      lfo3;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
-
-
-
-                                        updates to fix known defects.</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l77 level1
-                                      lfo3;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l5 level2
-                                        lfo4;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Update
-                                          to fix <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hardfault</span></span>
-                                          issue with HAL_I2C_Mem_Write_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Update
+                                          to fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hardfault</span></span>
+                                          issue with HAL_I2C_Mem_Write_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                           API:<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l5 level3
-                                          lfo4;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
                                             Abort the right ongoing DMA
                                             transfer when memory write
                                             access request operation
-                                            failed: fix typo “<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">hdmarx</span></span>”
-                                            replaced by “<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx”</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            failed: fix typo “<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>”
+                                            replaced by “<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx”</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.9
 
 
 
-                                        New Roman&quot;;color:white">V1.7.9
-
-
-
-                                        / 14-August-2020</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l1 level1
-                                      lfo5;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 14-August-2020</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l1 level1
-                                      lfo5;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l33 level2
-                                        lfo6;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Update
-                                          HAL_I2C_ER_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Update
+                                          HAL_I2C_ER_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           API to fix acknowledge failure
                                           issue with I2C memory IT
                                           processes<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l33 level3
-                                          lfo6;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp; Add
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Add
                                             stop condition generation
                                             when NACK occurs.<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l33 level2
-                                        lfo6;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Update
-                                          I2C_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DMAXferCplt(</span></span>),
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Update
+                                          I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAXferCplt(</span></span>),
 
 
 
 
                                           I2C_DMAError() and
-                                          I2C_DMAAbort() APIs to fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hardfault</span></span>
-                                          issue when <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>
+                                          I2C_DMAAbort() APIs to fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hardfault</span></span>
+                                          issue when <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>
                                           parameters in i2c handle
                                           aren't initialized (NULL
                                           pointer).<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l33 level3
-                                          lfo6;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp; Add
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Add
                                             additional check on
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">hdmtx</span></span>
-                                            and hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmtx</span></span>
+                                            and hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>
                                             before resetting DMA Tx/Rx
-                                            complete <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">callbacks</span></span><o:p></o:p></span></li>
+                                            complete <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">callbacks</span></span><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l33 level2
-                                        lfo6;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Update
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Update
                                           Sequential transfer APIs to
-                                          adjust <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">xfermode</span></span>
+                                          adjust <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">xfermode</span></span>
                                           condition.<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:#002052;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l33 level3
-                                          lfo6;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: rgb(0, 32, 82); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;;color:black">&nbsp;
-
-
-
-
-                                            Replace hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferCount</span></span>
+                                            Replace hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCount</span></span>
                                             &lt; MAX_NBYTE_SIZE by
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferCount</span></span>
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCount</span></span>
                                             &lt;= MAX_NBYTE_SIZE which
                                             corresponds to a case
-                                            without reload</span><span
-                                            style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            without reload</span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l25 level1
-                                      lfo7;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;<b>HAL/LL
 
 
 
-
-                                        &quot;Times New Roman&quot;">&nbsp;<b>HAL/LL
+                                          USB </b>update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;Bug
 
 
 
-                                          USB </b>update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;&nbsp;Bug
-
-
-
-                                          fix: <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">USB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ReadPMA(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">USB_WritePMA</span></span>()
+                                          fix: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReadPMA(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_WritePMA</span></span>()
 
 
 
 
                                           by ensuring 16-bits access to
                                           USB PMA memory<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;&nbsp;Bug
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;Bug
 
 
 
                                           fix: correct USB RX count
                                           calculation<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Fix
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Fix
                                           USB Bulk transfer double
-                                          buffer <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">mode</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Remove
+                                          buffer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Remove
                                           register keyword from USB
                                           defined macros as no more
-                                          supported by C++ <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">compiler</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Minor
-                                          rework on <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USBD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Start(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">USBD_Stop</span></span>()
+                                          supported by C++ <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compiler</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Minor
+                                          rework on <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USBD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USBD_Stop</span></span>()
 
 
 
 
                                           APIs: stopping device will be
-                                          handled by <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_DeInit</span></span>()
+                                          handled by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_DeInit</span></span>()
 
 
 
 
                                           API.<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l25 level2
-                                        lfo7;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp; Remove
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; Remove
                                           non used API for USB device
                                           mode.<o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.8
 
 
 
-                                        New Roman&quot;;color:white">V1.7.8
-
-
-
-                                        / 12-February-2020</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l69 level1
-                                      lfo8;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
+                                        / 12-February-2020</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                         new <b>HAL FMPSMBUS</b> and <b>LL
 
 
 
-                                          FMPI2C</b> drivers</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l69 level1
-                                      lfo8;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                          FMPI2C</b> drivers</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l29 level1
-                                      lfo9;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Update
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
                                         HAL CRYP driver to support block
                                         by block decryption without
                                         reinitializes the IV and KEY for
-                                        each call.</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      12.0pt;mso-list:l29 level1
-                                      lfo9;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Improve
+                                        each call.</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 12pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Improve
 
 
 
                                         code quality by fixing
-                                        MisraC-2012 <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">violations</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        MisraC-2012 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">violations</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l29 level1
-                                      lfo9;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          USB </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Add
+                                          USB </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Add
                                           handling USB host babble error
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">interrupt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Fix
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Fix
                                           Enabling ULPI interface for
                                           platforms that integrates USB
-                                          HS PHY</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Fix
+                                          HS PHY</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Fix
                                           Host data toggling for IN Iso
-                                          transfers</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Ensure
+                                          transfers</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Ensure
                                           to disable USB EP during
-                                          endpoint <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">deactivation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          endpoint <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">deactivation</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l29 level1
-                                      lfo9;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRYP </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Update
+                                          CRYP </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Update
                                           HAL CRYP driver to support
                                           block by block decryption
                                           without initializing the IV
-                                          and KEY at each call.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l29 level3
-                                          lfo9;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            CRYP Handler parameters: "<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">KeyIVConfig</span></span>"
-                                            and "<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SizesSum"</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l29 level3
-                                          lfo9;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            CRYP <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">init</span></span>
-                                            parameter: "<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">KeyIVConfigSkip"</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          and KEY at each call.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            CRYP Handler parameters: "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KeyIVConfig</span></span>"
+                                            and "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SizesSum"</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            CRYP <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">init</span></span>
+                                            parameter: "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KeyIVConfigSkip"</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l29 level1
-                                      lfo9;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2S_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span>)
-                                          API to be more safe</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l29 level3
-                                          lfo9;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a check
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span>)
+                                          API to be more safe</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a check
                                             on BSY, TXE and RXNE flags
-                                            before disabling the <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">I2S</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            before disabling the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">I2S</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l29 level2
-                                        lfo9;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2S_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span>)
                                           API to fix multi-call transfer
                                           issue(to avoid re-initializing
                                           the I2S for the next
-                                          transfer).</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l29 level3
-                                          lfo9;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
-                                            __HAL_I2SEXT_FLUSH_RX_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">DR(</span></span>)
+                                          transfer).</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                            __HAL_I2SEXT_FLUSH_RX_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DR(</span></span>)
                                             and __HAL_I2S_FLUSH_RX_DR()
                                             macros to flush the
                                             remaining data inside DR
-                                            registers.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l29 level3
-                                          lfo9;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
+                                            registers.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
                                             define:
-                                            HAL_I2S_ERROR_BUSY_LINE_RX</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_I2S_ERROR_BUSY_LINE_RX</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.7
 
 
 
-                                        New Roman&quot;;color:white">V1.7.7
-
-
-
-                                        / 06-December-2019</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l0 level1
-                                      lfo10;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 06-December-2019</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l0 level1
-                                      lfo10;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l0 level2
-                                        lfo10;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetTickFreq(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetTickFreq(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           restore the previous tick
-                                          frequency&nbsp;when <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_InitTick</span></span>()
+                                          frequency&nbsp;when <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_InitTick</span></span>()
 
 
 
 
-                                          configuration failed.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          configuration failed.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l0 level1
-                                      lfo10;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          GPIO </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l0 level2
-                                        lfo10;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update GPIO
+                                          GPIO </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update GPIO
                                           initialization sequence<b> </b>to
 
 
 
-                                          avoid unwanted pulse on GPIO <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Pin's</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          avoid unwanted pulse on GPIO <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Pin's</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l0 level1
-                                      lfo10;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          EXTI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          EXTI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="orphans: 2;widows:
-                                          2;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">General
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
                                             update to enhance HAL EXTI
-                                            driver <span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">robustness</span></span>&nbsp;</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add
+                                            driver <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">robustness</span></span>&nbsp;</span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                               additional assert check on
-                                              EXTI config <span
-                                                class="grame"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">lines</span></span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update to
+                                              EXTI config <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">lines</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                               compute EXTI line mask
                                               before read/write access
-                                              to EXTI registers<br
-                                                style="mso-special-character:line-break">
-                                              <!--[if !supportLineBreakNewLine]--><br
-                                                style="mso-special-character:
-
-
-
-
-                                                line-break">
-                                              <!--[endif]--></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></span></li>
+                                              to EXTI registers<br style="">
+                                              <!--[if !supportLineBreakNewLine]--><br style="">
+                                              <!--[endif]--></span><span style=""><o:p></o:p></span></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update EXTI
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update EXTI
                                           callbacks management to be
                                           compliant with reference
                                           manual: only one&nbsp;PR
                                           register for rising and
-                                          falling interrupts.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
-                                              parameters&nbsp;in <span
-                                                class="spelle"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">EXTI_HandleTypeDef</span></span>
+                                          falling interrupts.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                              parameters&nbsp;in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EXTI_HandleTypeDef</span></span>
                                               structure: merge&nbsp;HAL
-                                              EXTI <span class="spelle"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">RisingCallback</span></span>
-                                              and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">FallingCallback</span></span>
-                                              in only one <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PendingCallback</span></span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Remove
+                                              EXTI <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RisingCallback</span></span>
+                                              and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FallingCallback</span></span>
+                                              in only one <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PendingCallback</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                               HAL_EXTI_RISING_CB_ID and
                                               HAL_EXTI_FALLING_CB_ID
-                                              values from </span><span
-                                              class="spelle"><span
-                                                style="orphans:
-                                                2;widows: 2;float:none;
-                                                word-spacing:0px"><span
-                                                  style="mso-fareast-font-family:&quot;Times
-
-
-
-                                                  New Roman&quot;">EXTI_CallbackIDTypeDef</span>
-                                                enumeration.</span></span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><br
-                                                style="mso-special-character:line-break">
-                                              <!--[if !supportLineBreakNewLine]--><br
-                                                style="mso-special-character:
-
-
-
-
-                                                line-break">
+                                              values from </span><span class="spelle"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="">EXTI_CallbackIDTypeDef</span>
+                                                enumeration.</span></span><span style=""><br style="">
+                                              <!--[if !supportLineBreakNewLine]--><br style="">
                                               <!--[endif]--><o:p></o:p></span></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"></span>Update
-                                        <span class="spelle"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">HAL_EXTI_</span></span><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"></span>Update
+                                        <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_EXTI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                         API to serve interrupts
-                                        correctly.<span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
+                                        correctly.<span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                             compute EXTI line mask
                                             before handle
-                                            EXTI&nbsp;interrupt.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            EXTI&nbsp;interrupt.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="orphans: 2;widows:
-                                          2;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                             support&nbsp;GPIO port
-                                            interrupts:</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add new "<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GPIOSel</span></span>"
-                                              parameter in <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EXTI_ConfigTypeDef</span></span>
-                                              structure</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            interrupts:</span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GPIOSel</span></span>"
+                                              parameter in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EXTI_ConfigTypeDef</span></span>
+                                              structure</span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PeriphCLKConfig(</span></span>)
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PeriphCLKConfig(</span></span>)
                                           API to support PLLI2S
                                           configuration for STM32F42xxx
-                                          and STM32F43xxx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ClockConfig(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_DeInit</span></span>()
+                                          and STM32F43xxx devices</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ClockConfig(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_DeInit</span></span>()
 
 
 
 
                                           API to don't overwrite the
-                                          custom tick priority</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
-                                          failure detected with <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">gcc</span></span>
+                                          custom tick priority</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
+                                          failure detected with <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gcc</span></span>
                                           compiler and high optimization
-                                          level is selected(-03)</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">OscConfig(</span></span>)
+                                          level is selected(-03)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span>)
                                           API to don't&nbsp;return
                                           HAL_ERROR if request repeats
-                                          the current PLL configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          the current PLL configuration</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_ADC_REG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_ADC_REG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           to fix wrong ADC CR1 register
-                                          configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The ADC
+                                          configuration</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The ADC
                                             sequencer length is part
                                             of&nbsp;ADC SQR1
                                             register&nbsp;not of ADC CR1
-                                            register</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            register</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRYP </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Encrypt(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_Decrypt</span></span>()
+                                          CRYP </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Encrypt(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Decrypt</span></span>()
 
 
 
@@ -5466,55 +1446,15 @@
                                           padding the last block of the
                                           payload, in case the size of
                                           this last block is less than
-                                          128 bits.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          128 bits.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RNG</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RNG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          RNG</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           API to fix error code
                                           management issue: error code
                                           is assigned
@@ -5522,329 +1462,67 @@
                                           of clock error and
                                           "HAL_RNG_ERROR_SEED" in case
                                           of seed error, not the
-                                          opposite.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          opposite.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DFSDM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DFSDM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetChannelFromInstance(</span></span>)
+                                          DFSDM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DFSDM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetChannelFromInstance(</span></span>)
                                           API to remove unreachable
-                                          check condition</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          check condition</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          API to omit the FIFO error</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          API to omit the FIFO error</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_Program_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DoubleWord(</span></span>)
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_Program_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DoubleWord(</span></span>)
                                           API to fix with EWARM high
-                                          level optimization issue</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          level optimization issue</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          QSPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove Lock
+                                          mechanism from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_DeInit</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          QSPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove Lock
-                                          mechanism from <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_DeInit</span></span>()
-
-
-
-
-                                          APIs</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> <o:p></o:p></span></li>
+                                          APIs</span><span style=""> <o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l114 level1
-                                      lfo11;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Null pointer
-                                          on handler "<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hhash</span></span>"
+                                          HASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Null pointer
+                                          on handler "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hhash</span></span>"
                                           is now checked <b>before</b>
-                                          accessing structure member "<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hhash</span></span>-&gt;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init.DataType</span></span>"
-                                          in the following API:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_HASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Init(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          accessing structure member "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hhash</span></span>-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init.DataType</span></span>"
+                                          in the following API:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Following <b>interrupt-based</b>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Following <b>interrupt-based</b>
                                           APIs have been added.
                                           Interrupt mode could allow the
                                           MCU to enter "Sleep" mode
@@ -5852,340 +1530,63 @@
                                           processed. Please refer to the
                                           "##### How to use this driver
                                           #####" section for details
-                                          about their use.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_SHA1_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_MD5_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA224_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA256_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          about their use.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA224_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA256_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l114 level2
-                                        lfo11;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Following <b>aliases</b>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Following <b>aliases</b>
                                           have been added (just <b>for
                                             clarity sake</b>) as they
                                           shall be used at the <b>end</b>
                                           of the computation of a
                                           multi-buffers message and not
-                                          at the start:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_SHA1_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">End(</span></span>)
+                                          at the start:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">End(</span></span>)
                                             to be used instead of
-                                            HAL_HASH_SHA1_Start()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_MD5_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">End(</span></span>)
+                                            HAL_HASH_SHA1_Start()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">End(</span></span>)
                                             to be used instead of
-                                            HAL_HASH_MD5_Start()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_SHA1_Accmlt_End_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_HASH_MD5_Start()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_Accmlt_End_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to be used instead of
-                                            HAL_HASH_SHA1_Start_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_MD5_Accmlt_End_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_HASH_SHA1_Start_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_Accmlt_End_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to be used instead of
-                                            HAL_HASH_MD5_Start_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA224_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">End(</span></span>)
+                                            HAL_HASH_MD5_Start_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA224_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">End(</span></span>)
                                             to be used instead of
-                                            HAL_HASHEx_SHA224_Start()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l114 level3
-                                          lfo11;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA256_Accmlt_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">End(</span></span>)
+                                            HAL_HASHEx_SHA224_Start()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA256_Accmlt_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">End(</span></span>)
                                             to be used instead of
-                                            HAL_HASHEx_SHA256_Start()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_HASHEx_SHA256_Start()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l3 level3
-                                          lfo12;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA224_Accmlt_End_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA224_Accmlt_End_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to be used instead of
-                                            HAL_HASHEx_SHA224_Start_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l3 level3
-                                          lfo12;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASHEx_SHA256_Accmlt_End_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_HASHEx_SHA224_Start_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA256_Accmlt_End_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to be used instead of
-                                            HAL_HASHEx_SHA256_Start_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_HASHEx_SHA256_Start_IT()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l105 level2
-                                        lfo13;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">MISRAC-2012
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">MISRAC-2012
                                           rule R.5.1&nbsp;(identifiers
                                           shall be distinct in the first
                                           31 characters) constrained the
                                           naming of the above listed
                                           aliases&nbsp;<b>(</b>e.g.
-                                          HAL_HASHEx_SHA256_<b>Accmlt</b>_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">End(</span></span>)
+                                          HAL_HASHEx_SHA256_<b>Accmlt</b>_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">End(</span></span>)
                                           could not be named
                                           HAL_HASHEx_SHA256_<b>Accumulate</b>_End().
 
@@ -6194,641 +1595,124 @@
 
                                           Otherwise the name would have
                                           conflicted with
-                                          HAL_HASHEx_SHA256_<b>Accumulate</b>_End_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)<b>)</b>.
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">In
+                                          HAL_HASHEx_SHA256_<b>Accumulate</b>_End_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)<b>)</b>.
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">In
 
 
 
 
                                               order to</span></span>
                                           have aligned names following
-                                          APIs have been renamed:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          APIs have been renamed:</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l121 level4
-                                            lfo14;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_HASH_MD5_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Accumulate(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Accumulate(</span></span>)
                                               renamed
-                                              HAL_HASH_MD5_Accmlt()</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l121 level4
-                                            lfo14;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_HASH_SHA1_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Accumulate(</span></span>)
+                                              HAL_HASH_MD5_Accmlt()</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Accumulate(</span></span>)
                                               renamed
-                                              HAL_HASH_SHA1_Accmlt()</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l121 level4
-                                            lfo14;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_HASHEx_SHA224_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Accumulate(</span></span>)
+                                              HAL_HASH_SHA1_Accmlt()</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA224_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Accumulate(</span></span>)
                                               renamed
-                                              HAL_HASHEx_SHA224_Accmlt()</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              HAL_HASHEx_SHA224_Accmlt()</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l59 level4
-                                            lfo15;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_HASHEx_SHA256_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Accumulate(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASHEx_SHA256_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Accumulate(</span></span>)
                                               renamed
-                                              HAL_HASHEx_SHA256_Accmlt()</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              HAL_HASHEx_SHA256_Accmlt()</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l106 level2
-                                        lfo16;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HASH <b>handler</b>
-                                          state is <b>no <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">more</span></span></b>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH <b>handler</b>
+                                          state is <b>no <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">more</span></span></b>
                                           reset to HAL_HASH_STATE_READY
                                           <b>once DMA has been started</b>
-                                          in the following APIs:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_MD5_Start_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HMAC_MD5_Start_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_SHA1_Start_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HMAC_SHA1_Start_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          in the following APIs:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HMAC_MD5_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HMAC_SHA1_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l106 level2
-                                        lfo16;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HASH <b>phase</b>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH <b>phase</b>
                                           state is now set to
                                           HAL_HASH_PHASE_READY <b>once
                                             the digest has been read</b>
-                                          in the following APIs:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HASH_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HMAC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Processing(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Start(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Finish(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          in the following APIs:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HMAC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Processing(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Finish(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l106 level2
-                                        lfo16;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Case of a
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Case of a
                                           large buffer scattered around
                                           in memory each piece of which
                                           is <b>not</b> necessarily a <b>multiple
 
 
 
-                                            of 4</b> bytes in length.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In section
+                                            of 4</b> bytes in length.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In section
                                             "##### How to use this
                                             driver #####", sub-section
                                             "*** Remarks on message
                                             length ***" added to provide
                                             recommendations to follow in
-                                            such case.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l106 level3
-                                          lfo16;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">No
+                                            such case.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">No
                                             modification of the driver
                                             as the root-cause is at
-                                            design-level.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            design-level.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l37 level1
-                                      lfo17;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;CAN
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL&nbsp;CAN
-
-
-
-                                        </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l37 level2
-                                        lfo17;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">GetRxMessage(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                        </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetRxMessage(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           get the correct value for the
                                           RTR&nbsp;(type of frame for
                                           the message that will be
-                                          transmitted) field in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CAN_RxHeaderTypeDef</span></span>
-                                          structure.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          transmitted) field in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CAN_RxHeaderTypeDef</span></span>
+                                          structure.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l37 level1
-                                      lfo17;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DCMI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l37 level2
-                                        lfo17;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigSyncUnmask(</span></span>)
+                                          DCMI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigSyncUnmask(</span></span>)
                                           API to set embedded
                                           synchronization delimiters
-                                          unmasks.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          unmasks.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;mso-margin-top-alt:auto;
-                                      mso-margin-bottom-alt:auto;mso-list:l37
+                                    <li class="MsoNormal" style="color: black;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                      level1 lfo17;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l37 level2
-                                        lfo17;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Following IRQ
+                                          RTC</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Following IRQ
                                           handlers' implementation has
                                           been aligned with the
                                           STM32Cube firmware
@@ -6836,692 +1720,133 @@
                                           interrupt lines shared by
                                           multiple events, first check
                                           the IT enable bit is set then
-                                          check the IT flag is set too):</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l37 level3
-                                          lfo17;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RTC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AlarmIRQHandler(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l37 level3
-                                          lfo17;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RTCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">WakeUpTimerIRQHandler(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l37 level3
-                                          lfo17;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RTCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">TamperTimeStampIRQHandler(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          check the IT flag is set too):</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AlarmIRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">WakeUpTimerIRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TamperTimeStampIRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l67 level1
-                                      lfo18;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          WWDG</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l67 level2
-                                        lfo18;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">In "#####
+                                          WWDG</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In "#####
                                           WWDG Specific features #####"
-                                          descriptive comment section:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l67 level3
-                                          lfo18;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Maximal <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">prescaler</span></span>
+                                          descriptive comment section:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Maximal <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">prescaler</span></span>
                                             value has been corrected (8
-                                            instead of 128).</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l67 level3
-                                          lfo18;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Maximal APB
+                                            instead of 128).</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Maximal APB
                                             frequency has been corrected
                                             (42MHz instead of 56MHz) and
                                             possible timeout values
-                                            updated.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            updated.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l67 level1
-                                      lfo18;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA2D </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          DMA2D </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l55 level2
-                                        lfo19;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following API's to Start DMA2D
-                                          CLUT Loading.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l55 level3
-                                          lfo19;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CLUTStartLoad(</span></span>)
-                                            Start DMA2D CLUT Loading.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l55 level3
-                                          lfo19;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_CLUTStartLoad_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          CLUT Loading.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLUTStartLoad(</span></span>)
+                                            Start DMA2D CLUT Loading.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_CLUTStartLoad_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             Start DMA2D CLUT Loading
-                                            with interrupt enabled.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            with interrupt enabled.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l55 level2
-                                        lfo19;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">The following
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The following
                                           old wrong services will be
                                           kept in the HAL DCMI driver
                                           for legacy purpose and a
-                                          specific Note&nbsp;is added:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l55 level3
-                                          lfo19;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CLUTLoad(</span></span>)
+                                          specific Note&nbsp;is added:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLUTLoad(</span></span>)
                                             can be replaced with
-                                            HAL_DMA2D_CLUTStartLoad()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l55 level3
-                                          lfo19;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_CLUTLoad_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)&nbsp;can
+                                            HAL_DMA2D_CLUTStartLoad()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_CLUTLoad_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)&nbsp;can
 
 
 
 
                                             be replaced with
-                                            HAL_DMA2D_CLUTStartLoad_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l55 level3
-                                          lfo19;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ConfigCLUT(</span></span>)
+                                            HAL_DMA2D_CLUTStartLoad_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigCLUT(</span></span>)
                                             can be omitted as the config
                                             can be performed using
                                             the&nbsp;HAL_DMA2D_CLUTStartLoad()
-                                            API.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            API.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SDMMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix&nbsp;
-                                            typo</span></span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> in "<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">FileFormatGroup</span></span>"
-                                          parameter&nbsp;in the <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Calibri&quot;,sans-serif">HAL_MMC_CardCSDTypeDef</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Calibri&quot;,sans-serif">HAL_SD_CardCSDTypeDef</span></span>
-                                          structures&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix an
+                                          SDMMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">Fix&nbsp;
+                                            typo</span></span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;"> in "<span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">FileFormatGroup</span></span>"
+                                          parameter&nbsp;in the <span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">HAL_MMC_CardCSDTypeDef</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">HAL_SD_CardCSDTypeDef</span></span>
+                                          structures&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix an
                                           improve&nbsp;handle state and
-                                          error <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename the
+                                          error <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename the
                                           defined MMC card capacity type
-                                          to be more meaningful:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          to be more meaningful:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <b>MMC_HIGH_VOLTAGE_CARD</b>&nbsp;to
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <b>MMC_HIGH_VOLTAGE_CARD</b>&nbsp;to
-
-
-
-
-                                            <b>MMC LOW_CAPACITY_CARD</b></span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <b>MMC_DUAL_VOLTAGE_CRAD</b>
-                                            to <b>MMC_HIGH_CAPACITY_CARD</b></span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            <b>MMC LOW_CAPACITY_CARD</b></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <b>MMC_DUAL_VOLTAGE_CRAD</b>
+                                            to <b>MMC_HIGH_CAPACITY_CARD</b></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="orphans: 2;widows:
-                                          2;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                             management of peripheral
                                             flags depending on commands
-                                            or&nbsp;data <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">transfers</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add new
+                                            or&nbsp;data <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transfers</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                               defines
                                               "SDIO_STATIC_CMD_FLAGS"
-                                              and "SDIO_STATIC_DATA_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FLAGS"</span></span>&nbsp;</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="orphans: 2;widows:
-                                            2;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Updates&nbsp;HAL
+                                              and "SDIO_STATIC_DATA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAGS"</span></span>&nbsp;</span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="orphans: 2; widows: 2; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Updates&nbsp;HAL
 
 
 
                                               SD and HAL MMC drivers to
                                               manage the new SDIO static
-                                              flags.<br
-                                                style="mso-special-character:line-break">
-                                              <!--[if !supportLineBreakNewLine]--><br
-                                                style="mso-special-character:
-
-
-
-
-                                                line-break">
-                                              <!--[endif]--></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></span></li>
+                                              flags.<br style="">
+                                              <!--[if !supportLineBreakNewLine]--><br style="">
+                                              <!--[endif]--></span><span style=""><o:p></o:p></span></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"></span>Due to
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"></span>Due to
                                         limitation SDIO hardware flow
                                         control indicated in Errata
-                                        Sheet:<span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In 4-bits
+                                        Sheet:<span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In 4-bits
                                             bus wide mode, do not use
-                                            the <span class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_SD_WriteBlocks_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            or <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SD_WriteBlocks</span></span>()
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            or <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks</span></span>()
 
 
 
@@ -7529,1171 +1854,254 @@
                                             APIs otherwise underrun will
                                             occur and it isn't possible
                                             to activate the flow
-                                            control.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Use DMA
+                                            control.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use DMA
                                             mode when using 4-bits bus
                                             wide mode or decrease the
-                                            SDIO_CK frequency.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            SDIO_CK frequency.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          UART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update UART
+                                          UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update UART
                                           polling processes to handle
-                                          efficiently the Lock <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mechanism</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Move
+                                          efficiently the Lock <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mechanism</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Move
                                             the process unlock at the
-                                            top of the&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_UART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Receive(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_UART_Transmit</span></span>()
+                                            top of the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Receive(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_Transmit</span></span>()
 
 
 
 
-                                            API.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            API.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error for clock
-                                          higher than <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">172Mhz</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a
+                                          higher than <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">172Mhz</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a
                                             forced cast on
                                             UART_DIV_SAMPLING8() and
                                             UART_DIV_SAMPLING16()
-                                            macros.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                            macros.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             useless parenthesis from
                                             UART_DIVFRAQ_SAMPLING8(),
                                             UART_DIVFRAQ_SAMPLING16(),
                                             UART_BRR_SAMPLING8() and
                                             UART_BRR_SAMPLING16() macros
                                             to solve some MISRA
-                                            warnings.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            warnings.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update UART
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update UART
                                           interruption handler to manage
-                                          correctly the overrun <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">interrupt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_UART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          correctly the overrun <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;in
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             API a check on
                                             USART_CR1_RXNEIE bit when an
-                                            overrun interrupt occurs.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            overrun interrupt occurs.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error&nbsp;UART9
-                                          and <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">UART10</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
+                                          and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART10</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
                                             API fix UART9 and UART10
                                             clock source when computing
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                             values by adding a check on
                                             these instances and setting
                                             clock sourcePCLK2 instead of
-                                            PCLK1.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            PCLK1.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">UART_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Split
-                                            HAL_RCC_GetPCLK1<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Freq(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split
+                                            HAL_RCC_GetPCLK1<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Freq(</span></span>)
                                             and HAL_RCC_GetPCLK2Freq()
                                             macros from the
                                             UART_BRR_SAMPLING8() and
                                             UART_BRR_SAMPLING8()
-                                            macros&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            macros&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          USART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                          USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error for clock
-                                          higher than <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">172Mhz</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a
-                                            forced cast on USART_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIV(</span></span>)
-                                            macro.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                          higher than <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">172Mhz</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a
+                                            forced cast on USART_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIV(</span></span>)
+                                            macro.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             useless&nbsp;parenthesis
-                                            from USART_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIVFRAQ(</span></span>)
+                                            from USART_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIVFRAQ(</span></span>)
                                             macro to solve some MISRA
-                                            warnings.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            warnings.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update USART
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update USART
                                           interruption handler to manage
-                                          correctly the overrun <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">interrupt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_USART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          correctly the overrun <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;in
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             API a check on
                                             USART_CR1_RXNEIE bit when an
-                                            overrun interrupt occurs.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            overrun interrupt occurs.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error&nbsp;UART9
-                                          and <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">UART10</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">USART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
+                                          and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART10</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
                                             API fix UART9 and UART10
                                             clock source when computing
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                             values by adding a check on
                                             these instances and setting
                                             clock sourcePCLK2 instead of
-                                            PCLK1.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            PCLK1.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USART_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Split
-                                            HAL_RCC_GetPCLK1<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Freq(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split
+                                            HAL_RCC_GetPCLK1<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Freq(</span></span>)
                                             and HAL_RCC_GetPCLK2Freq()
                                             macros from the USART_BRR()
-                                            macro</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            macro</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IRDA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                          IRDA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error for clock
-                                          higher than <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">172Mhz</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a
-                                            forced cast on IRDA_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIV(</span></span>)
-                                            macro.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                          higher than <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">172Mhz</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a
+                                            forced cast on IRDA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIV(</span></span>)
+                                            macro.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             useless&nbsp;parenthesis
-                                            from IRDA_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIVFRAQ(</span></span>)
+                                            from IRDA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIVFRAQ(</span></span>)
                                             macro&nbsp;to solve some
-                                            MISRA warnings.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            MISRA warnings.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update IRDA
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update IRDA
                                           interruption handler to manage
-                                          correctly the overrun <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">interrupt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          correctly the overrun <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;in
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             API a check on
                                             USART_CR1_RXNEIE bit when an
-                                            overrun interrupt occurs.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            overrun interrupt occurs.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error&nbsp;UART9
-                                          and <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">UART10</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
+                                          and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART10</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
                                             API fix UART9 and UART10
                                             clock source when computing
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                             values by adding a check on
                                             these instances and setting
                                             clock sourcePCLK2 instead of
-                                            PCLK1.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            PCLK1.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Split
-                                            HAL_RCC_GetPCLK1<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Freq(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split
+                                            HAL_RCC_GetPCLK1<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Freq(</span></span>)
                                             and HAL_RCC_GetPCLK2Freq()
                                             macros from the IRDA_BRR()
-                                            macro</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            macro</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SMARTCARD </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
+                                          SMARTCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
                                           calculation error for clock
-                                          higher than <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">172Mhz</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          higher than <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">172Mhz</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a
+                                            forced cast on SMARTCARD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIV(</span></span>)
+                                            macro.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove&nbsp;useless&nbsp;parenthesis
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a
-                                            forced cast on SMARTCARD_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIV(</span></span>)
-                                            macro.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove&nbsp;useless&nbsp;parenthesis
-
-
-
-
-                                            from SMARTCARD_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DIVFRAQ(</span></span>)
+                                            from SMARTCARD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DIVFRAQ(</span></span>)
                                             macro&nbsp;to solve some
-                                            MISRA warnings.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            MISRA warnings.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           SMARTCARD interruption handler
                                           to manage correctly the
-                                          overrun <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">interrupti</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SMARTCARD_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          overrun <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupti</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;in
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMARTCARD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             API a check on
                                             USART_CR1_RXNEIE bit when an
-                                            overrun interrupt occurs.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            overrun interrupt occurs.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Split
-                                            HAL_RCC_GetPCLK1<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Freq(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split
+                                            HAL_RCC_GetPCLK1<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Freq(</span></span>)
                                             and HAL_RCC_GetPCLK2Freq()
                                             macros from the
-                                            SMARTCARD_BRR() macro</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            SMARTCARD_BRR() macro</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros to enable and disable
                                           the fast mode when using the
                                           one pulse mode to output a
-                                          waveform with a minimum <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">delay</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_ENABLE_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">OCxFAST(</span></span>)
-                                            and __<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_DISABLE_OCxFAST</span></span>().</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          waveform with a minimum <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">delay</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_ENABLE_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OCxFAST(</span></span>)
+                                            and __<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_DISABLE_OCxFAST</span></span>().</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           Encoder interface mode to
-                                          keep&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TIM_CCER_CCxNP</span></span>
-                                          bits <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">low</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;TIM_ENCODERINPUTPOLARITY_RISING
+                                          keep&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TIM_CCER_CCxNP</span></span>
+                                          bits <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">low</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;TIM_ENCODERINPUTPOLARITY_RISING
 
 
 
@@ -8701,295 +2109,59 @@
                                             and
                                             TIM_ENCODERINPUTPOLARITY_FALLING
                                             definitions to determine
-                                            encoder input polarity.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
-                                            IS_TIM_ENCODERINPUT_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">POLARITY(</span></span>)
+                                            encoder input polarity.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                            IS_TIM_ENCODERINPUT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">POLARITY(</span></span>)
                                             macro to check&nbsp;the
-                                            encoder input polarity.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_Encoder_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                            API&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Replace
-                                              IS_TIM_IC_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">POLARITY(</span></span>)
+                                            encoder input polarity.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_Encoder_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                            API&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Replace
+                                              IS_TIM_IC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">POLARITY(</span></span>)
                                               macro by
                                               IS_TIM_ENCODERINPUT_POLARITY()
-                                              macro.</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              macro.</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update TIM
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update TIM
                                           remapping input configuration
-                                          in <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_TIMEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RemapConfig(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
+                                          in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RemapConfig(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                             redundant check on
                                             LPTIM_OR_TIM5_ITR1_RMP bit
                                             and replace it by check on
-                                            LPTIM_OR_TIM9_ITR1_RMP bit.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            LPTIM_OR_TIM9_ITR1_RMP bit.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MasterConfigSynchronization(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MasterConfigSynchronization(</span></span>)
                                           API to avoid functional errors
                                           and assert fails when using
                                           some TIM instances as input
-                                          trigger.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Replace&nbsp;IS_TIM_SYNCHRO_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">INSTANCE(</span></span>)
+                                          trigger.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Replace&nbsp;IS_TIM_SYNCHRO_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">INSTANCE(</span></span>)
                                             macro by
                                             IS_TIM_MASTER_INSTANCE()
-                                            macro.&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;IS_TIM_SLAVE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">INSTANCE(</span></span>)
+                                            macro.&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;IS_TIM_SLAVE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">INSTANCE(</span></span>)
                                             macro to&nbsp;check on
-                                            TIM_SMCR_MSM bit.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            TIM_SMCR_MSM bit.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add lacking
-                                          TIM input remapping <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">definition</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add lacking
+                                          TIM input remapping <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">definition</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             LL_TIM_TIM11_TI1_RMP_SPDIFRX
                                             and
-                                            LL_TIM_TIM2_ITR1_RMP_ETH_PTP.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add lacking
+                                            LL_TIM_TIM2_ITR1_RMP_ETH_PTP.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add lacking
                                             definition for linked
-                                            LPTIM_TIM input trigger <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">remapping</span></span>&nbsp;&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add
-                                              following <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">definitions
+                                            LPTIM_TIM input trigger <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">remapping</span></span>&nbsp;&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                              following <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">definitions
 
 
 
@@ -9014,200 +2186,41 @@
 
 
                                               and
-                                              LL_TIM_TIM1_ITR2_RMP_LPTIM.</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add a new
-                                              mechanism in <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">LL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SetRemap(</span></span>)
+                                              LL_TIM_TIM1_ITR2_RMP_LPTIM.</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
+                                              mechanism in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetRemap(</span></span>)
                                               API to remap TIM1, TIM9,
                                               and TIM5&nbsp;input
                                               triggers mapped on LPTIM
-                                              register.&nbsp;</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              register.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LPTIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add a polling
+                                          LPTIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a polling
                                           mechanism to check
                                           on&nbsp;LPTIM_FLAG_XXOK flags
-                                          in different <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">API</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add&nbsp;
-                                            </span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LPTIM_WaitForFlag</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">() API to
-                                            wait for flag set.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Perform new
+                                          in different <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;
+                                            </span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LPTIM_WaitForFlag</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">() API to
+                                            wait for flag set.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Perform new
                                             checks on
-                                            HAL_LPTIM_STATE_TIMEOUT.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_LPTIM_STATE_TIMEOUT.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add lacking
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add lacking
                                           definitions of LPTIM input
                                           trigger remapping and its
-                                          related&nbsp;<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">API</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LL_LPTIM_INPUT1_SRC_PAD_AF,
+                                          related&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL_LPTIM_INPUT1_SRC_PAD_AF,
 
 
 
@@ -9221,346 +2234,51 @@
 
 
                                               and
-                                              LL_LPTIM_INPUT1_SRC_TIM_DAC.</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add a new
-                                              API LL_LPTIM_SetInput1<span
-                                                class="grame"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">Src(</span></span>)
+                                              LL_LPTIM_INPUT1_SRC_TIM_DAC.</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
+                                              API LL_LPTIM_SetInput1<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Src(</span></span>)
                                               to access to the LPTIM_OR
                                               register and remap the
-                                              LPTIM input trigger.</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              LPTIM input trigger.</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Perform a new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Perform a new
                                           check on indirect EXTI23 line
                                           associated to the LPTIM wake
-                                          up <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">timer</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Condition
+                                          up <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">timer</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Condition
                                             the use of the LPTIM Wake-up
                                             Timer associated EXTI
                                             line&nbsp;configuration's
                                             macros by&nbsp;EXTI_IMR_MR23
-                                            bit in different <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">API
+                                            bit in different <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API
 
 
 
-                                                :</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="disc">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE/DDISABLE_FALLING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)&nbsp;</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_GET_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l57 level4
-                                            lfo20;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)&nbsp;</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                                :</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="disc">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE/DDISABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)&nbsp;</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update</span><span style="">&nbsp;</span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_TimeOut_Start_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">), <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_TimeOut_Stop_IT</span></span>(),
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LPTIM_TimeOut_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_Counter_Start_IT</span></span>()
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">), <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_TimeOut_Stop_IT</span></span>(),
-
-
-
-
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_Counter_Start_IT</span></span>()
-
-
-
-
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_Counter_Stop_IT</span></span>()
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_Counter_Stop_IT</span></span>()
 
 
 
@@ -9568,466 +2286,124 @@
                                             API by adding Enable/Disable
                                             rising edge trigger on
                                             the&nbsp;LPTIM Wake-up Timer
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Exti</span></span>
-                                            line.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
-                                            __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
-                                            in the end of the <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_IRQHandler</span></span>()
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Exti</span></span>
+                                            line.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                            __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
+                                            in the end of the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_IRQHandler</span></span>()
 
 
 
 
                                             API conditioned by
-                                            EXTI_IMR_MR23 bit.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            EXTI_IMR_MR23 bit.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l57
-
-
-
-                                        level2 lfo20;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_EV_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_EV_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           API to fix I2C send break
-                                          issue&nbsp;</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                          issue&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             additional check on
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferCpltCallback</span></span>,
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferCpltCallback</span></span>
-                                            in I2C_Master_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SB(</span></span>)
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCpltCallback</span></span>,
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCpltCallback</span></span>
+                                            in I2C_Master_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SB(</span></span>)
                                             API to avoid&nbsp;enabling
                                             DMA request&nbsp;when IT
-                                            mode is used.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            mode is used.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_ER_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_ER_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           API to fix acknowledge failure
                                           issue with I2C memory IT
-                                          processes</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Add&nbsp;stop
+                                          processes</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Add&nbsp;stop
 
 
 
 
                                             condition generation when
-                                            NACK occurs.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            NACK occurs.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           API to force software reset
                                           before setting new I2C
-                                          configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
-                                          I2C processes to report <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
+                                          configuration</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
+                                          I2C processes to report <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
                                           when wrong I2C start condition
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">occurs</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Add
-                                            new&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
-                                            define: HAL_I2C_WRONG_START</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Set <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">occurs</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Add
+                                            new&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
+                                            define: HAL_I2C_WRONG_START</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Set <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
                                             parameter in&nbsp;I2C handle
-                                            to HAL_I2C_WRONG_START</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            to HAL_I2C_WRONG_START</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;I2C_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMAXferCplt(</span></span>),
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAXferCplt(</span></span>),
 
 
 
 
                                           I2C_DMAError() and
-                                          I2C_DMAAbort() APIs to fix <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hardfault</span></span>
-                                          issue when <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>&nbsp;parameters
+                                          I2C_DMAAbort() APIs to fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hardfault</span></span>
+                                          issue when <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>&nbsp;parameters
 
 
 
 
                                           in i2c handle aren't
-                                          initialized (NULL pointer).</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                          initialized (NULL pointer).</span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             additional check on
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmtx</span></span>
-                                            and hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmtx</span></span>
+                                            and hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>
                                             before resetting&nbsp;DMA
-                                            Tx/Rx complete <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">callbacks</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            Tx/Rx complete <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">callbacks</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMPI2C </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix HAL
+                                          FMPI2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix HAL
                                           FMPI2C slave interrupt
                                           handling issue with I2C
-                                          sequential transfers.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l57 level3
-                                          lfo20;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            FMPI2C_Slave_ISR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          sequential transfers.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            FMPI2C_Slave_ISR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             and FMPI2C_Slave_ISR_DMA()
                                             APIs to check on STOP
                                             condition and handle it
                                             before clearing the ADDR
-                                            flag</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            flag</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NAND </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_NAND_Write_Page_8<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">b(</span></span>),
+                                          NAND </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_NAND_Write_Page_8<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">b(</span></span>),
 
 
 
@@ -10035,512 +2411,127 @@
                                           and&nbsp;
                                           HAL_NAND_Write_SpareArea_16b()
                                           to manage correctly the time
-                                          out condition.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          out condition.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l57 level1
-                                      lfo20;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Optimize <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMATxCplt(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SAI_DMARxCplt</span></span>()
+                                          SAI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMATxCplt(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_DMARxCplt</span></span>()
 
 
 
 
                                           APIs to check on "Mode"
                                           parameter instead of&nbsp;CIRC
-                                          bit in the CR register.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove unused
-                                          SAI_FIFO_SIZE define</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l57 level2
-                                        lfo20;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Receive_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
-                                          programming sequence to be <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">inline</span></span>
-                                          with reference manual</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          bit in the CR register.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove unused
+                                          SAI_FIFO_SIZE define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Receive_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
+                                          programming sequence to be <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">inline</span></span>
+                                          with reference manual</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.6
 
 
 
-                                        New Roman&quot;;color:white">V1.7.6
-
-
-
-                                        / 12-April-2019</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 12-April-2019</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix I2C send
-                                          break issue in IT <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">processes</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l39 level3
-                                          lfo21;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix I2C send
+                                          break issue in IT <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">processes</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             additional check on
-                                            hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmatx</span></span>
-                                            and hi2c-&gt;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">hdmarx</span></span>&nbsp;to
+                                            hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmatx</span></span>
+                                            and hi2c-&gt;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdmarx</span></span>&nbsp;to
 
 
 
 
                                             avoid the&nbsp;DMA request
-                                            enable when IT mode is used.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            enable when IT mode is used.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
-                                          implement <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Erratasheet</span></span>:
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                          implement <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Erratasheet</span></span>:
                                           BSY bit may stay high at the
                                           end of a data transfer in
-                                          Slave <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Slave <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
+
+
+
+                                          LPTIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
+                                          compilation errors with <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_LPTIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WriteReg(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_LPTIM_ReadReg</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          LPTIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
-                                          compilation errors with <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_LPTIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WriteReg(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">LL_LPTIM_ReadReg</span></span>()
-
-
-
-
-                                          macros</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          macros</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SDMMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
+                                          SDMMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                           preprocessing compilation
                                           issue with SDIO
-                                          STA&nbsp;STBITERR interrupt</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          STA&nbsp;STBITERR interrupt</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l39 level1
-                                      lfo21;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
+
+
+
+                                          USB </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Updated <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WritePacket(</span></span>),
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          USB </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Updated <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WritePacket(</span></span>),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USB_ReadPacket</span></span>()
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_ReadPacket</span></span>()
 
 
 
 
                                           APIs to prevent compilation
                                           warning with GCC GNU v8.2.0<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rework <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EPStartXfer(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rework <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EPStartXfer(</span></span>)
                                           API to enable the USB endpoint
-                                          before unmasking the TX <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FiFo</span></span>
+                                          before unmasking the TX <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FiFo</span></span>
                                           empty interrupt in case DMA is
                                           not used<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">USB <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HCD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_Init</span></span>()
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HCD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_Init</span></span>()
 
 
 
@@ -10550,76 +2541,21 @@
                                           instance, USB DMA feature is
                                           available only on OTG HS
                                           Instance<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
-                                          duplicated line in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hal_hcd.c</span></span>
-                                          header file comment <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">section</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                          duplicated line in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hal_hcd.c</span></span>
+                                          header file comment <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">section</span></span>
                                           <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rework USB
-                                          HAL driver to use instance <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PCD_SPEED_xxx</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HCD_SPEED_xx</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rework USB
+                                          HAL driver to use instance <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PCD_SPEED_xxx</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HCD_SPEED_xx</span></span>
                                           speeds instead of OTG register
                                           Core speed definition during
-                                          the instance <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">initialization</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l39 level2
-                                        lfo21;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Software
+                                          the instance <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">initialization</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Software
                                           Quality improvement with a fix
-                                          of <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CodeSonar</span></span>
-                                          warning on <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PCD_Port_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                          and &nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HCD_Port_IRQHandler</span></span>()
+                                          of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CodeSonar</span></span>
+                                          warning on <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PCD_Port_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                          and &nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HCD_Port_IRQHandler</span></span>()
 
 
 
@@ -10627,476 +2563,129 @@
                                           interrupt handlers<o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.5
 
 
 
-                                        New Roman&quot;;color:white">V1.7.5
-
-
-
-                                        / 08-February-2019</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l72 level1
-                                      lfo22;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 08-February-2019</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l72 level1
-                                      lfo22;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
-
-
-
-                                        updates to fix <span
-                                          class="spelle"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">CodeSonar</span></span>
-                                        compilation <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">warnings</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l72 level1
-                                      lfo22;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        updates to fix <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CodeSonar</span></span>
+                                        compilation <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">warnings</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix SW4STM32
-                                        compilation errors under <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">Linux</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l72 level1
-                                      lfo22;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        compilation errors under <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Linux</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix the user manual
-                                        .chm <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">files</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l72 level1
-                                      lfo22;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
+                                        .chm <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">files</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                         support of HAL callback
-                                        registration <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                        registration <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l21 level1
-                                      lfo23;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        new<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><b>HAL
 
 
 
-
-                                        &quot;Times New Roman&quot;">Add
-                                        new<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span><b>HAL
+                                          EXTI</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span>driver</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        new<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><b>HAL
 
 
 
-                                          EXTI</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span>driver</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l21 level1
-                                      lfo23;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        new<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span><b>HAL
-
-
-
-                                          SMBUS</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span>driver</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l21 level1
-                                      lfo23;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">The
+                                          SMBUS</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span>driver</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
 
 
 
                                           following changes done on the
                                           HAL drivers require an update
                                           on the application code based
-                                          on older HAL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">versions</span></span></span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l21 level2
-                                        lfo23;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rework of HAL
+                                          on older HAL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">versions</span></span></span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rework of HAL
                                           CRYP driver<b> (compatibility
-                                            break) </b></span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l21 level3
-                                          lfo23;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL CRYP
+                                            break) </b></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL CRYP
                                             driver has been redesigned
                                             with new API's, to bypass
                                             limitations on data
                                             Encryption/Decryption
                                             management present with
                                             previous HAL CRYP driver
-                                            version.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l21 level3
-                                          lfo23;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The new HAL
+                                            version.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The new HAL
                                             CRYP driver is the
                                             recommended version. It is
                                             located as usual in
-                                            Drivers/STM32F4xx_HAL_Driver/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Src</span></span>
+                                            Drivers/STM32F4xx_HAL_Driver/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Src</span></span>
                                             and
                                             Drivers/STM32f4xx_HAL_Driver/Inc
                                             folders. It can be enabled
                                             through switch
                                             HAL_CRYP_MODULE_ENABLED in
-                                            stm32f4xx_hal_conf.h</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l21 level3
-                                          lfo23;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The legacy
+                                            stm32f4xx_hal_conf.h</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The legacy
                                             HAL CRYP driver is no longer
-                                            supported.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            supported.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l21 level2
-                                        lfo23;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">AutoReloadPreload</span></span>
-                                          field in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TIM_Base_InitTypeDef</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AutoReloadPreload</span></span>
+                                          field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TIM_Base_InitTypeDef</span></span>
                                           structure&nbsp;to allow the
                                           possibilities to enable or
                                           disable the TIM Auto Reload
-                                          Preload.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          Preload.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add support
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add support
                                           of <b>HAL callback
-                                            registration</b> <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The feature
+                                            registration</b> <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The feature
                                             disabled by default is
                                             available for the following
-                                            HAL drivers:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><b><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">ADC,
+                                            HAL drivers:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ADC,
                                                 CAN, CEC, CRYP, DAC,
                                                 DCMI, DFSDM, DMA2D, DSI,
                                                 ETH, HASH, HCD, I2C,
                                                 FMPI2C, SMBUS,<br>
                                                 UART, USART, IRDA,
                                                 SMARTCARD, LPTIM, LTDC,
-                                                MMC, NAND, <span
-                                                  class="grame"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">NOR,</span></span>
-                                                PCCARD, PCD, QSPI, RNG,</span></b><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><br>
-                                            </span><b><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">RTC,
+                                                MMC, NAND, <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NOR,</span></span>
+                                                PCCARD, PCD, QSPI, RNG,</span></b><span style=""><br>
+                                            </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RTC,
                                                 SAI, SD, SDRAM, SRAM,
                                                 SPDIFRX, SPI, I2S, TIM,
-                                              </span></b><span
-                                              style="font-size:
-                                              10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;">and<b> WWDG</b></span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">and<b> WWDG</b></span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The feature
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The feature
                                             may be enabled individually
                                             per HAL <i>PPP</i> driver
                                             by setting the corresponding
@@ -11110,4242 +2699,694 @@
                                             configuration file (template
                                             file
                                             stm32f4xx_hal_conf_template.h
-                                            available <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">from&nbsp;
+                                            available <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">from&nbsp;
 
 
 
-                                                Drivers</span></span>/STM32F4xx_HAL_Driver/Inc)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Once <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">enabled
+                                                Drivers</span></span>/STM32F4xx_HAL_Driver/Inc)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Once <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">enabled
 
 
 
                                                 ,</span></span> the user
-                                            application may resort to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_RegisterCallback</span></span>()
+                                            application may resort to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_RegisterCallback</span></span>()
 
 
 
 
                                             to register specific
                                             callback function(s) and
-                                            unregister it(them) with <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_<i>PPP</i>_UnRegisterCallback</span></span>().</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            unregister it(them) with <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_<i>PPP</i>_UnRegisterCallback</span></span>().</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">General
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
                                           updates to fix MISRA 2012
-                                          compilation <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">errors</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Replace <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetUID(</span></span>)
+                                          compilation <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">errors</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Replace <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetUID(</span></span>)
                                             API by HAL_GetUIDw0(),
                                             HAL_GetUIDw1() and
-                                            HAL_GetUIDw2()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_IS_BIT_SET()/HAL_IS_BIT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CLR(</span></span>)
-                                            macros implementation update</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">"<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">stdio.h</span></span>"
-                                            include updated with "<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">stddef.</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">h</span></span>"</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_GetUIDw2()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IS_BIT_SET()/HAL_IS_BIT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLR(</span></span>)
+                                            macros implementation update</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">"<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">stdio.h</span></span>"
+                                            include updated with "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">stddef.</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">h</span></span>"</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GPIO&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">GPIO&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add missing
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add missing
                                           define for SPI3 alternate
                                           function "GPIO_AF5_SPI3" for
-                                          STM32F401VE devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                          STM32F401VE devices</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           "GPIO_AF9_TIM14" from defined
                                           alternate function list for
-                                          STM32F401xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_GPIO_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">TogglePin(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) reentrancy
-                                          robustness improvement</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_GPIO_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DeInit(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API update
+                                          STM32F401xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TogglePin(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) reentrancy
+                                          robustness improvement</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API update
                                           to avoid potential pending
-                                          interrupt after call</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          GPIO_GET_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">INDEX(</span></span>)
+                                          interrupt after call</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          GPIO_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">INDEX(</span></span>)
                                           API for more compliance with
                                           STM32F412Vx/STM32F412Rx/STM32F412Cx
-                                          devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                          devices</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           GPIO_BRR registers with
                                           Reference Manual regarding
                                           registers and bit definition
-                                          values</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          values</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRYP</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CRYP_InitTypeDef</span></span>
-                                          </span></b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">is no more
-                                          supported, changed by <span
-                                            class="spelle"><b><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CRYP_ConfigTypedef</span></b></span>
+                                          CRYP</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYP_InitTypeDef</span></span>
+                                          </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">is no more
+                                          supported, changed by <span class="spelle"><b><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYP_ConfigTypedef</span></b></span>
                                           to allow changing parameters
-                                          using <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">setConfig(</span></span>)
+                                          using <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">setConfig(</span></span>)
                                           API without reinitialize the
-                                          CRYP IP using the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_Init</span></span>()
+                                          CRYP IP using the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Init</span></span>()
 
 
 
 
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">New
-                                          parameters added in the <span
-                                            class="spelle"><b><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CRYP_ConfigTypeDef</span></b></span>
-                                          structure: <b>B0</b> and <span
-                                            class="grame"><b><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DataWidthUnit</span></b></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Input data
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">New
+                                          parameters added in the <span class="spelle"><b><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYP_ConfigTypeDef</span></b></span>
+                                          structure: <b>B0</b> and <span class="grame"><b><span style="font-family: &quot;Verdana&quot;,sans-serif;">DataWidthUnit</span></b></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Input data
                                           size parameter is added in the
-                                          <span class="spelle"><b><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CRYP_HandleTypeDef</span></b></span>
-                                          structure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new APIs
+                                          <span class="spelle"><b><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYP_HandleTypeDef</span></b></span>
+                                          structure</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new APIs
                                           to manage the CRYP
-                                          configuration:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetConfig(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GetConfig(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          configuration:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new APIs
-                                          to manage the Key derivation:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYPEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableAutoKeyDerivation(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYPEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DisableAutoKeyDerivation(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new APIs
+                                          to manage the Key derivation:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYPEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableAutoKeyDerivation(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYPEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableAutoKeyDerivation(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new APIs
-                                          to encrypt and decrypt data:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Encypt(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Decypt(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_Encypt_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_Decypt_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_Encypt_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DMA(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYP_Decypt_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DMA(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new APIs
+                                          to encrypt and decrypt data:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Encypt(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Decypt(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Encypt_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Decypt_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Encypt_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_Decypt_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new APIs
-                                          to generate TAG:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYPEx_AES<b>GCM</b>_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GenerateAuthTAG(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_CRYPEx_AES<b>CCM</b>_Generago</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">teAuthTAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new APIs
+                                          to generate TAG:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYPEx_AES<b>GCM</b>_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GenerateAuthTAG(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYPEx_AES<b>CCM</b>_Generago</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">teAuthTAG(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LPTIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                          LPTIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           useless LPTIM Wakeup EXTI
-                                          related macros from <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_TimeOut_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          related macros from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_TimeOut_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">I2C API
+                                          I2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C API
                                           changes for MISRA-C 2012
-                                          compliancy:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_I2C_Master_Sequential_Transmit_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          compliancy:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_I2C_Master_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to
-                                            HAL_I2C_Master_Seq_Transmit_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_I2C_Master_Sequentiel_Receive_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_I2C_Master_Seq_Transmit_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_I2C_Master_Sequentiel_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to
-                                            HAL_I2C_Master_Seq_Receive_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_I2C_Slave_Sequentiel_Transmit_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_I2C_Master_Seq_Receive_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_I2C_Slave_Sequentiel_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to
                                             HAL_I2C_Slave_Seq_Transmit_IT()
-                                          </span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_I2C_Slave_Sequentiel_Receive_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_I2C_Slave_Sequentiel_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             to
-                                            HAL_I2C_Slave_Seq_Receive_DMA()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_I2C_Slave_Seq_Receive_DMA()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">SMBUS defined
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMBUS defined
                                           flags are removed as not used
-                                          by the HAL I2C driver</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FLAG_SMBALERT</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FLAG_TIMEOUT</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FLAG_PECERR</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FLAG_SMBHOST</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FLAG_SMBDEFAULT</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          by the HAL I2C driver</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FLAG_SMBALERT</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FLAG_TIMEOUT</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FLAG_PECERR</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FLAG_SMBHOST</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FLAG_SMBDEFAULT</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add support
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add support
                                           of I2C repeated start feature
-                                          in DMA Mode:</span><span
-                                          style="font-size:
-                                          10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          in DMA Mode:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">With the
-                                            following new API's</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">With the
+                                            following new API's</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Master_Seq_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Master_Seq_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Slave_Seq_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Slave_Seq_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Master_Seq_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Master_Seq_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Slave_Seq_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Slave_Seq_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new I2C
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new I2C
                                           transfer options to easy
-                                          manage the sequential <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">transfers</span></span></span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          manage the sequential <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transfers</span></span></span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_FIRST_AND_NEXT_FRAME</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_LAST_FRAME_NO_STOP</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_OTHER_FRAME</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C_OTHER_AND_LAST_FRAME</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_FIRST_AND_NEXT_FRAME</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_LAST_FRAME_NO_STOP</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_OTHER_FRAME</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C_OTHER_AND_LAST_FRAME</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMPI2C</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">I2C API
+                                          FMPI2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C API
                                           changes for MISRA-C 2012
-                                          compliancy:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_FMPI2C_Master_Sequential_Transmit_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          compliancy:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_FMPI2C_Master_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to
-                                            HAL_FMPI2C_Master_Seq_Transmit_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_FMPI2C_Master_Sequentiel_Receive_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            HAL_FMPI2C_Master_Seq_Transmit_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_FMPI2C_Master_Sequentiel_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             to
-                                            HAL_FMPI2C_Master_Seq_Receive_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_FMPI2C_Master_Sequentiel_Transmit_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                            HAL_FMPI2C_Master_Seq_Receive_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_FMPI2C_Master_Sequentiel_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             to
                                             HAL_FMPI2C_Master_Seq_Transmit_DMA()
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            HAL_FMPI2C_Master_Sequentiel_Receive_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            HAL_FMPI2C_Master_Sequentiel_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                             to
-                                            HAL_FMPI2C_Master_Seq_Receive_DMA()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_FMPI2C_Master_Seq_Receive_DMA()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           FMPI2C_CR1_DFN to
                                           FMPI2C_CR1_DNF for more
                                           compliance with Reference
                                           Manual regarding registers and
-                                          bit definition <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">naming</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add support
+                                          bit definition <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">naming</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add support
                                           of I2C repeated start feature
-                                          in DMA Mode:</span><span
-                                          style="font-size:
-                                          10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          in DMA Mode:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">With the
-                                            following new API's</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">With the
+                                            following new API's</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Master_Seq_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Master_Seq_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Slave_Seq_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l85 level4
-                                            lfo24;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Slave_Seq_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Master_Seq_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Master_Seq_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Slave_Seq_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Slave_Seq_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_OB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetRDP(</span></span>)
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_OB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetRDP(</span></span>)
                                           API to return the correct RDP
-                                          level</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          level</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><span
-                                        class="grame"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL&nbsp;
-                                            RCC</span></b></span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove GPIOD
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;
+                                            RCC</span></b></span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove GPIOD
                                           CLK macros for STM32F412Cx
-                                          devices (X = D)</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove GPIOE
+                                          devices (X = D)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove GPIOE
                                           CLK macros for
                                           STM32F412Rx\412Cx devices: (X
-                                          = E)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                          = E)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           GPIOF/G CLK macros for
                                           STM32F412Vx\412Rx\412Cx
-                                          devices (X= F or G)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GPIO<b>X</b>_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GPIO<b>X</b>_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GPIO<b>X</b>_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GPIO<b>X</b>_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GPIO<b>X</b>_FORCE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          devices (X= F or G)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GPIO<b>X</b>_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GPIO<b>X</b>_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GPIO<b>X</b>_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GPIO<b>X</b>_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GPIO<b>X</b>_FORCE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RNG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
-                                          manage RNG error code: </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
+                                          RNG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                          manage RNG error code: </span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
                                             parameter in HAL RNG Handler
-                                            structure</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            structure</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          __LL_ADC_CALC_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TEMPERATURE(</span></span>)
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          __LL_ADC_CALC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TEMPERATURE(</span></span>)
                                           helper macro to calculate the
                                           temperature (unit: degree
                                           Celsius) from ADC conversion
                                           data of internal temperature
-                                          sensor.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix ADC
+                                          sensor.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix ADC
                                           channels configuration issues
-                                          on STM32F413xx/423xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">To allow
+                                          on STM32F413xx/423xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">To allow
                                             possibility to switch
                                             between VBAT and TEMPERATURE
-                                            channels <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">configurations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            channels <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">configurations</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_ADC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Start(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">), <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_Start_IT</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">), <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_ADC_Start_IT</span></span>()
-
-
-
-
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_ADC_Start_DMA</span></span>()
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADC_Start_DMA</span></span>()
 
 
 
 
                                           update to prevention from
                                           starting ADC2 or ADC3 once
-                                          multimode is enabled</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          multimode is enabled</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DFSDM&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">DFSDM&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">General
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
                                           updates to be compliant with
                                           DFSDM bits naming used in
-                                          CMSIS files.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          CMSIS files.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CAN&nbsp;
+
+
+
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          possible values list for <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FilterActivation</span></span>
+                                          parameter in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CAN_FilterTypeDef</span></span>
+                                          structure</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CAN_FILTER_ENABLE
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">CAN&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            instead of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CAN_FILTER_DISABLE
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          possible values list for <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FilterActivation</span></span>
-                                          parameter in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CAN_FilterTypeDef</span></span>
-                                          structure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CAN_FILTER_ENABLE
-
-
-
-
-                                            instead of <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CAN_FILTER_DISABLE
-
-
-
-
-                                            instead of <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            instead of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">CEC&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
-                                          CEC State management method:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_StateTypeDef</span></span>
-                                            structure <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">parameters</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l85 level3
-                                          lfo24;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            defines for CEC <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">states</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
+                                          CEC State management method:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_StateTypeDef</span></span>
+                                            structure <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">parameters</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            defines for CEC <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">states</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">DMA&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add clean of
-                                          callbacks in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clean of
+                                          callbacks in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          DMA2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">D&nbsp;
 
 
 
-                                          DMA2<span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">D&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove unused
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove unused
                                           DMA2D_ColorTypeDef structure
                                           to be compliant with MISRAC
-                                          2012 Rule 2.3</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">General
+                                          2012 Rule 2.3</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
                                           update to use dedicated
                                           defines for
                                           DMA2D_BACKGROUND_LAYER and
                                           DMA2D_FOREGROUND_LAYER instead
-                                          of numerical values: 0/1.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          of numerical values: 0/1.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l85 level1
-                                      lfo24;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DSI&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">DSI&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l85 level2
-                                        lfo24;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix read
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix read
                                           multibyte issue: remove extra
-                                          call to __HAL_UNLOCK__ from <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DSI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ShortWrite(</span></span>)
-                                          API.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          call to __HAL_UNLOCK__ from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DSI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ShortWrite(</span></span>)
+                                          API.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l8 level1
-                                      lfo25;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL/ LL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">drivers</span></span>
-                                          optimization</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL driver:
-                                            remove unused <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">variables</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">LL driver:
-                                            getter APIs optimization</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/ LL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">drivers</span></span>
+                                          optimization</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL driver:
+                                            remove unused <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">variables</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL driver:
+                                            getter APIs optimization</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l80 level1
-                                      lfo26;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove the
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                           followings API's as feature
                                           not supported by
-                                          STM32F469xx/479xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableWakeUpPinPolarityRisingEdge(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableWakeUpPinPolarityRisingEdge(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          STM32F469xx/479xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableWakeUpPinPolarityRisingEdge(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableWakeUpPinPolarityRisingEdge(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l80 level1
-                                      lfo26;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_StateTypeDef</span></span>
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_StateTypeDef</span></span>
                                           structure to add new state:
-                                          HAL_SPI_STATE_ABORT</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          HAL_SPI_STATE_ABORT</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l80 level1
-                                      lfo26;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">AutoReloadPreload</span></span>
-                                          field in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TIM_Base_InitTypeDef</span></span>
-                                          structure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Refer to
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AutoReloadPreload</span></span>
+                                          field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TIM_Base_InitTypeDef</span></span>
+                                          structure</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to
                                             the TIM examples to identify
-                                            the <span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">changes</span></span><b>
-                                            </b></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">changes</span></span><b>
+                                            </b></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move the
                                           following TIM structures from
                                           stm32f4xx_hal_tim_ex.h into
-                                          stm32f4xx_hal_tim.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">TIM_MasterConfigTypeDef</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">TIM_BreakDeadTimeConfigTypeDef</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          stm32f4xx_hal_tim.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TIM_MasterConfigTypeDef</span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TIM_BreakDeadTimeConfigTypeDef</span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new TIM
-                                          Callbacks API's:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_TIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PeriodElapsedHalfCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_TIM_IC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">CaptureHalfCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_TIM_PWM_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PulseFinishedHalfCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_TIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">TriggerHalfCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new TIM
+                                          Callbacks API's:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PeriodElapsedHalfCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_IC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CaptureHalfCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_PWM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PulseFinishedHalfCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TriggerHalfCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l80 level2
-                                        lfo26;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">TIM API
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TIM API
                                           changes for MISRA-C 2012
-                                          compliancy:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_SlaveConfigSynchronization</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_SlaveConfigSynchro</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_SlaveConfigSynchronization_IT</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_SlaveConfigSynchro_IT</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutationEvent</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutEvent</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutationEvent_IT</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutEvent_IT</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutationEvent_DMA</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_ConfigCommutEvent_DMA</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_CommutationCallback</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_CommutCallback</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l80 level3
-                                          lfo26;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_DMACommutationCplt</span></span>
-                                            to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TIMEx_DMACommutationCplt</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          compliancy:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_SlaveConfigSynchronization</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_SlaveConfigSynchro</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_SlaveConfigSynchronization_IT</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_SlaveConfigSynchro_IT</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutationEvent</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutEvent</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutationEvent_IT</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutEvent_IT</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutationEvent_DMA</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_ConfigCommutEvent_DMA</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_CommutationCallback</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_CommutCallback</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_DMACommutationCplt</span></span>
+                                            to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TIMEx_DMACommutationCplt</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l27 level1
-                                      lfo27;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL/LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL/LL
-
-
-
-                                          USB</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rework USB
+                                          USB</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rework USB
                                           interrupt handler and improve
-                                          HS DMA support in Device <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix BCD
-                                          handling <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">fr</span></span> OTG
-                                          instance in device <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">cleanup
+                                          HS DMA support in Device <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix BCD
+                                          handling <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">fr</span></span> OTG
+                                          instance in device <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">cleanup
                                           reference to low speed in
-                                          device mode</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">allow writing
+                                          device mode</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">allow writing
                                           TX FIFO in case of transfer
                                           length is equal to available
-                                          space in the TX <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FIFO</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix Toggle
+                                          space in the TX <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FIFO</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix Toggle
                                           OUT interrupt channel in host
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update USB
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update USB
                                           OTG max number of endpoints (6
                                           FS and 9 HS instead of 5 and
-                                          8)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update USB
+                                          8)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update USB
                                           OTG IP to enable internal
                                           transceiver when starting USB
-                                          device after committee BCD <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">negotiation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          device after committee BCD <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">negotiation</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l27 level1
-                                      lfo27;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          IWDG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l27 level2
-                                        lfo27;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update LL
-                                          inline macros to use <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IWDGx</span></span>
+                                          IWDG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update LL
+                                          inline macros to use <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IWDGx</span></span>
                                           parameter instead of IWDG
-                                          instance defined in CMSIS <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">device</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          instance defined in CMSIS <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">device</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.4
 
 
 
-                                        New Roman&quot;;color:white">V1.7.4
-
-
-
-                                        / 02-February-2018</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l14 level1
-                                      lfo28;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 02-February-2018</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l14 level1
-                                      lfo28;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL&nbsp;</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l14 level2
-                                        lfo28;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">UNUSED(</span></span>)
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span>)
                                           macro implementation to avoid
-                                          GCC warning</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l14 level3
-                                          lfo28;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The warning
-                                            is detected when the <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UNUSED(</span></span>)
+                                          GCC warning</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The warning
+                                            is detected when the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span>)
                                             macro is called from C++
-                                            file</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            file</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l14 level2
-                                        lfo28;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           make RAMFUNC define as generic
-                                          type instead of <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_StatusTypdef</span></span>
-                                          type.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          type instead of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypdef</span></span>
+                                          type.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l14 level1
-                                      lfo28;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l14 level2
-                                        lfo28;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           the&nbsp;prototypes of the
                                           following APIs after change on
-                                          RAMFUNC <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">defines</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l14 level3
-                                          lfo28;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FLASHEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">StopFlashInterfaceClk(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l14 level3
-                                          lfo28;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FLASHEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">StartFlashInterfaceClk(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l14 level3
-                                          lfo28;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FLASHEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableFlashSleepMode(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l14 level3
-                                          lfo28;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FLASHEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DisableFlashSleepMode(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          RAMFUNC <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">defines</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASHEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">StopFlashInterfaceClk(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASHEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">StartFlashInterfaceClk(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASHEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableFlashSleepMode(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASHEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableFlashSleepMode(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l14 level1
-                                      lfo28;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l14 level2
-                                        lfo28;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Abort</span></span>()
+                                          SAI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Abort</span></span>()
 
 
 
 
                                           process to fix the lock/unlock
-                                          audio issue</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          audio issue</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.3
 
 
 
-                                        New Roman&quot;;color:white">V1.7.3
-
-
-
-                                        / 22-December-2017</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 22-December-2017</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">The
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
 
 
 
                                           following changes done on the
                                           HAL drivers require an update
                                           on the application code based
-                                          on older HAL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">versions</span></span></span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rework of
+                                          on older HAL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">versions</span></span></span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rework of
                                             HAL CAN driver
-                                            (compatibility break)&nbsp;</span></b><b><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">A new HAL
+                                            (compatibility break)&nbsp;</span></b><b><span style=""><o:p></o:p></span></b></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">A new HAL
                                             CAN driver has been
                                             redesigned with new APIs, to
                                             bypass limitations on CAN
                                             Tx/Rx FIFO management
                                             present with previous HAL
-                                            CAN driver version.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The new HAL
+                                            CAN driver version.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The new HAL
                                             CAN driver is the
                                             recommended version. It is
                                             located as usual in
-                                            Drivers/STM32F4xx_HAL_Driver/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Src</span></span>
+                                            Drivers/STM32F4xx_HAL_Driver/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Src</span></span>
                                             and
                                             Drivers/STM32f4xx_HAL_Driver/Inc
                                             folders. It can be enabled
                                             through switch
                                             HAL_CAN_MODULE_ENABLED in
-                                            stm32f4xx_hal_conf.h</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The legacy
+                                            stm32f4xx_hal_conf.h</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The legacy
                                             HAL CAN driver is also
                                             present in the release in
-                                            Drivers/STM32F4xx_HAL_Driver/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Src</span></span>/Legacy
+                                            Drivers/STM32F4xx_HAL_Driver/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Src</span></span>/Legacy
 
 
 
@@ -15358,881 +3399,170 @@
                                             however be enabled through
                                             switch
                                             HAL_CAN_LEGACY_MODULE_ENABLED
-                                            in stm32f4xx_hal_conf.h</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            in stm32f4xx_hal_conf.h</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL&nbsp;</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
                                           driver to allow user to change
-                                          <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">systick</span></span>
-                                          period to 1ms, 10 <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ms</span></span>
-                                          or 100 <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ms :</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">systick</span></span>
+                                          period to 1ms, 10 <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ms</span></span>
+                                          or 100 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ms :</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
+                                            following <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API's
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
-                                            following <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">API's
-
-
-
-                                                :</span></span>&nbsp;&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l87 level4
-                                            lfo29;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetTickPrio(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">):
-                                              Returns a tick priority.</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l87 level4
-                                            lfo29;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">SetTickFreq(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">): Sets
-                                              new tick&nbsp;frequency.</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l87 level4
-                                            lfo29;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetTickFreq(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">):
-                                              Returns tick frequency.</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                                :</span></span>&nbsp;&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetTickPrio(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):
+                                              Returns a tick priority.</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetTickFreq(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): Sets
+                                              new tick&nbsp;frequency.</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetTickFreq(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):
+                                              Returns tick frequency.</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TickFreqTypeDef</span></span>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TickFreqTypeDef</span></span>
                                             enumeration for the
                                             different Tick Frequencies:
                                             10 Hz, 100 Hz and 1KHz
-                                            (default).</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            (default).</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fields of <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CAN_InitTypeDef</span></span>
-                                          structure are reworked:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SJW to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SyncJumpWidth</span></span>,
+                                          CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fields of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CAN_InitTypeDef</span></span>
+                                          structure are reworked:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SJW to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SyncJumpWidth</span></span>,
                                             BS1 to TimeSeg1, BS2 to
-                                            TimeSeg2, TTCM to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TimeTriggeredMode</span></span>,
-                                            ABOM to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">AutoBusOff</span></span>,
-                                            AWUM to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">AutoWakeUp</span></span>,
-                                            NART to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">AutoRetransmission</span></span>
-                                            (inversed), RFLM to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">ReceiveFifoLocked</span></span>
-                                            and TXFP to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TransmitFifoPriority</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            TimeSeg2, TTCM to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TimeTriggeredMode</span></span>,
+                                            ABOM to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AutoBusOff</span></span>,
+                                            AWUM to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AutoWakeUp</span></span>,
+                                            NART to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AutoRetransmission</span></span>
+                                            (inversed), RFLM to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReceiveFifoLocked</span></span>
+                                            and TXFP to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TransmitFifoPriority</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is split
+                                          into both <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Init</span></span>()
 
 
 
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
 
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Start</span></span>()
 
 
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
 
 
+                                          API's</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is replaced
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_AddTxMessage</span></span>()
 
 
-                                          mso-fareast-font-family:&quot;Times
 
 
+                                          to place Tx Request, then <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_GetTxMailboxesFreeLevel</span></span>()
 
-                                          New Roman&quot;">) is split
-                                          into both <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_Init</span></span>()
 
 
 
+                                          for polling until completion.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Transmit_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is replaced
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_ActivateNotification</span></span>()
 
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_Start</span></span>()
 
 
 
+                                          to enable transmit IT, then <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_AddTxMessage</span></span>()
 
-                                          API's</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
 
 
 
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Transmit(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is replaced
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_AddTxMessage</span></span>()
-
-
-
-
-                                          to place Tx Request, then <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_GetTxMailboxesFreeLevel</span></span>()
-
-
-
-
-                                          for polling until completion.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_Transmit_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is replaced
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_ActivateNotification</span></span>()
-
-
-
-
-                                          to enable transmit IT, then <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_AddTxMessage</span></span>()
-
-
-
-
-                                          for place Tx request.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Receive(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is replaced
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_GetRxFifoFillLevel</span></span>()
+                                          for place Tx request.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Receive(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is replaced
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_GetRxFifoFillLevel</span></span>()
 
 
 
 
                                           for polling until reception,
-                                          then <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_GetRxMessage</span></span>()
+                                          then <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_GetRxMessage</span></span>()
 
 
 
 
                                           <br>
-                                          to get Rx message.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_Receive_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          to get Rx message.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Receive_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is replaced
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_ActivateNotification</span></span>()&nbsp;to
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is replaced
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_ActivateNotification</span></span>()&nbsp;to
-
-
-
-
-                                          enable receive IT, then <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_CAN_GetRxMessage</span></span>()<br>
-                                          in the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">receivecallback</span></span>
-                                          to get Rx message</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Slepp(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is renamed
-                                          as <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_RequestSleep</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">TxCpltCallback(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) is split
+                                          enable receive IT, then <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_GetRxMessage</span></span>()<br>
+                                          in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">receivecallback</span></span>
+                                          to get Rx message</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Slepp(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is renamed
+                                          as <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_RequestSleep</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TxCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is split
                                           into
                                           HAL_CAN_TxMailbox0CompleteCallback(),
 HAL_CAN_TxMailbox1CompleteCallback()
-and&nbsp;HAL_CAN_TxMailbox2CompleteCallback().</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CAN_RxCpltCallback</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> is split
-                                          into HAL_CAN_RxFifo0<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MsgPendingCallback(</span></span>)
+and&nbsp;HAL_CAN_TxMailbox2CompleteCallback().</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_RxCpltCallback</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> is split
+                                          into HAL_CAN_RxFifo0<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MsgPendingCallback(</span></span>)
                                           and
-                                          HAL_CAN_RxFifo1MsgPendingCallback().</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">More complete
+                                          HAL_CAN_RxFifo1MsgPendingCallback().</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">More complete
                                           "How to use the new driver" is
                                           detailed in the driver header
-                                          section itself.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          section itself.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMPI2C </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          FMPI2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           option
                                           FMPI2C_LAST_FRAME_NO_STOP for
-                                          the sequential transfer <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">This option
+                                          the sequential transfer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">This option
                                             allows to manage a restart
                                             condition after several call
                                             of the same master
-                                            sequential interface.&nbsp;</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            sequential interface.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l87 level1
-                                      lfo29;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC&nbsp;</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new HAL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">macros</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GET_RTC_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)
+                                          RCC&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new HAL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">macros</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GET_RTC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)
                                             allowing to get the RTC
-                                            clock source</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_GET_RTC_HSE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PRESCALER(</span></span>)
+                                            clock source</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GET_RTC_HSE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PRESCALER(</span></span>)
                                             allowing to get the HSE
                                             clock divider for RTC
-                                            peripheral</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            peripheral</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Ensure reset
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Ensure reset
                                           of CIR and CSR registers when
-                                          issuing <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)/<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_RCC_DeInit</span></span>
-                                          functions</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">OscConfig(</span></span>)&nbsp;to
+                                          issuing <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_RCC_DeInit</span></span>
+                                          functions</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span>)&nbsp;to
 
 
 
@@ -16240,1255 +3570,244 @@
                                           keep backup domain enabled
                                           when configuring
                                           respectively&nbsp;LSE and RTC
-                                          clock source</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l87 level2
-                                        lfo29;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new HAL
+                                          clock source</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new HAL
                                           interfaces allowing to control
                                           the activation or deactivation
-                                          of PLLI2S and PLLSAI:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCCEx_EnablePLLI2<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">S(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCCEx_DisablePLLI2<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">S(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RCCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnablePLLSAI(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l87 level3
-                                          lfo29;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RCCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DisablePLLSAI(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          of PLLI2S and PLLSAI:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_EnablePLLI2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">S(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_DisablePLLI2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">S(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnablePLLSAI(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisablePLLSAI(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l2 level1
-                                      lfo30;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          RCC</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update&nbsp;</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l2 level2
-                                        lfo30;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new LL
-                                          RCC macro </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l2 level3
-                                          lfo30;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LL_RCC_PLL_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SetMainSource(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) allowing
+                                          RCC</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new LL
+                                          RCC macro </span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL_RCC_PLL_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetMainSource(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) allowing
                                             to configure PLL main clock
-                                            source</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            source</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l2 level1
-                                      lfo30;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          FMC / LL FSMC </span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l2 level2
-                                        lfo30;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add clear of
+                                          FMC / LL FSMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clear of
                                           the PTYP bit to select the
-                                          PCARD mode in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_PCCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          / <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">FSMC_PCCARD_Init</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          PCARD mode in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_PCCARD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          / <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FSMC_PCCARD_Init</span></span>()</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.2
 
 
 
-                                        New Roman&quot;;color:white">V1.7.2
-
-
-
-                                        / 06-October-2017</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 06-October-2017</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Fix
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                         compilation&nbsp;warning with
-                                        GCC <span class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">compiler</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Remove
+                                        GCC <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compiler</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
 
 
 
                                         Date and version
-                                        from&nbsp;header <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">files</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Update
+                                        from&nbsp;header <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">files</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
                                         HAL drivers to refer to the
                                         new&nbsp;CMSIS bit position
                                         defines instead of usage the
-                                        POSITION_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">VAL(</span></span>)
-                                        macro</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                        POSITION_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VAL(</span></span>)
+                                        macro</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_def.h
 
 
 
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_def.h
-
-
-
-                                          file changes:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l4 level3
-                                          lfo31;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                          file changes:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             __weak and __packed defined
-                                            values for&nbsp;ARM compiler</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l4 level3
-                                          lfo31;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                            values for&nbsp;ARM compiler</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             __ALIGN_BEGIN and
                                             __ALIGN_END defined values
-                                            for&nbsp;ARM <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">compiler</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            for&nbsp;ARM <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compiler</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_ll_system.h
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_ll_system.h
 
 
 
 
                                           file:
                                           add&nbsp;LL_SYSCFG_REMAP_SDRAM
-                                          define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          define</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong
                                           definition of ADC channel
                                           temperature sensor for
                                           STM32F413xx and STM32F423xx
-                                          devices.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          devices.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;values
+                                          DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;values
 
 
 
                                           for the following defines:
                                           DMA_FLAG_FEIF0_4 and
-                                          DMA_FLAG_DMEIF0_4&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          DMA_FLAG_DMEIF0_4&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DSI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix Extra
-                                          warning with SW4STM32 <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">compiler</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix DSI
+                                          DSI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix Extra
+                                          warning with SW4STM32 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compiler</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix DSI
                                           display issue when using EWARM
-                                          w/ high level <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">optimization</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
-                                          MISRAC&nbsp;errors</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          w/ high level <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">optimization</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
+                                          MISRAC&nbsp;errors</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_FLASH_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Unlock(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASH_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Unlock(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           return state error when the
-                                          FLASH is already unlocked</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          FLASH is already unlocked</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l4 level1
-                                      lfo31;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMPI2C&nbsp;</span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                          FMPI2C&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           Interface APIs headers to
                                           remove confusing message about
-                                          device <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">address</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          FMPI2C_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">WaitOnRXNEFlagUntilTimeout(</span></span>)
+                                          device <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">address</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitOnRXNEFlagUntilTimeout(</span></span>)
                                           to resolve a race condition
-                                          between STOPF and RXNE Flags</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          FMPI2C_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TransferConfig(</span></span>)
-                                          to fix wrong bit management.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l4 level2
-                                        lfo31;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update code
+                                          between STOPF and RXNE Flags</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TransferConfig(</span></span>)
+                                          to fix wrong bit management.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update code
                                           comments to use DMA stream
-                                          instead of DMA <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">channel</span></span><o:p></o:p></span></li>
+                                          instead of DMA <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">channel</span></span><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l129 level1
-                                      lfo32;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l129 level2
-                                        lfo32;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PWR_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">EnableWakeUpPin(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableWakeUpPin(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update
                                           description to add support of
                                           PWR_WAKEUP_PIN2 and
-                                          PWR_WAKEUP_PIN3</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          PWR_WAKEUP_PIN3</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l129 level1
-                                      lfo32;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NOR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l129 level2
-                                        lfo32;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
-                                          support of STM32F412Rx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          NOR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
+                                          support of STM32F412Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l129 level1
-                                      lfo32;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l129 level2
-                                        lfo32;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           Interface APIs headers to
-                                          remove confusing <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mesage</span></span>
-                                          about device <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">address</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l129 level2
-                                        lfo32;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          I2C_MasterReceive_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RXNE(</span></span>)
+                                          remove confusing <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mesage</span></span>
+                                          about device <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">address</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          I2C_MasterReceive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RXNE(</span></span>)
                                           and I2C_MasterReceive_BTF()
                                           static APIs to fix bad
                                           Handling of NACK in I2C master
-                                          receive process.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          receive process.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l118 level1
-                                      lfo33;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l118 level2
-                                        lfo33;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetOscConfig(</span></span>)
-                                          API to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">set PLLR in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">RCC_OscInitStruct</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">check on
-                                            null <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pointer</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetOscConfig(</span></span>)
+                                          API to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">set PLLR in
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RCC_OscInitStruct</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">check on
+                                            null <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pointer</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l118 level2
-                                        lfo33;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ClockConfig(</span></span>)
-                                          API to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">check on
-                                            null <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pointer</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">optimize&nbsp;code
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ClockConfig(</span></span>)
+                                          API to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">check on
+                                            null <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pointer</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">optimize&nbsp;code
 
 
 
                                             size by updating the
-                                            handling method of the SWS <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">bits</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update to <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">use&nbsp;
+                                            handling method of the SWS <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">bits</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">use&nbsp;
 
 
 
@@ -17500,5952 +3819,1022 @@
                                             flash macro instead of using
                                             direct register access
                                             to&nbsp;LATENCY bits in
-                                            FLASH ACR register.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            FLASH ACR register.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l118 level2
-                                        lfo33;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
+                                          &nbsp;and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_RCC_DeInit</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
-                                          &nbsp;and <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_RCC_DeInit</span></span>()
-
-
-
-
-                                          APIs to</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Be able to
-                                            return HAL/LL status</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add checks
-                                            for HSI, PLL and PLLI2<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">S
+                                          APIs to</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Be able to
+                                            return HAL/LL status</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add checks
+                                            for HSI, PLL and PLLI2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">S
                                                 &nbsp;ready</span></span>
                                             before modifying RCC CFGR
-                                            registers</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Clear all
-                                            interrupt <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">falgs</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l118 level3
-                                          lfo33;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Initialize
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">systick</span></span>
-                                            interrupt <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">period</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            registers</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Clear all
+                                            interrupt <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">falgs</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Initialize
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">systick</span></span>
+                                            interrupt <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">period</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l118 level2
-                                        lfo33;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetSysClockFreq(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetSysClockFreq(</span></span>)
                                           to avoid risk of rounding
                                           error which may leads to a
-                                          wrong returned value.</span><span
-                                          style="font-size:7.0pt;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><span
-                                            style="font-size-adjust:
-                                            none;font-stretch: normal">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          wrong returned value.</span><span style="font-size: 7pt;"><span style="font-size-adjust: none; font-stretch: normal;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-top:4.5pt;margin-right:0in;
-margin-bottom:4.5pt;margin-left:1.0in;text-indent:-.25in"><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black"><o:p>&nbsp;</o:p></span></p>
-                                  <p class="MsoListParagraph"
-                                    style="margin-top:4.5pt;margin-right:0in;
-margin-bottom:4.5pt;margin-left:.5in;text-indent:-.25in"><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black"><o:p>&nbsp;</o:p></span></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <p class="MsoListParagraph" style="margin: 4.5pt 0in 4.5pt 1in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;"><o:p>&nbsp;</o:p></span></p>
+                                  <p class="MsoListParagraph" style="margin: 4.5pt 0in 4.5pt 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;"><o:p>&nbsp;</o:p></span></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RNG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RNG_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) remove
-                                          Lock()/Unlock()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          RNG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) remove
+                                          Lock()/Unlock()</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          MMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_MMC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Erase(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)
+                                          MMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_MMC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Erase(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)
                                           API:&nbsp;add missing () to
                                           fix&nbsp;compilation warning
                                           detected with SW4STM32 when
-                                          extra feature is enabled.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          extra feature is enabled.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RTC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API: update
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API: update
                                           to force the wait for synchro
                                           before setting TAFCR register
                                           when BYPSHAD bit in CR
-                                          register is 0.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          register is 0.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span>)
-                                          API to flush <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">fifo</span></span>
-                                          after disabling&nbsp;SAI</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          SAI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span>)
+                                          API to flush <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">fifo</span></span>
+                                          after disabling&nbsp;SAI</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2S
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2S
                                           DMA fullduplex process to
                                           handle I2S Rx and Tx DMA Half
-                                          transfer complete <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">callback</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          transfer complete <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">callback</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_OCN_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">xxxx(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_PWMN_xxx</span></span>()
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_OCN_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">xxxx(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_PWMN_xxx</span></span>()
 
 
 
 
                                           API description&nbsp;to remove
-                                          support of TIM_CHANNEL_4</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          support of TIM_CHANNEL_4</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          DMA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
-                                          clear DMA flags using WRITE_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">REG(</span></span>)
+                                          DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                          clear DMA flags using WRITE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">REG(</span></span>)
                                           instead SET_REG() API to avoid
                                           read access to the IFCR
-                                          register that is write only.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          register that is write only.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix warning
-                                          with static <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">analyzer</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix warning
+                                          with static <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">analyzer</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          USART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add assert
-                                          macros to check USART <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BaudRate</span></span>
-                                          register</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add assert
+                                          macros to check USART <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BaudRate</span></span>
+                                          register</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          IS_I2C_CLOCK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SPEED(</span></span>)
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          IS_I2C_CLOCK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPEED(</span></span>)
                                           and IS_I2C_DUTY_CYCLE()
                                           respectively to
                                           IS_LL_I2C_CLOCK_SPEED() and
                                           IS_LL_I2C_DUTY_CYCLE() to
                                           avoid incompatible macros
-                                          redefinition.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          redefinition.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_TIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EnableUpdateEvent(</span></span>)
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableUpdateEvent(</span></span>)
                                           API to clear UDIS bit in TIM
                                           CR1 register instead of
-                                          setting it.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LL_TIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DisableUpdateEvent(</span></span>)
+                                          setting it.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DisableUpdateEvent(</span></span>)
                                           API to set UDIS bit in TIM CR1
                                           register instead of clearing
-                                          it.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          it.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l49 level1
-                                      lfo34;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          USART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix MISRA
-                                          error w/ IS_LL_USART_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BRR(</span></span>)
-                                          macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l49 level2
-                                        lfo34;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong
+                                          USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix MISRA
+                                          error w/ IS_LL_USART_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BRR(</span></span>)
+                                          macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong
                                           check when UART10 instance is
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">used</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">used</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.1
 
 
 
-                                        New Roman&quot;;color:white">V1.7.1
+                                        / 14-April-2017</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
-                                        / 14-April-2017</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l56 level1
-                                      lfo35;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Update
-
-
-
-                                          CHM <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">UserManuals</span></span>
-                                          to support LL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">drivers</span></span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l56 level1
-                                      lfo35;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                          CHM <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UserManuals</span></span>
+                                          to support LL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">drivers</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l56 level1
-                                      lfo35;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l56 level2
-                                        lfo35;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           management of&nbsp;overrun
-                                          error.&nbsp;</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l56 level2
-                                        lfo35;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Allow
+                                          error.&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Allow
                                           possibility to receive
                                           messages from the 2 RX FIFOs
-                                          in parallel via interrupt.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l56 level2
-                                        lfo35;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix&nbsp;message
+                                          in parallel via interrupt.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix&nbsp;message
 
 
 
                                           lost issue with specific
-                                          sequence of transmit requests.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l56 level2
-                                        lfo35;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Handle
+                                          sequence of transmit requests.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Handle
                                           transmission failure with
                                           error callback, when NART is
-                                          enabled.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l56 level2
-                                        lfo35;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          __HAL_CAN_CANCEL_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TRANSMIT(</span></span>)
+                                          enabled.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          __HAL_CAN_CANCEL_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRANSMIT(</span></span>)
                                           call to abort transmission
-                                          when timeout is reached</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          when timeout is reached</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l78 level1
-                                      lfo36;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l78 level2
-                                        lfo36;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PWREx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">EnterUnderDriveSTOPMode(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API: remove
-                                          check on UDRDY flag</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnterUnderDriveSTOPMode(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API: remove
+                                          check on UDRDY flag</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l26 level1
-                                      lfo37;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l26 level2
-                                        lfo37;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong ADC
-                                          group injected sequence <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">configuration</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l26 level3
-                                          lfo37;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LL_ADC_INJ_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SetSequencerRanks(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) and <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">LL_ADC_INJ_GetSequencerRanks</span></span>()
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong ADC
+                                          group injected sequence <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">configuration</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL_ADC_INJ_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetSequencerRanks(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LL_ADC_INJ_GetSequencerRanks</span></span>()
 
 
 
 
                                             API's update to take in
                                             consideration the ADC number
-                                            of conversions</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l26 level3
-                                          lfo37;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                            of conversions</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             the&nbsp;defined values for
-                                            ADC group injected <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">seqencer</span></span>
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ranks</span></span>&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            ADC group injected <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">seqencer</span></span>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ranks</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.7.0
 
 
 
-                                        New Roman&quot;;color:white">V1.7.0
-
-
-
-                                        / 17-February-2017</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;">Add
+                                        / 17-February-2017</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
 
 
 
                                             Low Layer drivers allowing
-                                            performance and footprint <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">optimization</span></span></span></b></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Low Layer <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">drivers</span></span>
+                                            performance and footprint <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">optimization</span></span></span></b></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Low Layer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">drivers</span></span>
                                           APIs provide register level
                                           programming: require deep
                                           knowledge of peripherals
                                           described in STM32F4xx
-                                          Reference Manuals</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Low Layer
+                                          Reference Manuals</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Low Layer
                                             drivers are available for:
                                             ADC,&nbsp;Cortex, CRC, DAC,
                                             DMA, DMA2D, EXTI, GPIO, I2C,
                                             IWDG, LPTIM, PWR, RCC, RNG,
                                             RTC, SPI, TIM, USART, WWDG
-                                            peripherals and <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">additionnal</span></span>
+                                            peripherals and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">additionnal</span></span>
                                             Low Level Bus, System and
-                                            Utilities APIs.</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Low Layer <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">drivers</span></span>
+                                            Utilities APIs.</span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Low Layer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">drivers</span></span>
                                           APIs are implemented as static
-                                          inline function in new<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><i>Inc/stm32f4xx_ll_ppp.h</i><span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>files
+                                          inline function in new<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><i>Inc/stm32f4xx_ll_ppp.h</i><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>files
 
 
 
 
                                           for PPP peripherals, there is
-                                          no configuration file and each<span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><i>stm32f4xx_ll_ppp.h</i><span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>file
+                                          no configuration file and each<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><i>stm32f4xx_ll_ppp.h</i><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>file
 
 
 
 
-                                          must be included in user code.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          must be included in user code.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix&nbsp;extra
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Fix&nbsp;extra
-
-
-
-                                        warnings with GCC <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">compiler</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">HAL
+                                        warnings with GCC <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compiler</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
                                         drivers&nbsp;clean up: remove
-                                        double casting 'uint32_t' and '<span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">U</span></span>'</span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        double casting 'uint32_t' and '<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">U</span></span>'</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        new<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><b>HAL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        new<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span><b>HAL
-
-
-
-                                          MMC</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>driver</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">The
+                                          MMC</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>driver</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
 
 
 
                                           following changes done on the
                                           HAL drivers require an update
                                           on the application code based
-                                          on older HAL <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">versions</span></span></span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL SD</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Overall
+                                          on older HAL <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">versions</span></span></span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL SD</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall
                                             rework of the driver for a
                                             more
-                                            efficient&nbsp;implementation</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Modify
-                                              initialization API and <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">structures</span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Modify
+                                            efficient&nbsp;implementation</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Modify
+                                              initialization API and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">structures</span></span></span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Modify
                                               Read / Write sequences:
                                               separate transfer process
-                                              and SD Cards state <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span>&nbsp;</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Adding
+                                              and SD Cards state <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Adding
                                               interrupt mode for Read /
-                                              Write operations</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
-                                              the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SD_IRQHandler</span></span>
+                                              Write operations</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                              the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_IRQHandler</span></span>
                                               function by optimizing the
-                                              management of interrupt <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">errors</span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              management of interrupt <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">errors</span></span></span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Refer to
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to
                                             the following example to
                                             identify the changes: BSP
-                                            example and <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">USB_Device</span></span>/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MSC_Standalone</span></span>
-                                            application</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            example and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_Device</span></span>/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MSC_Standalone</span></span>
+                                            application</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL NAND</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Modify <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">NAND_AddressTypeDef</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">NAND_DeviceConfigTypeDef</span></span>
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">NAND_HandleTypeDef</span></span>
-                                            structures <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">fields</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_NAND_ConfigDevice</span></span>
-                                            API</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL NAND</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Modify <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NAND_AddressTypeDef</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NAND_DeviceConfigTypeDef</span></span>
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NAND_HandleTypeDef</span></span>
+                                            structures <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">fields</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_ConfigDevice</span></span>
+                                            API</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><b><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL DFSDM</span></b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> update</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="widows:
-                                            1;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL DFSDM</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                               support of Multichannel
-                                              Delay feature</span></span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Add <span
-                                                  class="spelle"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DFSDM_ConfigMultiChannelDelay</span></span>
-                                                API</span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l79 level4
-                                            lfo38;tab-stops:list 2.0in"><span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">The
+                                              Delay feature</span></span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_ConfigMultiChannelDelay</span></span>
+                                                API</span></span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
                                                 following APIs are moved
                                                 to internal static
-                                                functions: <span
-                                                  class="spelle"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DFSDM_ClockIn_SourceSelection</span></span>,
-                                                <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DFSDM_ClockOut_SourceSelection</span></span>,
-                                                <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DFSDM_DataInX_SourceSelection</span></span>
-                                                (X=0,2,4,6), <span
-                                                  class="spelle"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DFSDM_BitStreamClkDistribution_Config</span></span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                                functions: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_ClockIn_SourceSelection</span></span>,
+                                                <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_ClockOut_SourceSelection</span></span>,
+                                                <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_DataInX_SourceSelection</span></span>
+                                                (X=0,2,4,6), <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_BitStreamClkDistribution_Config</span></span></span></span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL I2S</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL I2S</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                          level3 lfo38;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;specific
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;specific
 
 
 
 
                                             callback API to manage I2S
                                             full duplex end of transfer
-                                            process:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            process:</span><span style=""><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                            level4 lfo38;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2S_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">TxCpltCallback(</span></span>)
+                                          <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxCpltCallback(</span></span>)
                                               and
                                               HAL_I2S_RxCpltCallback()
                                               API's will be replaced
                                               with only
                                               HAL_I2SEx_TxRxCpltCallback()
-                                              API.&nbsp;</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              API.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                        </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Modifiy</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> default <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_Delay</span></span>
+                                        </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Modifiy</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> default <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_Delay</span></span>
                                           implementation to guarantee
-                                          minimum <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">delay</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          minimum <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">delay</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          Cortex</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_MPU_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Disable(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_MPU_Enable</span></span>()
+                                          Cortex</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_MPU_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Disable(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_MPU_Enable</span></span>()
 
 
 
 
                                           from stm32f4xx_hal_cortex.h to
-                                          stm32f4xx_hal_cortex.c</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Clear the
+                                          stm32f4xx_hal_cortex.c</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Clear the
                                           whole MPU control register
-                                          in&nbsp;<span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_MPU_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Disable(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          in&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_MPU_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Disable(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IS_FLASH_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ADDRESS(</span></span>)
+                                          FLASH</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_FLASH_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ADDRESS(</span></span>)
                                           macro update to support OTP
-                                          range</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">FLASH_Program_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DoubleWord(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): Replace
+                                          range</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_Program_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DoubleWord(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): Replace
                                           64-bit accesses with 2
-                                          double-words operations</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          double-words operations</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          GPIO</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          IS_GPIO_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">PIN(</span></span>)
+                                          GPIO</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          IS_GPIO_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PIN(</span></span>)
                                           macro implementation to be
-                                          more safe</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          more safe</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          RCC</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          IS_RCC_PLLQ_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">VALUE(</span></span>)
+                                          RCC</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          IS_RCC_PLLQ_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VALUE(</span></span>)
                                           macro implementation: the
                                           minimum accepted&nbsp;value is
-                                          2 instead of 4</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          2 instead of 4</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           RCC_LPTIM1CLKSOURCE_PCLK
                                           define to
-                                          RCC_LPTIM1CLKSOURCE_PCLK1</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
+                                          RCC_LPTIM1CLKSOURCE_PCLK1</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                           compilation issue w/
-                                          __HAL_RCC_USB_OTG_FS_IS_CLK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)
+                                          __HAL_RCC_USB_OTG_FS_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)
                                           and
                                           __HAL_RCC_USB_OTG_FS_IS_CLK_DISABLED()
-                                          macros for STM32F401xx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                          macros for STM32F401xx devices</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following&nbsp;is clock
                                           enabled macros for STM32F401xx
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;__HAL_RCC_SDIO_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_SPI4_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_TIM10_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_RCC_SDIO_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_SPI4_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_TIM10_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following&nbsp;is clock
                                           enabled macros for STM32F410xx
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;__HAL_RCC_CRC_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RCC_RNG_IS_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_RCC_CRC_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_RNG_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
                                           to reset the RCC clock
                                           configuration to the default
-                                          reset state.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove macros
+                                          reset state.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove macros
                                           to configure BKPSRAM from
-                                          STM32F401xx devices&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
-                                          refer to <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">AHBPrescTable[</span></span>]
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">APBPrescTable</span></span>[]
+                                          STM32F401xx devices&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                          refer to <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AHBPrescTable[</span></span>]
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">APBPrescTable</span></span>[]
 
 
 
 
                                           tables defined in
                                           system_stm32f4xx.c file
-                                          instead of&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">APBAHBPrescTable</span></span>[]
+                                          instead of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">APBAHBPrescTable</span></span>[]
 
 
 
 
-                                          table.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          table.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            FMPI2C</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                            FMPI2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           FMPI2C_FIRST_AND_NEXT_FRAME
                                           define in&nbsp;Sequential
-                                          Transfer Options</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Transfer Options</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            ADC </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_ADCEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">InjectedConfigChannel(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update the
+                                            ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_ADCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">InjectedConfigChannel(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update the
                                           external trigger injected
-                                          condition</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          condition</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            DMA </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                            DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           check compatibility between
                                           FIFO threshold level and size
-                                          of the memory burst&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          of the memory burst&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            QSPI </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">QSPI_HandleTypeDef</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> structure:
+                                            QSPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">QSPI_HandleTypeDef</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> structure:
                                           Update transfer parameters on
-                                          uint32_t instead of uint16_t</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          uint32_t instead of uint16_t</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          UART/USART/IrDA/SMARTCARD </span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          UART/USART/IrDA/SMARTCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">DMA Receive
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA Receive
                                           process; the code has been
                                           updated to clear the USART
                                           OVR&nbsp;flag before
                                           enabling&nbsp;DMA receive
-                                          request.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">UART_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          request.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UART_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           manage correctly USART6
                                           instance that is not available
-                                          on STM32F410Tx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          on STM32F410Tx devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                            CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove Lock
+                                          mechanism from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Transmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Receive_IT</span></span>()
 
 
 
 
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            CAN </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove Lock
-                                          mechanism from <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_Transmit_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_Receive_IT</span></span>()
-
-
-
-
-                                          processes</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          processes</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            TIM </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                            TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          __HAL_TIM_MOE_DISABLE_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">UNCONDITIONALLY(</span></span>)
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          __HAL_TIM_MOE_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UNCONDITIONALLY(</span></span>)
                                           macro to disable Master output
                                           without check on TIM channel
-                                          state.&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigBreakDeadTime(</span></span>)
+                                          state.&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigBreakDeadTime(</span></span>)
                                           to fix TIM BDTR register
-                                          corruption.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          corruption.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            I2C </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_Master_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
+                                            I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_Master_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
                                           and HAL_I2C_Slave_Transmit()
                                           to avoid sending extra
                                           bytes&nbsp;at the end of the
-                                          transmit processes</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_Mem_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Read(</span></span>)
+                                          transmit processes</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_Mem_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Read(</span></span>)
                                           API to fix wrong check on
-                                          misused parameter “Size”</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          I2C_MasterReceive_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RXNE(</span></span>)
+                                          misused parameter “Size”</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          I2C_MasterReceive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RXNE(</span></span>)
                                           and I2C_MasterReceive_BTF()
                                           static APIs to enhance Master
-                                          sequential reception process.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          sequential reception process.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            SPI </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add transfer
+                                            SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add transfer
                                           abort APIs&nbsp;and associated
-                                          callbacks in interrupt <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_SPI_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Abort(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_SPI_Abort_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_SPI_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          callbacks in interrupt <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_Abort_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l79 level1
-                                      lfo38;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            I2S </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                            I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;specific
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;specific
 
 
 
 
                                           callback API to manage I2S
                                           full duplex end of transfer
-                                          process:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          process:</span><span style=""><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                          level3 lfo38;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_I2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TxCpltCallback(</span></span>)
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxCpltCallback(</span></span>)
                                             and HAL_I2S_RxCpltCallback()
                                             API's will be replaced with
                                             only
                                             HAL_I2SEx_TxRxCpltCallback()
-                                            API.&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            API.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2S
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2S
                                           Transmit/Receive polling
                                           process to manage&nbsp;Overrun
-                                          and Underrun errors</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move
+                                          and Underrun errors</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move
                                           the&nbsp;I2S clock input
                                           frequency calculation&nbsp;to
-                                          HAL RCC driver.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l79
-
-
-
-                                        level2 lfo38;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the
+                                          HAL RCC driver.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                           HAL I2SEx driver to keep only
-                                          full duplex feature.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l79 level2
-                                        lfo38;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_I2S_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          API updated to</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix wrong
+                                          full duplex feature.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          API updated to</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong
                                             I2S clock calculation when
-                                            PCM mode is used.</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l79 level3
-                                          lfo38;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Return
+                                            PCM mode is used.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Return
                                             state&nbsp;HAL_I2S_ERROR_PRESCALER&nbsp;when
-                                            the I2S clock is wrongly <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">configured</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            the I2S clock is wrongly <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">configured</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l18 level1
-                                      lfo39;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            LTDC </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                          UI&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;">Optimize <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Segoe
-                                              UI&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Segoe
-                                              UI&quot;,sans-serif">IRQHandler(</span></span>)
+                                            LTDC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt;">Optimize <span class="spelle"><span style="font-family: &quot;Segoe&quot;,UI;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Segoe&quot;,UI;">IRQHandler(</span></span>)
                                           function by using direct
-                                          register read</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                          UI&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;">Rename the
-                                          following <span class="grame"><span
-                                              style="font-family:&quot;Segoe
-
-
-
-                                              UI&quot;,sans-serif">API's</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l18 level3
-                                          lfo39;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">Relaod(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                            UI&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;">) by <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Segoe
-                                                UI&quot;,sans-serif">HAL_LTDC_Reload</span></span>()&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l18 level3
-                                          lfo39;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">StructInitFromVideoConfig(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                            UI&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;">) by <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Segoe
-                                                UI&quot;,sans-serif">HAL_LTDCEx_StructInitFromVideoConfig</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l18 level3
-                                          lfo39;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Segoe
-                                              UI&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;">StructInitFromAdaptedCommandConfig(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                            UI&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;">) by <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Segoe
-                                                UI&quot;,sans-serif">HAL_LTDCEx_StructInitFromAdaptedCommandConfig</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          register read</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt;">Rename the
+                                          following <span class="grame"><span style="font-family: &quot;Segoe&quot;,UI;">API's</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt;">HAL_LTDC_</span></span><span class="grame"><span style="font-size: 10pt;">Relaod(</span></span><span style="font-size: 10pt;">) by <span class="spelle"><span style="font-family: &quot;Segoe&quot;,UI;">HAL_LTDC_Reload</span></span>()&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt;">HAL_LTDC_</span></span><span class="grame"><span style="font-size: 10pt;">StructInitFromVideoConfig(</span></span><span style="font-size: 10pt;">) by <span class="spelle"><span style="font-family: &quot;Segoe&quot;,UI;">HAL_LTDCEx_StructInitFromVideoConfig</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt;">HAL_LTDC_</span></span><span class="grame"><span style="font-size: 10pt;">StructInitFromAdaptedCommandConfig(</span></span><span style="font-size: 10pt;">) by <span class="spelle"><span style="font-family: &quot;Segoe&quot;,UI;">HAL_LTDCEx_StructInitFromAdaptedCommandConfig</span></span>()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                          UI&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt;">Add new
                                           defines for LTDC layers
-                                          (LTDC_LAYER_1 / LTDC_LAYER_2)</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Segoe
-
-
-
-                                          UI&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;">Remove unused
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Segoe
-                                              UI&quot;,sans-serif">asserts</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          (LTDC_LAYER_1 / LTDC_LAYER_2)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt;">Remove unused
+                                          <span class="grame"><span style="font-family: &quot;Segoe&quot;,UI;">asserts</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l18 level1
-                                      lfo39;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          USB</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <b>PCD</b>
+                                        </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Flush all TX
+                                          FIFOs on USB Reset</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove Lock
+                                          mechanism from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_EP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_EP_Receive</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          USB</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <b>PCD</b>
-                                        </span></span><span
-                                        style="font-size:10.0pt;font-family:
-                                        &quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Flush all TX
-                                          FIFOs on USB Reset</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l18 level2
-                                        lfo39;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove Lock
-                                          mechanism from <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_EP_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_EP_Receive</span></span>()
-
-
-
-
-                                          API's</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          API's</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l35 level1
-                                      lfo40;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          USB</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l35 level2
-                                        lfo40;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Enable DMA
-                                          Burst mode for USB OTG HS</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l35 level2
-                                        lfo40;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix SD card
-                                            detection <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">issue</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          USB</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enable DMA
+                                          Burst mode for USB OTG HS</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix SD card
+                                            detection <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">issue</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l35 level1
-                                      lfo40;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          SDMMC</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l35 level2
-                                        lfo40;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdSDEraseStartAdd</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdSDEraseEndAdd</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdOpCondition</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SDMMC_CmdSwitch</span></span>
-                                          functions</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          SDMMC</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdSDEraseStartAdd</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdSDEraseEndAdd</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdOpCondition</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SDMMC_CmdSwitch</span></span>
+                                          functions</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.6.0
 
 
 
-                                        New Roman&quot;;color:white">V1.6.0
-
-
-
-                                        / 04-November-2016</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Add<span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">support of</span><span
-                                          class="apple-converted-space"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><b><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">STM32F413xx
-                                            and&nbsp;STM32F423xx</span></b><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
+                                        / 04-November-2016</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span><span style="">support of</span><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><b><span style="">STM32F413xx
+                                            and&nbsp;STM32F423xx</span></b><span style="">
                                           devices</span><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            CAN</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to add
-                                          the support of 3 CAN <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            CAN</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to add
+                                          the support of 3 CAN <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            CRYP</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to add
-                                          the support of AES <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">features</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            CRYP</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to add
+                                          the support of AES <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">features</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            DFSDM</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            DFSDM</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             definitions for new external
-                                            trigger <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">filters</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            trigger <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">filters</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             definition for new Channels
-                                            4, 5, 6 and <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">7</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;word-spacing:0px"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            4, 5, 6 and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">7</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             functions and API for Filter
-                                            state configuration and <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">management</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          functions:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l71 level3
-                                          lfo41;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_DFSDM_BitstreamClock_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Start(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l71 level3
-                                          lfo41;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_DFSDM_BitstreamClock_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Stop(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l71 level3
-                                          lfo41;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_DFSDM_BitStreamClkDistribution_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Config(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            state configuration and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">management</span></span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          functions:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_BitstreamClock_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_BitstreamClock_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Stop(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DFSDM_BitStreamClkDistribution_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Config(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            DMA</span></b></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
+                                            DMA</span></b></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                             support of DMA Channels from
-                                            8 to 15</span></span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l71 level2
-                                        lfo41;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
+                                            8 to 15</span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
                                             function with the check on
-                                            DMA stream instance</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA stream instance</span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l71 level1
-                                      lfo41;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DSI</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">&nbsp;update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          DSI</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigHostTimeouts(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_Init</span></span>()
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigHostTimeouts(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_Init</span></span>()
 
 
 
 
                                           functions to avoid scratch in
-                                          DSI_CCR register</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          DSI_CCR register</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l17 level1
-                                      lfo42;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Enhance <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WaitForLastOperation(</span></span>)
-                                          function implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          __HAL_FLASH_GET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
-                                          macro implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          FLASH</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhance <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitForLastOperation(</span></span>)
+                                          function implementation</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          __HAL_FLASH_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
+                                          macro implementation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l17 level1
-                                      lfo42;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            GPIO</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            GPIO</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             specific alternate functions
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">definitions</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">definitions</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l17 level1
-                                      lfo42;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2C_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMAError(</span></span>)
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAError(</span></span>)
                                           function implementation to
-                                          ignore DMA FIFO error</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          ignore DMA FIFO error</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l17 level1
-                                      lfo42;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Enhance
-                                          HAL_I2S_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhance
+                                          HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           implementation to test on
                                           PCM_SHORT and PCM_LONG
-                                          standards</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          standards</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l17 level1
-                                      lfo42;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IRDA</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l17 level2
-                                        lfo42;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          IRDA</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           functions and call backs for
-                                          Transfer <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">Abort</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Abort(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortTransmit(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortReceive(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_Abort_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_AbortTransmit_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_AbortReceive_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l17 level3
-                                          lfo42;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortTransmitCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
+                                          Transfer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Abort</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortTransmit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortReceive(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_Abort_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_AbortTransmit_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_AbortReceive_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortTransmitCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l141 level3
-                                          lfo43;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortReceiveCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortReceiveCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l141 level1
-                                      lfo43;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          PCD</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l83 level2
-                                        lfo44;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetRxCount(</span></span>)
-                                          &nbsp;function implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetRxCount(</span></span>)
+                                          &nbsp;function implementation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l83 level1
-                                      lfo44;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            RCC</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l83 level2
-                                        lfo44;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_RCC_HSE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
-                                            macro implementation</span></span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l83 level2
-                                        lfo44;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;<span
-                                                  style="widows:
-                                                  1;float:none;word-spacing:0px"></span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_LSE_<span
-                                                class="grame">CONFIG(</span>)
+                                            RCC</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_RCC_HSE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
+                                            macro implementation</span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;<span style="widows: 1; float: none; word-spacing: 0px;"></span></span></span><span style="">__HAL_RCC_LSE_<span class="grame">CONFIG(</span>)
                                               macro implementation</span><o:p></o:p></span></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l83 level1
-                                      lfo44;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SMARTCARD</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          SMARTCARD</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l107 level2
-                                        lfo45;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           functions and call backs for
-                                          Transfer <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">Abort</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Abort(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortTransmit(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortReceive(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_Abort_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_AbortTransmit_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_AbortReceive_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortTransmitCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l107 level3
-                                          lfo45;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_</span><span
-class="apple-converted-space"><span style="mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;;color:windowtext">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SMARTCARD_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">AbortReceiveCpltCallback(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          Transfer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Abort</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortTransmit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortReceive(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_Abort_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_AbortTransmit_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_AbortReceive_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortTransmitCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span><span class="apple-converted-space"><span style="">&nbsp;</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">AbortReceiveCpltCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l107 level1
-                                      lfo45;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            TIM</span></b><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l107 level2
-                                        lfo45;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIMEx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RemapConfig(</span></span>)
+                                            TIM</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RemapConfig(</span></span>)
                                             function to manage TIM
                                             internal trigger remap:
-                                            LPTIM or TIM3_TRGO</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            LPTIM or TIM3_TRGO</span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l107 level1
-                                      lfo45;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            UART<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l107 level2
-                                        lfo45;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            UART<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             Transfer abort functions and
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">callbacks</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">callbacks</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l107 level1
-                                      lfo45;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            USART<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l107 level2
-                                        lfo45;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                            USART<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             Transfer abort functions and
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">callbacks</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">callbacks</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.5.2
 
 
 
-                                        New Roman&quot;;color:white">V1.5.2
+                                        / 22-September-2016</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        / 22-September-2016</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l45 level1
-                                      lfo46;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            I2C</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong
+                                            I2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong
                                           behavior in consecutive
                                           transfers in case of single
                                           byte transmission
                                           (Master/Memory Receive <br>
-                                          interfaces)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2C_Master_Transmit_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          interfaces)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2C_Master_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                           /
                                           HAL_I2C_Master_Receive_DMA()/
                                           HAL_I2C_Slave_Transmit_DMA() <br>
@@ -23453,886 +4842,199 @@
                                           HAL_I2C_Slave_Receive_DMA() to
                                           manage addressing phase
                                           through interruption instead
-                                          of polling</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          of polling</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           a&nbsp;check on I2C handle
                                           state at start of all I2C
-                                          API's to ensure that I2C is <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ready</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l45
-
-
-
-                                        level2 lfo46;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2C
+                                          API's to ensure that I2C is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ready</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2C
                                           API's (Polling, IT and DMA
-                                          interfaces) to manage I2C <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">XferSize</span></span>
-                                          and&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">XferCount</span></span>
+                                          interfaces) to manage I2C <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferSize</span></span>
+                                          and&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCount</span></span>
                                           handle parameters instead of
                                           API size parameter to help
                                           user to get information of
                                           counter in case of
-                                          error.&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l45
-
-
-
-                                        level2 lfo46;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update Abort
+                                          error.&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update Abort
                                           functionality to manage DMA
-                                          use <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">case</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          use <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">case</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l45 level1
-                                      lfo46;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            FMPI2C</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
-                                            disable Own Address<span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px"></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">
-                                              before&nbsp;setting the </span><span
-                                              style="widows:
-                                              1;float:none;
-                                              word-spacing:0px">new Own
-                                              Address</span><span
-                                              style="widows: 1;
-                                              float:none;word-spacing:0px">
+                                            FMPI2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                            disable Own Address<span style="widows: 1; float: none; word-spacing: 0px;"></span><span style="">
+                                              before&nbsp;setting the </span><span style="widows: 1; float: none; word-spacing: 0px;">new Own
+                                              Address</span><span style="widows: 1; float: none; word-spacing: 0px;">
                                               configuration:</span><o:p></o:p></span></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l45 level3
-                                          lfo46;tab-stops:list 1.5in"><span
-                                            style="widows:
-                                            1;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
-                                              HAL_FMPI2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                              HAL_FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                               to disable FMPI2C_OARx_EN
                                               bit before any
-                                              configuration in <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">OARx</span></span>
-                                              registers</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                              configuration in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OARx</span></span>
+                                              registers</span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l45 level1
-                                      lfo46;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            CAN </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update CAN
+                                            CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update CAN
                                             receive processes to set CAN
-                                            <span class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">RxMsg</span></span>
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FIFONumber</span></span>
-                                            parameter</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxMsg</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FIFONumber</span></span>
+                                            parameter</span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l45 level1
-                                      lfo46;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
+                                            UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;UART
 
 
 
-                                            UART </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l45 level2
-                                        lfo46;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update&nbsp;UART
-
-
-
-                                            handle </span><span
-                                            class="spelle"><span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px"><span
-                                                style="mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">TxXferCount</span>
-                                              and RxXferCount <span
-                                                style="widows:
-                                                1;float:none;word-spacing:
-                                                0px"></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">parameters
+                                            handle </span><span class="spelle"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="">TxXferCount</span>
+                                              and RxXferCount <span style="widows: 1; float: none; word-spacing: 0px;"></span></span><span style="">parameters
 
 
 
 
                                               as volatile to avoid
-                                              eventual&nbsp;issue with <span
-                                                class="grame">High Speed</span>
+                                              eventual&nbsp;issue with <span class="grame">High Speed</span>
                                               optimization &nbsp;</span><o:p></o:p></span></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.5.1
 
 
 
-                                        New Roman&quot;;color:white">V1.5.1
+                                        / 01-July-2016</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        / 01-July-2016</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l88 level1
-                                      lfo47;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            GPIO</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l88 level2
-                                        lfo47;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_GPIO_Init</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">()/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_GPIO_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
+                                            GPIO</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_Init</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
                                             API's:
                                             update&nbsp;GPIO_GET_INDEX()
                                             macro implementation to
-                                            support all GPIO's</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            support all GPIO's</span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l88 level1
-                                      lfo47;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            SPI</span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l88 level2
-                                        lfo47;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix
+                                            SPI</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                             regression issue:
-                                            retore&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMAPause(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_DMAResume</span></span>()&nbsp;<span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px"></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">API's</span><span
-                                              style="widows:
-                                              1;float:none;word-spacing:0px">
+                                            retore&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAPause(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_DMAResume</span></span>()&nbsp;<span style="widows: 1; float: none; word-spacing: 0px;"></span><span style="">API's</span><span style="widows: 1; float: none; word-spacing: 0px;">
                                               <o:p></o:p></span></span></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l88 level1
-                                      lfo47;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l88 level2
-                                        lfo47;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix FSMC
+                                          RCC</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix FSMC
                                             macros compilation warnings
-                                            with STM32F412Rx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            with STM32F412Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l88 level1
-                                      lfo47;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            DMA </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l88 level2
-                                        lfo47;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_DMA_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PollFortransfer(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) API clean
-                                            up <br
-                                              style="mso-special-character:line-break">
-                                            <!--[if !supportLineBreakNewLine]--><br
-                                              style="mso-special-character:
-
-
-
-
-                                              line-break">
-                                            <!--[endif]--></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></span></li>
+                                            DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PollFortransfer(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API clean
+                                            up <br style="">
+                                            <!--[if !supportLineBreakNewLine]--><br style="">
+                                            <!--[endif]--></span><span style=""><o:p></o:p></span></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l88 level1
-                                      lfo47;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          PPP </span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PPP refers to
+                                        IRDA, UART, USART and SMARTCARD)</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: rgb(31, 73, 125); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
-                                          PPP </span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">update(</span></span><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">PPP refers to
-                                        IRDA, UART, USART and SMARTCARD)</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:#1F497D;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l88 level2
-                                        lfo47;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;;color:black">Update
-
-
-
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             to add a check on interrupt
                                             source before managing the
-                                            error</span></span><span
-                                          style="font-size:7.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><span
-                                            style="font-size-adjust:
-                                            none;font-stretch: normal">&nbsp;</span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            error</span></span><span style="font-size: 7pt;"><span style="font-size-adjust: none; font-stretch: normal;">&nbsp;</span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l40 level1
-                                      lfo48;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                            &quot;Times New Roman&quot;">HAL
-
-
-
-                                            QSPI </span></b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l40 level2
-                                        lfo48;tab-stops:list 1.0in"><span
-                                          style="widows:
-                                          1;float:none;word-spacing:0px"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Implement
+                                            QSPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Implement
                                             workaround to fix the
-                                            limitation&nbsp;</span><span
-                                            style="mso-fareast-font-family:
+                                            limitation&nbsp;</span><span style="">pronounced
 
 
 
-
-                                            &quot;Times New Roman&quot;">pronounced
-
-
-
-                                            <span style="widows:
-                                              1;float:none;
-                                              word-spacing:0px">in
+                                            <span style="widows: 1; float: none; word-spacing: 0px;">in
                                               the&nbsp;Errata
                                               sheet&nbsp;2.1.8 section:
                                               In some specific cases,
                                               DMA2 data corruption
                                               occurs when managing AHB
                                               and APB2 peripherals in a
-                                              concurrent <span
-                                                class="grame">way</span></span></span><o:p></o:p></span></li>
+                                              concurrent <span class="grame">way</span></span></span><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.5.0
 
 
 
-                                        New Roman&quot;;color:white">V1.5.0
-
-
-
-                                        / 06-May-2016</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l94 level1
-                                      lfo49;tab-stops:list .5in"><span
-                                        style="widows:
-                                        1;float:none;word-spacing:0px"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Add<span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">support of</span><span
-                                          class="apple-converted-space"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;</span></span><b><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">STM32F412cx,
+                                        / 06-May-2016</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="widows: 1; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span><span style="">support of</span><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><b><span style="">STM32F412cx,
 
 
 
 
                                             STM32F412rx, STM32F412vx and
-                                            STM32F412zx&nbsp;</span></b><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">devices</span><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l94 level1
-                                      lfo49;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                            STM32F412zx&nbsp;</span></b><span style="">devices</span><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l94 level1
-                                      lfo49;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        new HAL driver for <b>DFSDM </b><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">peripheral</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l94 level1
-                                      lfo49;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Enhance
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        new HAL driver for <b>DFSDM </b><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">peripheral</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhance
 
 
 
                                         HAL delay and time base
-                                        implementation:</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l94 level2
-                                        lfo49;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                        implementation:</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           drivers
                                           stm32f4xx_hal_timebase_rtc_alarm_template.c
                                           and
@@ -24343,3317 +5045,730 @@
                                           as time base tick source. For
                                           more details about the usage
                                           of these drivers, please refer
-                                          to HAL\<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TimeBase_RTC</span></span>
-                                          examples&nbsp;<span
-                                            style="widows:
-                                            1;float:none;word-spacing:0px">and
+                                          to HAL\<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TimeBase_RTC</span></span>
+                                          examples&nbsp;<span style="widows: 1; float: none; word-spacing: 0px;">and
 
 
 
 
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FreeRTOS</span></span>-based
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FreeRTOS</span></span>-based
 
 
 
 
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">applications</span></span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">applications</span></span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l94 level1
-                                      lfo49;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">The
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
 
 
 
                                           following changes done on the
                                           HAL drivers require an update
                                           on the application code based
-                                          on HAL V1.4.4</span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l94 level2
-                                        lfo49;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL UART,
+                                          on HAL V1.4.4</span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL UART,
                                             USART, IRDA, SMARTCARD, SPI,
-                                            I2<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">C,FMPI</span></span>2C,
+                                            I2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">C,FMPI</span></span>2C,
 
 
 
 
-                                            QSPI<span
-                                              class="apple-converted-space"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            QSPI<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">(referenced
+                                          as<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><i>PPP</i><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>here
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">(referenced
-                                          as<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><i>PPP</i><span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>here
-
-
-
-
-                                          below)<span
-                                            class="apple-converted-space"><i><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></i></span>drivers</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l94 level3
-                                          lfo49;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add PPP
+                                          below)<span class="apple-converted-space"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></i></span>drivers</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add PPP
                                             error management during DMA
                                             process. This requires the
                                             following updates
-                                            on&nbsp;user application:</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l94 level4
-                                            lfo49;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Configure
+                                            on&nbsp;user application:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                               and enable the PPP IRQ in
-                                              <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l94 level4
-                                            lfo49;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                              <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>stm32f4xx_it.c
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">In<span
-                                                class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>stm32f4xx_it.c
+                                              file,<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                              function:<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>add
 
 
 
 
-                                              file,<span
-                                                class="apple-converted-space"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                              function:<span
-                                                class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>add
+                                              a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_IRQHandler</span></span>()
 
 
 
 
-                                              a call to <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_IRQHandler</span></span>()
-
-
-
-
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l94 level4
-                                            lfo49;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add and
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add and
                                               customize the Error
-                                              Callback API: <span
-                                                class="spelle"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCallback(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              Callback API: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l94 level2
-                                        lfo49;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL I2C</span></i><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">, FMPI2C </span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">(referenced
+                                          as<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><i>PPP</i><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>here
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL I2C</span></i><span
-                                          class="apple-converted-space"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">, FMPI2C </span></span><span
-                                          style="font-size:10.0pt;font-family:
-
-
-
-
-                                          &quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">(referenced
-                                          as<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><i>PPP</i><span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>here
-
-
-
-
-                                          below)<span
-                                            class="apple-converted-space"><i><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></i></span>drivers:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l94 level3
-                                          lfo49;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
-                                            avoid waiting on<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>STOPF/BTF/AF
+                                          below)<span class="apple-converted-space"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></i></span>drivers:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                            avoid waiting on<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>STOPF/BTF/AF
 
 
 
 
                                             flag under DMA ISR by using
-                                            the<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>PPP
+                                            the<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>PPP
 
 
 
                                             end of transfer interrupt in
-                                            the DMA transfer process.<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>This
+                                            the DMA transfer process.<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>This
 
 
 
 
                                             requires the following
                                             updates on&nbsp;user
-                                            application:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l94 level4
-                                            lfo49;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Configure
+                                            application:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                               and enable the PPP IRQ in
-                                              <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l94 level4
-                                            lfo49;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                              <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>stm32f4xx_it.c
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">In<span
-                                                class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>stm32f4xx_it.c
+                                              file,<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                              function:<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>add
 
 
 
 
-                                              file,<span
-                                                class="apple-converted-space"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                              function:<span
-                                                class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>add
+                                              a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_IRQHandler</span></span>()
 
 
 
 
-                                              a call to <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_IRQHandler</span></span>()
-
-
-
-
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              function</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l94 level2
-                                        lfo49;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL I2C </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">driver:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l94 level3
-                                          lfo49;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">I2C
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL I2C </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">driver:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C
                                             transfer processes IT
                                             update: NACK during
                                             addressing phase is managed
                                             through I2C Error
                                             interrupt&nbsp;instead of
-                                            HAL&nbsp;<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">state</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">state</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l16 level2
-                                        lfo50;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL IWDG<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">driver:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL IWDG<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">driver:
                                           rework overall driver for
-                                          better implementation</span><span
-                                          style="mso-fareast-font-family:
+                                          better implementation</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span>),<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_MspInit</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Start(</span></span>),<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IWDG_MspInit</span></span>()
-
-
-
-
-                                            and<span
-                                              class="apple-converted-space"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IWDG_GetState</span></span>()&nbsp;APIs</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            and<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_GetState</span></span>()&nbsp;APIs</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l16 level2
-                                        lfo50;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL WWDG<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">driver:
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL WWDG<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">driver:
                                           rework overall driver for
-                                          better implementation</span><span
-                                          style="mso-fareast-font-family:
+                                          better implementation</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span>),<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_Start_IT</span></span>(),<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_MspDeInit</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            and<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_GetState</span></span>()
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Start(</span></span>),<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_Start_IT</span></span>(),<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_MspDeInit</span></span>()
-
-
-
-
-                                            and<span
-                                              class="apple-converted-space"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_GetState</span></span>()
-
-
-
-
-                                            APIs&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            the&nbsp;</span><span
-                                            class="spelle"><span
-                                              style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_WWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Refresh(</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">WWDG_HandleTypeDef</span></span><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> *<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Calibri&quot;,sans-serif">hwwdg</span></span>,
+                                            APIs&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            the&nbsp;</span><span class="spelle"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">Refresh(</span></span><span class="spelle"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">WWDG_HandleTypeDef</span></span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;"> *<span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">hwwdg</span></span>,
                                             uint32_t counter)
                                             &nbsp;function and API
                                             &nbsp;by removing the
-                                            &nbsp;"counter" parameter</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            &nbsp;"counter" parameter</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l16 level2
-                                        lfo50;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL QSPI
-                                            driver:<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Enhance
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL QSPI
+                                            driver:<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Enhance
                                           the DMA transmit process
                                           by&nbsp;using&nbsp;PPP TC
                                           interrupt instead of waiting
                                           on TC flag under DMA
                                           ISR.&nbsp;This requires the
                                           following updates on&nbsp;user
-                                          application:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the QSPI&nbsp;IRQ
-                                            in <span class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>stm32f4xx_it.c
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
+                                            file,<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function:<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>add
 
 
 
-                                            New Roman&quot;">In<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>stm32f4xx_it.c
+                                            a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_IRQHandler</span></span>()
 
 
 
 
-                                            file,<span
-                                              class="apple-converted-space"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function:<span
-                                              class="apple-converted-space"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">&nbsp;</span></span>add
-
-
-
-                                            a call to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_IRQHandler</span></span>()
-
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l16 level2
-                                        lfo50;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL CEC
-                                            driver:<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;Overall
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL CEC
+                                            driver:<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Overall
                                           driver rework with
                                           compatibility break versus
-                                          previous HAL version</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove HAL
+                                          previous HAL version</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove HAL
                                             CEC polling Process
-                                            functions: <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Receive</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove HAL
+                                            functions: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Receive</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove HAL
                                             CEC receive interrupt
-                                            process function&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Receive_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            process function&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Receive_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             and enable the "receive"
                                             &nbsp;mode during the Init
-                                            phase</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetReceivedFrameSize(</span></span>)
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">funtion</span></span>
-                                            to&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_GetLastReceivedFrameSize</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new HAL
-                                            APIs: <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetDeviceAddress(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_ChangeRxBuffer</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
-                                            the&nbsp;'<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">InitiatorAddress</span></span>'
-                                            field from the&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">CEC_InitTypeDef</span></span>
+                                            phase</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetReceivedFrameSize(</span></span>)
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">funtion</span></span>
+                                            to&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_GetLastReceivedFrameSize</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new HAL
+                                            APIs: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetDeviceAddress(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_ChangeRxBuffer</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                            the&nbsp;'<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InitiatorAddress</span></span>'
+                                            field from the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_InitTypeDef</span></span>
                                             structure&nbsp;and manage
                                             it&nbsp;as a parameter in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Transmit_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            parameter '<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RxFrameSize</span></span>'
-                                            in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RxCpltCallback(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l16 level3
-                                          lfo50;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Move CEC Rx
-                                            buffer pointer&nbsp;from <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">CEC_HandleTypeDef</span></span>
-                                            structure to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CEC_InitTypeDef</span></span>
-                                            structure</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Transmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            parameter '<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxFrameSize</span></span>'
+                                            in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxCpltCallback(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move CEC Rx
+                                            buffer pointer&nbsp;from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_HandleTypeDef</span></span>
+                                            structure to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_InitTypeDef</span></span>
+                                            structure</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l74 level1
-                                      lfo51;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ClockConfig(</span></span>)
+                                          function to adjust the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SystemCoreClock</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename macros
+                                          and Literals:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_PERIPHCLK_CK48&nbsp;by&nbsp;RCC_PERIPHCLK_C<b>L</b>K48</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_RCC_CK48CLKSOURCE&nbsp;by
 
-                                          &quot;Times New Roman&quot;">HAL
 
 
 
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
+                                            IS_RCC_C<b>L</b>K48CLKSOURCE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_CK48CLKSOURCE_PLLSAIP
 
 
 
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
 
+                                            by RCC_C<b>L</b>K48CLKSOURCE_PLLSAIP</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_SDIOCLKSOURCE_CK48
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l74 level2
-                                        lfo51;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
 
+                                            by RCC_SDIOCLKSOURCE_C<b>L</b>K48</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_CK48CLKSOURCE_PLLQ
 
 
 
-                                          mso-fareast-font-family:&quot;Times
 
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ClockConfig(</span></span>)
-                                          function to adjust the <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">SystemCoreClock</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l74 level2
-                                        lfo51;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename macros
-                                          and Literals:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">RCC_PERIPHCLK_CK48&nbsp;by&nbsp;RCC_PERIPHCLK_C<b>L</b>K48</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IS_RCC_CK48CLKSOURCE&nbsp;by
-
-
-
-
-                                            IS_RCC_C<b>L</b>K48CLKSOURCE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">RCC_CK48CLKSOURCE_PLLSAIP
-
-
-
-
-                                            by RCC_C<b>L</b>K48CLKSOURCE_PLLSAIP</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">RCC_SDIOCLKSOURCE_CK48
-
-
-
-                                            by RCC_SDIOCLKSOURCE_C<b>L</b>K48</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">RCC_CK48CLKSOURCE_PLLQ
-
-
-
-
-                                            by RCC_C<b>L</b>K48CLKSOURCE_PLLQ</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            by RCC_C<b>L</b>K48CLKSOURCE_PLLQ</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l74 level2
-                                        lfo51;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetPeriphCLKConfig(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_PeriphCLKConfig</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetPeriphCLKConfig(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_PeriphCLKConfig</span></span>()
-
-
-
-
-                                          functions to support TIM <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">Prescaler</span></span>
-                                          for STM32F411xx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l74 level2
-                                        lfo51;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCCEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PeriphCLKConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API: update
+                                          functions to support TIM <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Prescaler</span></span>
+                                          for STM32F411xx devices</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PeriphCLKConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API: update
                                           to fix the RTC clock
-                                          configuration issue</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          configuration issue</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l74 level1
-                                      lfo51;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CEC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l74 level2
-                                        lfo51;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall
+                                          CEC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall
                                           driver rework with&nbsp;break
                                           of compatibility with HAL
-                                          V1.4.4</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l74 level3
-                                          lfo51;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
-                                            HAL CEC polling Process: <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Receive</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          V1.4.4</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
+                                            HAL CEC polling Process: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Receive</span></span>()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                             HAL CEC receive interrupt
-                                            process (<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Receive_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>))
+                                            process (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Receive_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>))
 
 
 
 
                                             and manage the "Receive"
                                             mode enable within the Init
-                                            phase</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            phase</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetReceivedFrameSize(</span></span>)
+                                            function to&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_GetLastReceivedFrameSize</span></span>()
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetReceivedFrameSize(</span></span>)
-                                            function to&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_GetLastReceivedFrameSize</span></span>()
-
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new HAL
-                                            APIs: <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SetDeviceAddress(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_ChangeRxBuffer</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
-                                            the&nbsp;'<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">InitiatorAddress</span></span>'
-                                            field from the&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">CEC_InitTypeDef</span></span>
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new HAL
+                                            APIs: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetDeviceAddress(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_ChangeRxBuffer</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                            the&nbsp;'<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InitiatorAddress</span></span>'
+                                            field from the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_InitTypeDef</span></span>
                                             structure&nbsp;and manage
                                             it&nbsp;as a parameter in
-                                            the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_Transmit_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            parameter '<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RxFrameSize</span></span>'
-                                            in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CEC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RxCpltCallback(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Move CEC Rx
-                                            buffer pointer&nbsp;from <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">CEC_HandleTypeDef</span></span>
-                                            structure to <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CEC_InitTypeDef</span></span>
+                                            the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_Transmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            parameter '<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxFrameSize</span></span>'
+                                            in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CEC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxCpltCallback(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move CEC Rx
+                                            buffer pointer&nbsp;from <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_HandleTypeDef</span></span>
+                                            structure to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_InitTypeDef</span></span>
                                             structure<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l93 level2
-                                        lfo52;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update driver
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update driver
                                           to implement the new CEC state
-                                          machine:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          machine:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                            new&nbsp;"<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>"<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>field
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
-                                            new&nbsp;"<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>"<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>field
+                                            in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_HandleTypeDef</span></span>
+                                            structure to provide the<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>CEC<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>state
 
 
 
 
-                                            in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CEC_HandleTypeDef</span></span>
-                                            structure to provide the<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>CEC<span
-class="apple-converted-space"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>state
+                                            information related to Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            "state" field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CEC_HandleTypeDef</span></span>
+                                            structure to "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gstate</span></span>":
 
 
 
-
-                                            information related to Rx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            "state" field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CEC_HandleTypeDef</span></span>
-                                            structure to "<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">gstate</span></span>":
-
-
-
-                                            CEC<span
-                                              class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>state
+                                            CEC<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>state
 
 
 
 
                                             information related to
                                             global Handle management and
-                                            Tx <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update CEC
+                                            Tx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update CEC
                                             process to manage the new
-                                            CEC states.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l93 level3
-                                          lfo52;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_CEC_RESET_HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">STATE(</span></span>)
+                                            CEC states.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_CEC_RESET_HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STATE(</span></span>)
                                             macro to handle the new CEC
-                                            state parameters (<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">gState</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            state parameters (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gState</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l44 level1
-                                      lfo53;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
                                           UART, USART, SMARTCARD and
-                                          IRDA </span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                          IRDA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">(referenced
 
 
 
-
-                                        &quot;Times New Roman&quot;">(referenced
-
-
-
-                                        as <i>PPP</i> here below)<i> </i><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">update</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          Polling management:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The user
+                                        as <i>PPP</i> here below)<i> </i><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">update</span></span></span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          Polling management:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The user
                                             Timeout value&nbsp;must be
                                             estimated for the overall
-                                            process duration: <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">the</span></span>
+                                            process duration: <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">the</span></span>
                                             Timeout measurement is
-                                            cumulative</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            cumulative</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update DMA
-                                          process:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update DMA
+                                          process:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                             management of PPP peripheral
                                             errors during DMA process.
                                             This requires the following
-                                            updates in user application:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l44 level4
-                                            lfo53;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Configure
+                                            updates in user application:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                               and enable the PPP IRQ in
-                                              <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l44 level4
-                                            lfo53;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                              <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                              stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                              function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_IRQHandler</span></span>()
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">In
-                                              stm32f4xx_it.c file, <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                              function: add a call to <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_IRQHandler</span></span>()
-
-
-
-
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l44 level4
-                                            lfo53;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add and
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add and
                                               customize the Error
-                                              Callback API: <span
-                                                class="spelle"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCallback(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              Callback API: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l44 level1
-                                      lfo53;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMC</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          FMC</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           to remove the Burst access
-                                          mode configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_SDRAM_Timing_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          mode configuration</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_SDRAM_Timing_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           to fix initialization issue
-                                          when configuring 2 SDRAM banks</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          when configuring 2 SDRAM banks</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l44 level1
-                                      lfo53;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HCD</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HCD_Port_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          HCD</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HCD_Port_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           to unmask disconnect IT only
-                                          when the port is disabled</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          when the port is disabled</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l44 level1
-                                      lfo53;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          I2C/FMPI2C</span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>Polling
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C/FMPI2C</span></b><i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></i><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>Polling
-
-
-
-
-                                          management:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The Timeout
+                                          management:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The Timeout
                                             value must be estimated for
                                             the overall process
-                                            duration: <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">the</span></span>
+                                            duration: <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">the</span></span>
                                             Timeout measurement is
-                                            cumulative</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            cumulative</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           management of Abort
                                           service:&nbsp;Abort DMA
-                                          transfer through <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">interrupt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In the case
+                                          transfer through <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">interrupt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In the case
                                             of Master Abort IT transfer
-                                            usage:</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l44 level4
-                                            lfo53;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            usage:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;new
 
 
 
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add&nbsp;new
-
-
-
-                                              user HAL_I2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">AbortCpltCallback(</span></span>)
+                                              user HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AbortCpltCallback(</span></span>)
                                               to inform user of the end
-                                              of abort process</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l44 level4
-                                            lfo53;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">A new
+                                              of abort process</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">A new
                                               abort state is defined in
-                                              the<span
-                                                class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>HAL_I2C_StateTypeDef<span
-class="apple-converted-space"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>structure</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              the<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>HAL_I2C_StateTypeDef<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>structure</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">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><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the I2C IRQ in
-                                            HAL_I2C_<span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, I2C_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                            HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             function: add a call to
                                             HAL_I2C_IRQHandler()
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add and
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add and
                                             customize the Error Callback
-                                            API: HAL_I2C_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCallback(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Refer to
+                                            API: HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to
                                             the I2C_EEPROM or
                                             I2C_TwoBoards_ComDMA project
-                                            examples usage of the <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">API</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            examples usage of the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">NACK error
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NACK error
                                           during addressing phase is
                                           returned through interrupt
                                           instead of previously through
-                                          I2C transfer <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">API's</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l44 level2
-                                        lfo53;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">I2C
+                                          I2C transfer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API's</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C
                                           addressing phase is updated to
                                           be managed using interrupt
                                           instead of&nbsp;polling (Only
-                                          for HAL I2C driver)</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l44 level3
-                                          lfo53;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
+                                          for HAL I2C driver)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                             static functions to manage
-                                            I2C SB, ADDR and ADD10 flags</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            I2C SB, ADDR and ADD10 flags</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l44 level1
-                                      lfo53;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          SPI<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l139 level2
-                                        lfo54;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall
                                           driver optimization to improve
                                           performance in
                                           polling/interrupt mode to
-                                          reach maximum peripheral <span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">frequency</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l139 level3
-                                          lfo54;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Polling
-                                            mode:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          reach maximum peripheral <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">frequency</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Polling
+                                            mode:</span><span style=""><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l139
-
-
-
-                                            level4 lfo54;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Replace
-                                              the use of <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">WaitOnFlagUnitTimeout(</span></span>)
+                                          <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Replace
+                                              the use of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitOnFlagUnitTimeout(</span></span>)
                                               function by "if" statement
-                                              to check on RXNE/TXE <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">flage</span></span>
-                                              while transferring data</span><span
-                                              style="font-size:13.5pt;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              to check on RXNE/TXE <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">flage</span></span>
+                                              while transferring data</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Interrupt
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Interrupt
-
-
-
-                                            mode:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            mode:</span><span style=""><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;mso-margin-top-alt:auto;
-                                            mso-margin-bottom-alt:auto;mso-list:l6
-
-
-
-                                            level4 lfo55;tab-stops: list
-                                            2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Minimize
-                                              access on SPI <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">registers</span></span></span><span
-                                              style="font-size:13.5pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Minimize
+                                              access on SPI <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">registers</span></span></span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">All modes:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add the
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">All modes:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                               USE_SPI_CRC switch to
                                               minimize the number of
                                               statements when CRC
-                                              calculation is <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">disabled</span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update&nbsp;timeout
+                                              calculation is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">disabled</span></span></span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;timeout
 
 
 
 
                                               management to check on
-                                              global <span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">processes</span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
+                                              global <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">processes</span></span></span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                               error code management in
-                                              all processes</span><span
-                                              style="mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              all processes</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l6 level2
-                                        lfo55;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update DMA
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update DMA
                                           process:<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                             management of SPI peripheral
                                             errors during DMA process.
                                             This requires the following
                                             updates in the user
-                                            application:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Configure
+                                            application:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                               and enable the SPI IRQ in
-                                              <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                              <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                              stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                              function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_IRQHandler</span></span>()
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">In
-                                              stm32f4xx_it.c file, <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                              function: add a call to <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_IRQHandler</span></span>()
-
-
-
-
-                                              function</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Add and
+                                              function</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add and
                                               customize the Error
-                                              Callback API: <span
-                                                class="spelle"><span
-                                                  style="font-family:
-                                                  &quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCallback(</span></span>)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l6 level4
-                                            lfo55;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Refer to
+                                              Callback API: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to
                                               the following example
                                               which describe the
-                                              changes: <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_FullDuplex_ComDMA</span></span></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              changes: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_FullDuplex_ComDMA</span></span></span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l6 level2
-                                        lfo55;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                           regression in polling mode:<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             preparing data to transmit
-                                            in case of slave mode in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TransmitReceive(</span></span>)
-                                            and&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_Transmit</span></span>()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add to
+                                            in case of slave mode in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TransmitReceive(</span></span>)
+                                            and&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_Transmit</span></span>()<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add to
                                             manage properly the overrun
-                                            flag at the end of a <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TransmitReceive(</span></span>)<o:p></o:p></span></li>
+                                            flag at the end of a <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TransmitReceive(</span></span>)<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l6 level2
-                                        lfo55;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                           regression in interrupt mode:<o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a wait
-                                            on TXE flag in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SPI_CloseTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ISR(</span></span>)
-                                            and in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SPI_CloseTxRx_ISR</span></span>()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l6 level3
-                                          lfo55;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add to
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a wait
+                                            on TXE flag in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_CloseTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ISR(</span></span>)
+                                            and in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_CloseTxRx_ISR</span></span>()<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add to
                                             manage properly
-                                            the&nbsp;overrun flag in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SPI_CloseRxTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ISR(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SPI_CloseRx_ISR</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            the&nbsp;overrun flag in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_CloseRxTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ISR(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_CloseRx_ISR</span></span>()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l12 level1
-                                      lfo56;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA2D<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
-                                          function to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Abort
+                                          DMA2D<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
+                                          function to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Abort
                                             transfer in case of ongoing
-                                            DMA2D transfer</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l12
-
-
-
-                                          level3 lfo56;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Reset DMA2D
-                                            control <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">registers</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA2D transfer</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Reset DMA2D
+                                            control <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">registers</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l12
-
-
-
-                                        level2 lfo56;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Abort(</span></span>)
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span>)
                                           to disable DMA2D interrupts
-                                          after stopping transfer</span><span
-                                          style="font-size:13.5pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Optimize
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          after stopping transfer</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           by reading status registers
-                                          only once</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ProgramLineEvent(</span></span>)
-                                          function to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Return HAL
+                                          only once</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ProgramLineEvent(</span></span>)
+                                          function to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Return HAL
                                             error state in case of wrong
-                                            line <span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">value</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Enable line
+                                            line <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">value</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enable line
                                             interrupt after setting the
-                                            line watermark <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">configuration</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            line watermark <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">configuration</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLUTLoad(</span></span>)
+                                          and<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>HAL_DMA2D_CLUTLoad_IT()<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span>functions
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CLUTLoad(</span></span>)
-                                          and<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>HAL_DMA2D_CLUTLoad_IT()<span
-class="apple-converted-space"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span>functions
-
-
-
-
-                                          to start DMA2D CLUT loading</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_CLUTLoading_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Abort(</span></span>)
+                                          to start DMA2D CLUT loading</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_CLUTLoading_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span>)
                                             function to abort the DMA2D
-                                            CLUT loading</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_CLUTLoading_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Suspend(</span></span>)
+                                            CLUT loading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_CLUTLoading_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Suspend(</span></span>)
                                             function to suspend the
-                                            DMA2D CLUT loading</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_CLUTLoading_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Resume(</span></span>)
+                                            DMA2D CLUT loading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_CLUTLoading_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Resume(</span></span>)
                                             function to resume the DMA2D
-                                            CLUT loading</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            CLUT loading</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new DMA2D
-                                          dead time management:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EnableDeadTime(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new DMA2D
+                                          dead time management:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableDeadTime(</span></span>)
                                             function to enable DMA2D
-                                            dead time feature</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DisableDeadTime(</span></span>)
+                                            dead time feature</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DisableDeadTime(</span></span>)
                                             function to disable DMA2D
-                                            dead time feature</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l12 level3
-                                          lfo56;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ConfigDeadTime(</span></span>)
+                                            dead time feature</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigDeadTime(</span></span>)
                                             function to configure dead
-                                            time</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            time</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l12 level2
-                                        lfo56;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                           name of DMA2D Input/Output
-                                          color mode defines to be <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">more
+                                          color mode defines to be <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">more
 
 
 
@@ -27661,592 +5776,68 @@
                                           user (DMA2D_INPUT_XXX for
                                           input layers Colors,
                                           DMA2D_OUTPUT_XXX for output
-                                          framebuffer Colors)</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          framebuffer Colors)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l10 level1
-                                      lfo57;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LTDC<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          LTDC<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l81 level2
-                                        lfo58;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           to manage the case of reload
-                                          interrupt</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l81 level2
-                                        lfo58;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          callback API <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ReloadEventCallback(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l81 level2
-                                        lfo58;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Reload(</span></span>)
+                                          interrupt</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          callback API <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReloadEventCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Reload(</span></span>)
                                           to configure LTDC reload
-                                          feature</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l81 level2
-                                        lfo58;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new No
-                                          Reload LTDC variant <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">APIs</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_ConfigLayer_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                          feature</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new No
+                                          Reload LTDC variant <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">APIs</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_ConfigLayer_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             configure the LTDC Layer
                                             according to the specified
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetWindowSize_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to set
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetWindowSize_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to set
                                             the LTDC window size without
-                                            reloading</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetWindowPosition_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to set
+                                            reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetWindowPosition_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to set
                                             the LTDC window position
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetPixelFormat_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetPixelFormat_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             reconfigure the pixel format
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetAlpha_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetAlpha_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             reconfigure the layer alpha
-                                            value without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetAddress_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            value without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetAddress_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             reconfigure the frame buffer
-                                            Address without reloading</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_SetPitch_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            Address without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_SetPitch_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             reconfigure the pitch for
-                                            specific cases</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_ConfigColorKeying_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            specific cases</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_ConfigColorKeying_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             configure the color keying
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_EnableColorKeying_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to enable
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_EnableColorKeying_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to enable
                                             the color keying without
-                                            reloading</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_DisableColorKeying_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_DisableColorKeying_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             disable the color keying
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_EnableCLUT_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to enable
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_EnableCLUT_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to enable
                                             the color lookup table
-                                            without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_LTDC_DisableCLUT_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">NoReload(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) to
+                                            without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_DisableCLUT_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoReload(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) to
                                             disable the color lookup
-                                            table without reloading</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l81 level3
-                                          lfo58;tab-stops:list 1.5in"><i><u><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Note:</span></u></i><span
-class="apple-converted-space"><span style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">&nbsp;</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Variant
-                                            functions with “_<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">NoReload</span></span>”
+                                            table without reloading</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Note:</span></u></i><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Variant
+                                            functions with “_<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NoReload</span></span>”
                                             post fix allows to set the
                                             LTDC configuration/settings
                                             without immediate reload.
@@ -28256,217 +5847,45 @@
                                             (on one or both layers) then
                                             applying (reload) these
                                             settings in one shot by
-                                            calling the function “<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Reload</span></span>”</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            calling the function “<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Reload</span></span>”</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l81 level1
-                                      lfo58;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update&nbsp;</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l81 level2
-                                        lfo58;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          RTC<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           timeout implementation based
-                                          on <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">cpu</span></span>
+                                          on <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">cpu</span></span>
                                           cycles
                                           for&nbsp;ALRAWF,&nbsp;ALRBWF
-                                          and WUTWF flags</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          and WUTWF flags</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l92 level1
-                                      lfo59;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l92 level2
-                                        lfo59;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update SAI
+                                          SAI<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update SAI
                                           state in case of TIMEOUT error
-                                          within the<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
-                                          / <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Receive</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l92 level2
-                                        lfo59;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_IRQHandler</span></span>:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l92 level3
-                                          lfo59;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add error
+                                          within the<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
+                                          / <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Receive</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_IRQHandler</span></span>:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add error
                                             management in case DMA
-                                            errors through <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">XferAbortCallback(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Abort_IT</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l92 level3
-                                          lfo59;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add error
-                                            management in case of <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            errors through <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferAbortCallback(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Abort_IT</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add error
+                                            management in case of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l92 level2
-                                        lfo59;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BlockSynchroConfig(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SAI_GetInputClock</span></span>()
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BlockSynchroConfig(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_GetInputClock</span></span>()
 
 
 
@@ -28475,3136 +5894,551 @@
                                           stm32f4xx_hal_sai.c/.h files
                                           (extension files are kept
                                           empty for projects
-                                          compatibility reason)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          compatibility reason)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l9 level1
-                                      lfo60;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DCMI<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DCMI_DMAConvCplt</span></span>
-                                          to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DCMI_DMAXferCplt</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          DCMI<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DCMI_DMAConvCplt</span></span>
+                                          to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DCMI_DMAXferCplt</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                           function to&nbsp;Enable the
-                                          DCMI peripheral</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          DCMI peripheral</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           timeout implementation based
-                                          on <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">cpu</span></span>
-                                          cycles for DCMI <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">stop</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Suspend(</span></span>)
+                                          on <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">cpu</span></span>
+                                          cycles for DCMI <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">stop</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Suspend(</span></span>)
                                           function to suspend DCMI
-                                          capture</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Resume(</span></span>)
+                                          capture</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Resume(</span></span>)
                                           function to resume capture
-                                          after DCMI suspend</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update lock
-                                          mechanism for DCMI process</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l9 level2
-                                        lfo60;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                          function to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l9 level3
-                                          lfo60;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add error
+                                          after DCMI suspend</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update lock
+                                          mechanism for DCMI process</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                          function to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add error
                                             management in case DMA
-                                            errors through <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">XferAbortCallback(</span></span>)
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Abort_IT</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l9 level3
-                                          lfo60;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Optimize
+                                            errors through <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferAbortCallback(</span></span>)
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Abort_IT</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize
                                             code by using direct
-                                            register <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">read</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            register <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">read</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          <i>DMA</i></span></b><i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></i><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new APIs
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RegisterCallback(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_UnRegisterCallback</span></span>
+                                          <i>DMA</i></span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new APIs
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RegisterCallback(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_UnRegisterCallback</span></span>
                                           to register/unregister the
                                           different callbacks identified
-                                          by the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">enum</span></span>
-                                          typedef <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_CallbackIDTypeDef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new API <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Abort_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          by the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">enum</span></span>
+                                          typedef <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_CallbackIDTypeDef</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new API <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Abort_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           to abort DMA transfer under
-                                          interrupt context</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l41 level3
-                                          lfo61;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The new
+                                          interrupt context</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The new
                                             registered Abort callback is
                                             called when DMA transfer
-                                            abortion is <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">completed</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            abortion is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">completed</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the check
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the check
                                           of compatibility between FIFO
                                           threshold level and size of
-                                          the memory burst in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          API</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new Error
+                                          the memory burst in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          API</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new Error
                                           Codes: HAL_DMA_ERROR_PARAM,
                                           HAL_DMA_ERROR_NO_XFER and
-                                          HAL_DMA_ERROR_NOT_SUPPORTED</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove all
+                                          HAL_DMA_ERROR_NOT_SUPPORTED</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove all
                                           DMA states related to
-                                          MEM0/MEM1 in <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_DMA_StateTypeDef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          MEM0/MEM1 in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_StateTypeDef</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IWDG</span></b><i><span
-                                          style="font-size:
-                                          10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></i><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall
+                                          IWDG</span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall
                                           rework of the driver for a
                                           more
-                                          efficient&nbsp;implementation</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l41 level3
-                                          lfo61;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
-                                            following APIs:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l41 level4
-                                            lfo61;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Start(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l41 level4
-                                            lfo61;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">MspInit(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l41 level4
-                                            lfo61;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetState(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          efficient&nbsp;implementation</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
+                                            following APIs:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetState(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l41 level3
-                                          lfo61;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            implementation:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l41 level4
-                                            lfo61;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Init(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">): this
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            implementation:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): this
                                               function insures the
                                               configuration and the
-                                              start of the IWDG counter</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l41 level4
-                                            lfo61;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Refresh(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">): this
+                                              start of the IWDG counter</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refresh(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): this
                                               function insures the
-                                              reload of the IWDG counter</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              reload of the IWDG counter</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l41 level3
-                                          lfo61;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Refer to
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to
                                             the following example to
-                                            identify the changes: <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Example</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            identify the changes: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Example</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LPTIM</span></b><i><span
-                                          style="font-size:
-                                          10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></i><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_TimeOut_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_Counter_Start_IT</span></span>(
-                                          ) APIs to configure <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">WakeUp</span></span>
+                                          LPTIM</span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_TimeOut_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_Counter_Start_IT</span></span>(
+                                          ) APIs to configure <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WakeUp</span></span>
                                           Timer EXTI interrupt to be
-                                          able to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">wakeup</span></span>
+                                          able to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">wakeup</span></span>
                                           MCU from low power mode by
-                                          pressing the EXTI line. </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_TimeOut_Stop_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LPTIM_Counter_Stop_IT</span></span>(
-                                          ) APIs to disable <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WakeUp</span></span>
-                                          Timer EXTI interrupt.&nbsp;</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          pressing the EXTI line. </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_TimeOut_Stop_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LPTIM_Counter_Stop_IT</span></span>(
+                                          ) APIs to disable <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WakeUp</span></span>
+                                          Timer EXTI interrupt.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NOR</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          NOR_ADDR_SHIFT macro <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          NOR</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          NOR_ADDR_SHIFT macro <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD</span></b><span
-                                        class="apple-converted-space"><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span></span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l41 level2
-                                        lfo61;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          PCD</span></b><span class="apple-converted-space"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           to get HCLK frequency before
-                                          setting TRDT value</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          setting TRDT value</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l41 level1
-                                      lfo61;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          QSPI</span></b><i><span
-                                          style="font-size:
-                                          10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></i><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          QSPI</span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           manage QSPI error management
-                                          during DMA <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">process</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Improve the
+                                          during DMA <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">process</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Improve the
                                           DMA transmit process by using
                                           QSPI TC interrupt instead of
                                           waiting loop on TC flag under
-                                          DMA ISR</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">These two
+                                          DMA ISR</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">These two
                                           improvements require the
                                           following updates on user
-                                          application:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
+                                            and enable the QSPI IRQ in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_IRQHandler</span></span>()
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
-                                            and enable the QSPI IRQ in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_QSPI_IRQHandler</span></span>()
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add and
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add and
                                             customize the Error Callback
-                                            API: <span class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCallback(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            API: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCallback(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           management of non-blocking
-                                          transfer abort service:&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_Abort_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>).
+                                          transfer abort service:&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_Abort_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>).
 
 
 
 
-                                          In this case the user must:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            callback <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">AbortCpltCallback(</span></span>)
+                                          In this case the user must:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            callback <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AbortCpltCallback(</span></span>)
                                             to inform user at the end of
-                                            abort process</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">A new value
-                                            of State in the <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_StateTypeDef</span></span>
+                                            abort process</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">A new value
+                                            of State in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_StateTypeDef</span></span>
                                             provides the current state
-                                            during the abort <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">phase</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            during the abort <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">phase</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Polling
-                                          management update:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">The Timeout
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Polling
+                                          management update:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The Timeout
                                             value user must be estimated
                                             for the overall process
-                                            duration: <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">the</span></span>
+                                            duration: <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">the</span></span>
                                             Timeout measurement is
-                                            cumulative.&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            cumulative.&nbsp;</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l138 level2
-                                        lfo62;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Refer to the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to the
                                           following examples, which
-                                          describe the changes:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">QSPI_ReadWrite_DMA</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">QSPI_MemoryMapped</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l138 level3
-                                          lfo62;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">QSPI_ExecuteInPlace</span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          describe the changes:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">QSPI_ReadWrite_DMA</span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">QSPI_MemoryMapped</span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">QSPI_ExecuteInPlace</span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;widows:
-                                    1;word-spacing:0px" type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l125 level2
-                                        lfo63;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add two new
-                                          APIs for the QSPI <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">fifo</span></span>
-                                          threshold:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l125 level3
-                                          lfo63;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_QSPI_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SetFifoThreshold(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">):
+                                  <ul style="margin-top: 0in; text-align: start; widows: 1; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add two new
+                                          APIs for the QSPI <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">fifo</span></span>
+                                          threshold:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetFifoThreshold(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):
                                             configure the FIFO threshold
-                                            of the QSPI</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l125 level3
-                                          lfo63;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_QSPI_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GetFifoThreshold(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">): give the
-                                            current FIFO threshold</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            of the QSPI</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetFifoThreshold(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): give the
+                                            current FIFO threshold</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l125 level2
-                                        lfo63;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong
-                                          data size management in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_QSPI_Receive_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong
+                                          data size management in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_QSPI_Receive_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l70 level1
-                                      lfo64;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC</span></b><i><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></i><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l70 level2
-                                        lfo64;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          __HAL_ADC_PATH_INTERNAL_VBAT_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
+                                          ADC</span></b><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          __HAL_ADC_PATH_INTERNAL_VBAT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
                                           macro&nbsp;for STM32F42x and
                                           STM32F43x devices to
                                           provide&nbsp;the possibility
-                                          to convert <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">VrefInt</span></span>
-                                          channel when both <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">VrefInt</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Vbat</span></span>
-                                          channels are selected.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          to convert <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VrefInt</span></span>
+                                          channel when both <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VrefInt</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Vbat</span></span>
+                                          channels are selected.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l70 level1
-                                      lfo64;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPDIFRX<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l70 level2
-                                        lfo64;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">driver</span></span>
+                                          SPDIFRX<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">driver</span></span>
                                           update for wait on flag
-                                          management optimization<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          management optimization<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l70 level1
-                                      lfo64;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          WWDG<span
-                                            class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span></span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update&nbsp;</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l70 level2
-                                        lfo64;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall
+                                          WWDG<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span></span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall
                                           rework of the driver for more
-                                          efficient implementation</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l70 level3
-                                          lfo64;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
-                                            following APIs:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Start(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_Start_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IT(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">MspDeInit(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetState(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          efficient implementation</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
+                                            following APIs:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Start(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_Start_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">MspDeInit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetState(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l70 level3
-                                          lfo64;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            implementation:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Init(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <ul style="margin-top:0in"
-                                            type="square">
-                                            <li class="MsoNormal"
-                                              style="color:black;margin-top:4.5pt;margin-bottom:
-                                              4.5pt;mso-list:l70 level5
-                                              lfo64;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">A&nbsp;new
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            implementation:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <ul style="margin-top: 0in;" type="square">
+                                            <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">A&nbsp;new
 
 
 
                                                 parameter in the Init
-                                                Structure:&nbsp;<span
-                                                  class="spelle"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">EWIMode</span></span></span><span
-                                                style="mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;"><o:p></o:p></span></li>
+                                                Structure:&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EWIMode</span></span></span><span style=""><o:p></o:p></span></li>
                                           </ul>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">MspInit(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Refresh(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)&nbsp;</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <ul style="margin-top:0in"
-                                            type="square">
-                                            <li class="MsoNormal"
-                                              style="color:black;margin-top:4.5pt;margin-bottom:
-                                              4.5pt;mso-list:l70 level5
-                                              lfo64;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">This
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refresh(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                          <ul style="margin-top: 0in;" type="square">
+                                            <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">This
                                                 function insures the
-                                                reload of the <span
-                                                  class="grame"><span
-                                                    style="font-family:
-&quot;Verdana&quot;,sans-serif">counter</span></span></span><span
-                                                style="mso-fareast-font-family:&quot;Times
-                                                New Roman&quot;"><o:p></o:p></span></li>
-                                            <li class="MsoNormal"
-                                              style="color:black;margin-top:4.5pt;margin-bottom:
-                                              4.5pt;mso-list:l70 level5
-                                              lfo64;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">The
+                                                reload of the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">counter</span></span></span><span style=""><o:p></o:p></span></li>
+                                            <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">The
                                                 "counter" parameter has
-                                                been <span
-                                                  class="grame"><span
-                                                    style="font-family:&quot;Verdana&quot;,sans-serif">removed</span></span></span><span
-                                                style="mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;"><o:p></o:p></span></li>
+                                                been <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">removed</span></span></span><span style=""><o:p></o:p></span></li>
                                           </ul>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">IRQHandler(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l70 level4
-                                            lfo64;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_WWDG_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">EarlyWakeupCallback(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">) is the
-                                              new prototype of <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_WakeUpCallback</span></span>()</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EarlyWakeupCallback(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) is the
+                                              new prototype of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_WakeUpCallback</span></span>()</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l70 level2
-                                        lfo64;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Refer to the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Refer to the
                                           following example to identify
-                                          the changes: <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Example</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          the changes: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Example</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.4.4
 
 
 
-                                        New Roman&quot;;color:white">V1.4.4
+                                        / 22-January-2016</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        / 22-January-2016</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l54 level1
-                                      lfo65;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l54 level2
-                                        lfo65;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_conf_template.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l54 level3
-                                          lfo65;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Optimize
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_conf_template.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize
                                             HSE Startup Timeout value
-                                            from 5000ms to 100 <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ms</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l54 level3
-                                          lfo65;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            define LSE_STARTUP_TIMEOUT</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l54 level3
-                                          lfo65;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
+                                            from 5000ms to 100 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ms</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            define LSE_STARTUP_TIMEOUT</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                             define USE_SPI_CRC for code
                                             cleanup when the CRC
-                                            calculation is disabled.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            calculation is disabled.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l54 level2
-                                        lfo65;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
                                           drivers to support MISRA C
-                                          2004 rule <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">10.6</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l54 level2
-                                        lfo65;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          2004 rule <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">10.6</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           template&nbsp;driver to
-                                          configure <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">timebase</span></span>
-                                          using <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TIMER :</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l54 level3
-                                          lfo65;tab-stops:list 1.5in"><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">s</span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">tm32f4xx_hal_timebase_tim_template.c</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          configure <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">timebase</span></span>
+                                          using <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TIMER :</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="">s</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">tm32f4xx_hal_timebase_tim_template.c</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l115 level1
-                                      lfo66;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l115 level2
-                                        lfo66;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CAN_Transmit_IT</span></span>()
+                                          CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CAN_Transmit_IT</span></span>()
 
 
 
 
                                           functions to&nbsp;unlock
                                           process when all Mailboxes are
-                                          busy</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          busy</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l82 level1
-                                      lfo67;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DSI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l82 level2
-                                        lfo67;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetPHYTimings(</span></span>)
+                                          DSI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetPHYTimings(</span></span>)
                                           functions to use the correct
-                                          mask</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          mask</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l82 level1
-                                      lfo67;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          UART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l82 level2
-                                        lfo67;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Several
+                                          UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
                                           update on HAL UART driver to
                                           implement the new UART state
-                                          machine:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l82 level3
-                                          lfo67;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UART_HandleTypeDef</span></span>
-                                            structure: "<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>",
+                                          machine:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_HandleTypeDef</span></span>
+                                            structure: "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>",
 
 
 
 
                                             UART state information
-                                            related to Rx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l82 level3
-                                          lfo67;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            "state" field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UART_HandleTypeDef</span></span>
-                                            structure by "<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">gstate</span></span>":
+                                            related to Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            "state" field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_HandleTypeDef</span></span>
+                                            structure by "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gstate</span></span>":
 
 
 
                                             UART state information
                                             related to global Handle
-                                            management and Tx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l82 level3
-                                          lfo67;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update UART
+                                            management and Tx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update UART
                                             process to manage the new
-                                            UART states.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l82 level3
-                                          lfo67;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_UART_RESET_HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">STATE(</span></span>)
+                                            UART states.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_UART_RESET_HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STATE(</span></span>)
                                             macro to handle the new UART
-                                            state parameters (<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">gState</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            state parameters (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gState</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l82 level2
-                                        lfo67;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           UART_BRR_SAMPLING16() and
                                           UART_BRR_SAMPLING8() Macros to
-                                          fix wrong <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">baudrate</span></span>
-                                          calculation.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          fix wrong <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
+                                          calculation.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l68 level1
-                                      lfo68;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IRDA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l68 level2
-                                        lfo68;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Several
+                                          IRDA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
                                           update on HAL IRDA driver to
                                           implement the new UART state
-                                          machine:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                            structure: "<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>",
+                                          machine:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                            structure: "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>",
 
 
 
 
                                             IRDA state information
-                                            related to Rx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            "state" field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UART_HandleTypeDef</span></span>
-                                            structure by "<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">gstate</span></span>":
+                                            related to Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            "state" field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_HandleTypeDef</span></span>
+                                            structure by "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gstate</span></span>":
 
 
 
                                             IRDA state information
                                             related to global Handle
-                                            management and Tx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update IRDA
+                                            management and Tx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update IRDA
                                             process to manage the new
-                                            UART states.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_IRDA_RESET_HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">STATE(</span></span>)
+                                            UART states.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_IRDA_RESET_HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STATE(</span></span>)
                                             macro to handle the new IRDA
-                                            state parameters (<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">gState</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            state parameters (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gState</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l68 level2
-                                        lfo68;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Removal of
-                                          IRDA_TIMEOUT_VALUE define</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l68 level2
-                                        lfo68;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update IRDA_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BRR(</span></span>)
-                                          Macro to fix wrong <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">baudrate</span></span>
-                                          calculation</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Removal of
+                                          IRDA_TIMEOUT_VALUE define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update IRDA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BRR(</span></span>)
+                                          Macro to fix wrong <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
+                                          calculation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l68 level1
-                                      lfo68;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SMARTCARD </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l68 level2
-                                        lfo68;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Several
+                                          SMARTCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
                                           update on HAL SMARTCARD driver
                                           to implement the new UART
-                                          state machine:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          state machine:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            field in&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_HandleTypeDef</span></span>
+                                            structure: "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>",
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARDstate</span></span>
+                                            information related to Rx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            "state" field in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UART_HandleTypeDef</span></span>
+                                            structure by "<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gstate</span></span>":
 
 
 
-                                            New Roman&quot;">Add new
-                                            field in&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMARTCARD_HandleTypeDef</span></span>
-                                            structure: "<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>",
-
-
-
-
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMARTCARDstate</span></span>
-                                            information related to Rx <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            "state" field in <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UART_HandleTypeDef</span></span>
-                                            structure by "<span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">gstate</span></span>":
-
-
-
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SMARTCARDstate</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARDstate</span></span>
                                             information related to
                                             global Handle management and
-                                            Tx <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Operations</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update&nbsp;SMARTCARD
+                                            Tx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Operations</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;SMARTCARD
 
 
 
 
                                             process to manage the new
-                                            UART states.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l68 level3
-                                          lfo68;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_SMARTCARD_RESET_HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">STATE(</span></span>)
+                                            UART states.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_SMARTCARD_RESET_HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STATE(</span></span>)
                                             macro to handle the
                                             new&nbsp;SMARTCARD state
-                                            parameters (<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">gState</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">rxState</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            parameters (<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">gState</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">rxState</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l68 level2
-                                        lfo68;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          SMARTCARD_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">BRR(</span></span>)
-                                          macro to fix wrong <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">baudrate</span></span>
-                                          calculation</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          SMARTCARD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BRR(</span></span>)
+                                          macro to fix wrong <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">baudrate</span></span>
+                                          calculation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l98 level1
-                                      lfo69;tab-stops:list .5in"><span
-                                        class="grame"><b><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL&nbsp;
-                                            RCC</span></b></span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
-                                        </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l98 level2
-                                        lfo69;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL&nbsp;
+                                            RCC</span></b></span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           default define value for HSI
                                           calibration
-                                          "RCC_HSICALIBRATION_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DEFAULT"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l98 level2
-                                        lfo69;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Optimize
+                                          "RCC_HSICALIBRATION_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DEFAULT"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize
                                           Internal oscillators and PLL
-                                          startup <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">timeout</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l98 level2
-                                        lfo69;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                          startup <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">timeout</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           avoid the disable for HSE/LSE
                                           oscillators before setting the
                                           new RCC HSE/LSE configuration
                                           and add the following notes in
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">OscConfig(</span></span>)
-                                          API description:</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span>)
+                                          API description:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto"><span style="font-size:10.0pt">&nbsp;</span><span
-                                      style="font-size:
-                                      10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                  <p class="MsoNormal" style=""><span style="font-size: 10pt;">&nbsp;</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31615,10 +6449,8 @@
                                       &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;*
                                       @note&nbsp;&nbsp; Transitions LSE
                                       Bypass to LSE On and LSE On to LSE
-                                      Bypass are not</span><span
-                                      style="font-size:10.0pt"> <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                      Bypass are not</span><span style="font-size: 10pt;"> <br>
+                                    </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31632,10 +6464,8 @@
                                       *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                       &nbsp; &nbsp; supported by this
                                       API. User should request a
-                                      transition to LSE Off</span><span
-                                      style="font-size:10.0pt"> <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                      transition to LSE Off</span><span style="font-size: 10pt;"> <br>
+                                    </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31648,10 +6478,8 @@
                                       &nbsp;&nbsp;&nbsp;&nbsp;
                                       *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                       &nbsp; &nbsp; first and then LSE
-                                      On or LSE Bypass.</span><span
-                                      style="font-size:10.0pt"> <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                      On or LSE Bypass.</span><span style="font-size: 10pt;"> <br>
+                                    </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31664,10 +6492,8 @@
                                       &nbsp;&nbsp;&nbsp;&nbsp; *
                                       @note&nbsp;&nbsp; Transition HSE
                                       Bypass to HSE On and HSE On to HSE
-                                      Bypass are not</span><span
-                                      style="font-size:10.0pt"> <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                      Bypass are not</span><span style="font-size: 10pt;"> <br>
+                                    </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31681,10 +6507,8 @@
                                       *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                       &nbsp; &nbsp; supported by this
                                       API. User should request a
-                                      transition to HSE Off</span><span
-                                      style="font-size:10.0pt"> <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
+                                      transition to HSE Off</span><span style="font-size: 10pt;"> <br>
+                                    </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;&nbsp;
 
 
 
@@ -31696,436 +6520,82 @@
                                       &nbsp; &nbsp;&nbsp;
                                       *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                       &nbsp; &nbsp; first and then HSE
-                                      On or HSE Bypass.</span><span
-                                      style="font-size:10.0pt"> </span><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif"><o:p></o:p></span></p>
+                                      On or HSE Bypass.</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></p>
                                   <ul type="disc">
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l51 level2
-                                        lfo70;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Optimize
-                                          the&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ClockConfig(</span></span>)
-                                          API implementation.</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Optimize
+                                          the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ClockConfig(</span></span>)
+                                          API implementation.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
                                   <ul type="disc">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l66 level1
-                                      lfo71;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA2D </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Abort(</span></span>)
+                                          DMA2D </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Abort(</span></span>)
                                           Function to end current DMA2D
-                                          transfer properly</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">PollForTransfer(</span></span>)
+                                          transfer properly</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PollForTransfer(</span></span>)
                                           function to add poll for
                                           background CLUT loading (layer
-                                          0 and layer 1).</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">PollForTransfer(</span></span>)
-                                          to set the corresponding <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
-                                          in case of error occurrence</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ConfigCLUT(</span></span>)
+                                          0 and layer 1).</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PollForTransfer(</span></span>)
+                                          to set the corresponding <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
+                                          in case of error occurrence</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigCLUT(</span></span>)
                                           function to fix wrong CLUT
-                                          size and color mode settings</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Removal of
-                                          useless macro __HAL_DMA2D_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Suspend(</span></span>)
+                                          size and color mode settings</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Removal of
+                                          useless macro __HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Suspend(</span></span>)
                                           to manage correctly the case
-                                          where no transfer is on going</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Resume(</span></span>)&nbsp;to
+                                          where no transfer is on going</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Resume(</span></span>)&nbsp;to
 
 
 
 
                                           manage correctly the case
-                                          where no transfer is on going</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_Start_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          where no transfer is on going</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           to enable all required
                                           interrupts before enabling the
-                                          transfer.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          HAL_DMA2D_CLUTLoad_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          transfer.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          HAL_DMA2D_CLUTLoad_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           Function to allow loading a
-                                          CLUT with interruption model.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:7.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><span
-                                            style="font-size-adjust:
-                                            none;font-stretch: normal">&nbsp;</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_DMA2D_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          CLUT with interruption model.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 7pt;"><span style="font-size-adjust: none; font-stretch: normal;">&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           to manage the following
-                                          cases&nbsp;:</span><span
-                                          style="font-size:
-                                          7.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><span
-                                            style="font-size-adjust:
-                                            none;font-stretch: normal"><br
-style="mso-special-character:line-break">
-                                            <!--[if !supportLineBreakNewLine]--><br
-                                              style="mso-special-character:
-
-
-
-
-                                              line-break">
+                                          cases&nbsp;:</span><span style="font-size: 7pt;"><span style="font-size-adjust: none; font-stretch: normal;"><br style="">
+                                            <!--[if !supportLineBreakNewLine]--><br style="">
                                             <!--[endif]--><o:p></o:p></span></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l66 level3
-                                          lfo71;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CLUT
-                                            transfer <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">complete</span></span></span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l66 level3
-                                          lfo71;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CLUT access
-                                            error</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l66 level3
-                                          lfo71;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Transfer
-                                            watermark <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">reached</span></span></span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CLUT
+                                            transfer <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">complete</span></span></span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CLUT access
+                                            error</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Transfer
+                                            watermark <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">reached</span></span></span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l66 level2
-                                        lfo71;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          Callback APIs:</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          Callback APIs:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l66 level3
-                                          lfo71;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">LineEventCallback(</span></span>)
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LineEventCallback(</span></span>)
                                             to signal a transfer
-                                            watermark reached event</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l66 level3
-                                          lfo71;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;HAL_DMA2D_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CLUTLoadingCpltCallback(</span></span>)
+                                            watermark reached event</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLUTLoadingCpltCallback(</span></span>)
                                             to signal a CLUT loading
                                             complete event <o:p></o:p></span></li>
                                       </ul>
@@ -32133,1015 +6603,154 @@
                                   </ul>
                                   <ul type="disc">
                                     <ul type="circle">
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l62 level2
-                                        lfo72;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Miscellaneous
-                                          Improvement:</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Miscellaneous
+                                          Improvement:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l62 level3
-                                          lfo72;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             "HAL_DMA2D_ERROR_CAE" new
                                             define for CLUT Access error
-                                            management.</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l62 level3
-                                          lfo72;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add </span><span
-                                            style="font-size:7.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><span
-                                              style="font-size-adjust:
-                                              none;font-stretch: normal">&nbsp;<span
-                                                class="grame">&nbsp;&nbsp;&nbsp;</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">“</span><span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">assert_param</span></span>”
+                                            management.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add </span><span style="font-size: 7pt;"><span style="font-size-adjust: none; font-stretch: normal;">&nbsp;<span class="grame">&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">“</span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">assert_param</span></span>”
                                             used for parameters check is
                                             now done on the top of the
                                             exported functions : before
                                             locking the process using
-                                            __HAL_LOCK</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            __HAL_LOCK</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto"><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
+                                  <p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p>&nbsp;</o:p></span></p>
                                   <ul type="square">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l116 level1
-                                      lfo73;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C&nbsp;</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="font-size:10.0pt;
-                                        mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          I2C&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add support
-                                          of I2C repeated start feature:</span><span
-                                          style="font-size:10.0pt;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add support
+                                          of I2C repeated start feature:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l116 level3
-                                          lfo73;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">With the
-                                            following new API's</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">With the
+                                            following new API's</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Master_Sequential_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Master_Sequential_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Master_Abort_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Slave_Sequential_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_Slave_Sequential_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_EnableListen_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_DisableListen_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Master_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Master_Sequential_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Master_Abort_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Slave_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_Slave_Sequential_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_EnableListen_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_DisableListen_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l116 level3
-                                          lfo73;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt;">Add new
                                             user callbacks:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ListenCpltCallback(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l116 level4
-                                            lfo73;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_I2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">AddrCallback(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ListenCpltCallback(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AddrCallback(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           generate STOP condition when a
-                                          acknowledge failure error is <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">detected</span></span></span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Several
+                                          acknowledge failure error is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">detected</span></span></span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
                                           update on HAL I2C driver to
                                           implement the new I2C state
-                                          machine:&nbsp;</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          machine:&nbsp;</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l116 level3
-                                          lfo73;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new API
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new API
                                             to get the I2C mode:
-                                            HAL_I2C_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">GetMode(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l116 level3
-                                          lfo73;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update I2C
+                                            HAL_I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetMode(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2C
                                             process to manage the new
-                                            I2C states.</span><span
-                                            style="font-size:10.0pt;
-                                            mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            I2C states.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix wrong <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">behaviour</span></span>
+                                          in single byte <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transmission</span></span>&nbsp;</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitOnFlagUntilTimeout(</span></span>)&nbsp;to
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix wrong <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">behaviour</span></span>
-                                          in single byte <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">transmission</span></span>&nbsp;</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2C_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WaitOnFlagUntilTimeout(</span></span>)&nbsp;to
-
-
-
-
-                                          manage the NACK feature.</span><span
-                                          style="font-size:10.0pt;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l116 level2
-                                        lfo73;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update&nbsp;&nbsp;I</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">2C
+                                          manage the NACK feature.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;&nbsp;I</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">2C
                                           transmission process to
                                           support the case data size
-                                          equal 0</span><span
-                                          style="font-size:
-                                          10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          equal 0</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
                                   <ul type="square">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l7 level1
-                                      lfo74;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FMPI2C </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="font-size:10.0pt;
-                                        mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          FMPI2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l7 level2
-                                        lfo74;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add support
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add support
                                           of FMPI2C repeated start
-                                          feature:</span><span
-                                          style="font-size:10.0pt;
-                                          mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          feature:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l7 level3
-                                          lfo74;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">With the
-                                            following new API's</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">With the
+                                            following new API's</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Master_Sequential_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Master_Sequential_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Master_Abort_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Slave_Sequential_Transmit_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_Slave_Sequential_Receive_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_EnableListen_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_DisableListen_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Master_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Master_Sequential_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Master_Abort_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Slave_Sequential_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_Slave_Sequential_Receive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_EnableListen_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_DisableListen_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l7 level3
-                                          lfo74;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt;">Add new
                                             user callbacks:<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ListenCpltCallback(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l7 level4
-                                            lfo74;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_FMPI2C_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">AddrCallback(</span></span>)</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ListenCpltCallback(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AddrCallback(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l7 level2
-                                        lfo74;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Several
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
                                           update on HAL I2C driver to
                                           implement the new I2C state
-                                          machine:&nbsp;</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          machine:&nbsp;</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l7 level3
-                                          lfo74;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new API
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new API
                                             to get the FMPI2C mode:
-                                            HAL_FMPI2C_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">GetMode(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l7 level3
-                                          lfo74;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
+                                            HAL_FMPI2C_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetMode(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                             FMPI2C process to manage the
-                                            new FMPI2C states.</span><span
-                                            style="font-size:
-                                            10.0pt;mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            new FMPI2C states.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
                                   <ul type="square">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l134 level1
-                                      lfo75;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 10pt;"> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l134 level2
-                                        lfo75;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Major Update
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Major Update
                                           to improve performance in
                                           polling/interrupt mode to
-                                          reach max frequency:</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          reach max frequency:</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l134 level3
-                                          lfo75;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Polling <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Polling <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">mode
-
-
-
-                                                :</span></span></span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                                :</span></span></span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l134 level4
-                                            lfo75;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Replace
-                                              use of <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">WaitOnFlagUnitTimeout(</span></span>)
-                                              <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">funnction</span></span>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Replace
+                                              use of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitOnFlagUnitTimeout(</span></span>)
+                                              <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">funnction</span></span>
                                               by "if" statement to check
-                                              on RXNE/TXE <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">flage</span></span>
-                                              while transferring data.</span><span
-                                              style="font-size:10.0pt;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l134 level4
-                                            lfo75;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Use API
+                                              on RXNE/TXE <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">flage</span></span>
+                                              while transferring data.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use API
                                               data pointer instead of
-                                              SPI handle data pointer.</span><span
-                                              style="font-size:
-                                              10.0pt;mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l134 level4
-                                            lfo75;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Use a <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">Goto</span></span>
+                                              SPI handle data pointer.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use a <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Goto</span></span>
                                               implementation instead of
-                                              "<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">if..</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">else</span></span>"
-                                              statements.</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
+                                              "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">if..</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">else</span></span>"
+                                              statements.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
@@ -33149,132 +6758,29 @@
                                   <ul type="square">
                                     <ul type="square">
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l140 level3
-                                          lfo76;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Interrupt
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt;">Interrupt
                                             mode<o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Minimize
-                                              access on SPI registers.</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Split the
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Minimize
+                                              access on SPI registers.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split the
                                               SPI modes into dedicated
                                               static functions to
                                               minimize checking
-                                              statements under <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>):</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              statements under <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>):</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                           <ul type="square">
-                                            <li class="MsoNormal"
-                                              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                              auto;mso-list:l140 level5
-                                              lfo76;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
+                                            <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">1lines/2lines
 
 
 
-                                                New Roman&quot;">1lines/2lines
-
-
-
-                                                modes</span><span
-                                                style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                                New Roman&quot;"><o:p></o:p></span></li>
-                                            <li class="MsoNormal"
-                                              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                              auto;mso-list:l140 level5
-                                              lfo76;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">8 bit/
-                                                16 bits data formats</span><span
-                                                style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                                &quot;Times New
-                                                Roman&quot;"><o:p></o:p></span></li>
-                                            <li class="MsoNormal"
-                                              style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                              auto;mso-list:l140 level5
-                                              lfo76;tab-stops:list
-                                              2.5in"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">CRC
+                                                modes</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                            <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">8 bit/
+                                                16 bits data formats</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                            <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CRC
                                                 calculation
-                                                enabled/disabled.</span><span
-                                                style="font-size:10.0pt;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;"><o:p></o:p></span></li>
+                                                enabled/disabled.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                           </ul>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Remove
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt;">Remove
                                               waiting loop under ISR
                                               when <span class="grame">closing
 
@@ -33283,134 +6789,34 @@
                                                 &nbsp;the</span>
                                               communication.<o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l140 level3
-                                          lfo76;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">All
-                                            modes:&nbsp;&nbsp;</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">All
+                                            modes:&nbsp;&nbsp;</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         <ul type="square">
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Adding
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Adding
                                               switch USE_SPI_CRC to
                                               minimize number of
                                               statements when CRC
-                                              calculation is disabled.</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                              &quot;Times New
-                                              Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
+                                              calculation is disabled.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                               Timeout management to
-                                              check on global process.</span><span
-                                              style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                            auto;mso-list:l140 level4
-                                            lfo76;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Update
+                                              check on global process.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                               Error code management in
-                                              all processes.</span><span
-                                              style="font-size:10.0pt;
-                                              mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              all processes.</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l140 level2
-                                        lfo76;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add note to
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt;">Add note to
                                           the max frequencies reached in
                                           all modes.<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l140 level2
-                                        lfo76;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add note
-                                          about Master Receive mode <span
-                                            class="grame">restrictions :</span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt;">Add note
+                                          about Master Receive mode <span class="grame">restrictions :</span><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:#002052;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l140
-
-
-
-                                          level3 lfo76;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-                                            &quot;Times New
-                                            Roman&quot;;color:windowtext">Master
+                                        <li class="MsoNormal" style="color: rgb(0, 32, 82);"><span style="font-size: 10pt;">Master
 
 
 
                                             Receive mode restriction:<br>
-                                            &nbsp;&nbsp;&nbsp;<span
-                                              class="grame">&nbsp;&nbsp;
+                                            &nbsp;&nbsp;&nbsp;<span class="grame">&nbsp;&nbsp;
                                               (</span>#) In Master
                                             unidirectional receive-only
                                             mode (MSTR =1, BIDIMODE=0,
@@ -33445,3227 +6851,688 @@
 
 
 
-                                          </span><span style="font-size:
-                                            10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          </span><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
                                   <ul type="square">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI&nbsp;</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="font-size:10.0pt;
-                                        mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update for
+                                          SAI&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 10pt;"> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update for
                                           proper management of the
                                           external synchronization input
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">selection</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l95 level3
-                                          lfo77;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update
-                                            of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Init</span></span>
-                                            () <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">funciton</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l95 level3
-                                          lfo77;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update
-                                            definition of <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SAI_Block_SyncExt</span></span>
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SAI_Block_Synchronization</span></span>
-                                            groups</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">selection</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update
+                                            of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Init</span></span>
+                                            () <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">funciton</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update
+                                            definition of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_Block_SyncExt</span></span>
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_Block_Synchronization</span></span>
+                                            groups</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          SAI_SLOTACTIVE_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">X
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          SAI_SLOTACTIVE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">X
                                               &nbsp;defines</span></span>
-                                          values</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          function for proper <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">companding</span></span>
-                                          mode management</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_Transmit_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ITxxBit(</span></span>)
+                                          values</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          function for proper <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">companding</span></span>
+                                          mode management</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_Transmit_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ITxxBit(</span></span>)
                                           functions to add the check on
                                           transfer counter before
-                                          writing new data to <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAIx_DR</span></span>
-                                          registers</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FillFifo(</span></span>)
+                                          writing new data to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAIx_DR</span></span>
+                                          registers</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FillFifo(</span></span>)
                                           function to avoid issue when
                                           the number of data to transmit
-                                          is smaller than the FIFO size</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EnableRxMuteMode(</span></span>)
+                                          is smaller than the FIFO size</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableRxMuteMode(</span></span>)
                                           function for proper mute
-                                          management</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">InitPCM(</span></span>)
+                                          management</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InitPCM(</span></span>)
                                           function to support 24bits
-                                          configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          configuration</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ETH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Removal of
-                                          ETH MAC debug register <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">defines</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          ETH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Removal of
+                                          ETH MAC debug register <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">defines</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MassErase(</span></span>)
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MassErase(</span></span>)
                                           function to apply correctly
-                                          voltage range parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          voltage range parameter</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><b><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span></b><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update I2S_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMATxCplt(</span></span>)
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><b><span style=""> </span></b><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMATxCplt(</span></span>)
                                           and I2S_DMARxCplt() to manage
-                                          properly <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">FullDuplex</span></span>
+                                          properly <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FullDuplex</span></span>
                                           mode without any risk of
-                                          missing data.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          missing data.</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          FMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update<b> <o:p></o:p></b></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          function to use <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BurstAccessMode</span></span>
-                                          field properly</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          FMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<b> <o:p></o:p></b></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          function to use <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BurstAccessMode</span></span>
+                                          field properly</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l95 level1
-                                      lfo77;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FSMC&nbsp;
 
 
 
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">FSMC&nbsp;
-
-
-
-                                            </span></span></span></b><span
-                                        class="grame"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update</span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></b></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l95 level2
-                                        lfo77;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FSMC_NORSRAM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          function to use <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BurstAccessMode</span></span>
-                                          field properly</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            </span></span></span></b><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span></span><span style=""> </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></b></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FSMC_NORSRAM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          function to use <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BurstAccessMode</span></span>
+                                          field properly</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto"><span style="font-size:10.0pt"><br
-                                        style="mso-special-character:
-                                        line-break">
-                                      <!--[if !supportLineBreakNewLine]--><br
-style="mso-special-character:line-break">
+                                  <p class="MsoNormal" style=""><span style="font-size: 10pt;"><br style="">
+                                      <!--[if !supportLineBreakNewLine]--><br style="">
                                       <!--[endif]--><o:p></o:p></span></p>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-font-family:
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.4.4
+                                        / 11-December-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style=""><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><span style="font-size: 10pt;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                        &quot;Times New
-                                        Roman&quot;;color:white">V1.4.4
-                                        / 11-December-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto"><b><u><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          color:black">Main Changes</span></u></b><span
-                                      style="font-size:10.0pt"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l108 level1
-                                      lfo78;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l108 level2
-                                        lfo78;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
                                           weak empty callbacks to
                                           prevent unused argument
                                           compilation warnings with some
                                           compilers by calling the
-                                          following line:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l108 level3
-                                          lfo78;tab-stops:list 1.5in"><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">UNUSED(</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">hppp</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">);</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          following line:</span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">hppp</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">);</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l108 level2
-                                        lfo78;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">STM32Fxxx_User_Manual.chm
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">STM32Fxxx_User_Manual.chm
 
 
 
 
                                           files regenerated for HAL
-                                          V1.4.3</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          V1.4.3</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l108 level1
-                                      lfo78;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ETH</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update&nbsp;</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l108 level2
-                                        lfo78;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_ETH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          ETH</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_ETH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           function to add timeout on the
-                                          Software reset management</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Software reset management</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.4.2
 
 
 
-                                        New Roman&quot;;color:white">V1.4.2
-
-
-
-                                        / 10-November-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l136 level1
-                                      lfo79;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 10-November-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l136 level1
-                                      lfo79;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">One
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">One
 
 
 
                                           change done on the HAL CRYP
                                           requires an update on the
                                           application code based on HAL
-                                          V1.4.1</span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l136 level2
-                                        lfo79;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_DESECB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Decrypt(</span></span>)
-                                          API to&nbsp;invert <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">pPlainData</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pCypherData</span></span>
-                                          parameters</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          V1.4.1</span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_DESECB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Decrypt(</span></span>)
+                                          API to&nbsp;invert <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pPlainData</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pCypherData</span></span>
+                                          parameters</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l136 level1
-                                      lfo79;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          generic</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">
-                                        update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l136 level2
-                                        lfo79;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update HAL
+                                          generic</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update HAL
                                           weak empty callbacks to
                                           prevent unused argument
                                           compilation warnings with some
                                           compilers by calling the
-                                          following line:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          12.0pt;mso-list:l136 level3
-                                          lfo79;tab-stops:list 1.5in"><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">UNUSED(</span></span><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">hppp</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">);</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          following line:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 12pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">hppp</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">);</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l73 level1
-                                      lfo80;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CORTEX </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l73 level2
-                                        lfo80;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                          CORTEX </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           duplication for
-                                          __HAL_CORTEX_SYSTICKCLK_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
-                                          macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          __HAL_CORTEX_SYSTICKCLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
+                                          macro</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l36 level1
-                                      lfo81;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_STATETypeDef</span></span>
-                                          to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_StateTypeDef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_PhaseTypeDef</span></span>
-                                          to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_PhaseTypeDef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          HASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_STATETypeDef</span></span>
+                                          to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_StateTypeDef</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_PhaseTypeDef</span></span>
+                                          to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_PhaseTypeDef</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l36 level1
-                                      lfo81;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          macros __HAL_RCC_<i>PPP</i>_IS_CLK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED(</span></span>)
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          macros __HAL_RCC_<i>PPP</i>_IS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED(</span></span>)
                                           to check on Clock
-                                          enable/disable status</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          __HAL_RCC_USB_OTG_FS_CLK_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
+                                          enable/disable status</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          __HAL_RCC_USB_OTG_FS_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
                                           macro to remove the disable
-                                          for the SYSCFG</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MCOConfig(</span></span>)
+                                          for the SYSCFG</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MCOConfig(</span></span>)
                                           API to use new defines for the
-                                          GPIO Speed</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Generic
+                                          GPIO Speed</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Generic
                                           update to improve the
                                           PLL&nbsp;VCO min
                                           value(100MHz): PLLN, PLLI2S
                                           and PLLSAI min value is 50
-                                          instead of <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">192</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          instead of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">192</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l36 level1
-                                      lfo81;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:#020302;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-style="text-align:start;float:none;word-spacing:0px"><span
-                                            style="font-size:9.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New
-                                            Roman&quot;;background:white">__HAL_FLASH_INSTRUCTION_CACHE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)
-                                            macro: update to&nbsp;<span
-                                              style="text-align:start;float:none;
-
-
-
-
-                                              word-spacing:0px"></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">reset
-                                              &nbsp;</span><span
-                                              style="text-align:start;float:none;word-spacing:
-                                              0px">ICRST </span><span
-                                              style="text-align:start;float:none;
-                                              word-spacing:0px">bit in
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: rgb(2, 3, 2); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 9pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_FLASH_INSTRUCTION_CACHE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)
+                                            macro: update to&nbsp;<span style="text-align: start; float: none; word-spacing: 0px;"></span><span style="">reset
+                                              &nbsp;</span><span style="text-align: start; float: none; word-spacing: 0px;">ICRST </span><span style="text-align: start; float: none; word-spacing: 0px;">bit in
                                               the ACR register after
-                                              setting it.</span></span></span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:#020302;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l36 level2
-                                        lfo81;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                              setting it.</span></span></span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(2, 3, 2); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           support until 15 FLASH wait
                                           state (FLASH_LATENCY_15) for
-                                          STM32F446xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span>
-                                        </span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          STM32F446xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span>
+                                        </span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL CRYP&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_CRYP_DESECB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Decrypt(</span></span>)
-                                          API to fix the inverted <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">pPlainData</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pCypherData</span></span>
-                                          parameters issue</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL CRYP&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_DESECB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Decrypt(</span></span>)
+                                          API to fix the inverted <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pPlainData</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pCypherData</span></span>
+                                          parameters issue</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_I2S_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           API&nbsp;to call
                                           __HAL_RCC_I2S_CONFIG() macro
                                           when external I2S clock is
-                                          selected</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          selected</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LTDC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetWindowPosition(</span></span>)
+                                          LTDC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetWindowPosition(</span></span>)
                                           API&nbsp;to configure
                                           Immediate&nbsp;reload&nbsp;register
                                           instead of vertical blanking
-                                          reload register.</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          reload register.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigClockSource(</span></span>)
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigClockSource(</span></span>)
                                           API to&nbsp;check only the
-                                          required parameters</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          required parameters</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NAND </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          HAL_NAND_Read_Page()/HAL_NAND_Write_Page()/HAL_NAND_Read_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SpareArea(</span></span>)
+                                          NAND </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          HAL_NAND_Read_Page()/HAL_NAND_Write_Page()/HAL_NAND_Read_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SpareArea(</span></span>)
                                           APIs to manage correctly the
-                                          NAND Page access</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          NAND Page access</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to use
+                                          CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to use
                                           "=" instead of "|=" to clear
                                           flags in the MSR, TSR, RF0R
-                                          and RF1R registers</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          and RF1R registers</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix typo in
-                                          __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)
-                                          macro implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          HCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix typo in
+                                          __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)
+                                          macro implementation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          PCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           API to avoid issue
                                           when&nbsp;DMA mode enabled for
-                                          Status Phase IN stage</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Status Phase IN stage</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          FMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_Extended_Timing_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          FMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_Extended_Timing_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           API to remove the check
-                                          on&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CLKDIvison</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DataLatency</span></span>
-                                          parameters</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          API to add a check on the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PageSize</span></span>
+                                          on&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLKDIvison</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DataLatency</span></span>
+                                          parameters</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          API to add a check on the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PageSize</span></span>
                                           parameter for STM32F42/43xx
-                                          devices</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l119 level1
-                                      lfo82;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          FSMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l119 level2
-                                        lfo82;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FSMC_NORSRAM_Extended_Timing_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          FSMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FSMC_NORSRAM_Extended_Timing_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                           API to remove the check
-                                          on&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">CLKDIvison</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DataLatency</span></span>
-                                          parameters</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          on&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CLKDIvison</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DataLatency</span></span>
+                                          parameters</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.4.1
 
 
 
-                                        New Roman&quot;;color:white">V1.4.1
+                                        / 09-October-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        / 09-October-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l38 level1
-                                      lfo83;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DSI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l38 level2
-                                        lfo83;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update TCCR
+                                          DSI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update TCCR
                                           register&nbsp;assigned value
-                                          in&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigHostTimeouts(</span></span>)
-                                          function</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l38 level2
-                                        lfo83;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update WPCR
+                                          in&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigHostTimeouts(</span></span>)
+                                          function</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update WPCR
                                           register&nbsp;assigned value
-                                          in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>),
+                                          in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetSlewRateAndDelayTuning</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetSlewRateAndDelayTuning</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetSlewRateAndDelayTuning</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetSlewRateAndDelayTuning</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetLowPowerRXFilter</span></span>()
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetLowPowerRXFilter</span></span>()
 
 
 
 
-                                          / <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetSDD</span></span>(),
+                                          / <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetSDD</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetLanePinsConfiguration</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetLanePinsConfiguration</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetPHYTimings</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetPHYTimings</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_ForceTXStopMode</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_ForceTXStopMode</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_ForceRXLowPower</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_ForceRXLowPower</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_ForceDataLanesInRX</span></span>(),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_ForceDataLanesInRX</span></span>(),
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetPullDown</span></span>()
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetPullDown</span></span>()
 
 
 
 
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DSI_SetContentionDetectionOff</span></span>()
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DSI_SetContentionDetectionOff</span></span>()
 
 
 
 
-                                          functions</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l38 level2
-                                        lfo83;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          DSI_HS_PM_ENABLE define <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">value</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l38 level2
-                                        lfo83;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Implement
+                                          functions</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          DSI_HS_PM_ENABLE define <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">value</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Implement
                                           workaround for the hardware
                                           limitation: “The time to
                                           activate the clock between HS
                                           transmissions is not
-                                          calculated <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">correctly”</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          calculated <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">correctly”</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.4.0
 
 
 
-                                        New Roman&quot;;color:white">V1.4.0
-
-
-
-                                        / 14-August-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l109 level1
-                                      lfo84;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        support of<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><b>STM32F469xx</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">, <b>STM32F479xx</b>,
+                                        / 14-August-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        support of<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><b>STM32F469xx</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">, <b>STM32F479xx</b>,
                                             <b>STM32F410Cx, STM32F410Rx
-                                            </b>and<b> STM32F410</b></span></span><span
-                                          class="grame"><b><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Tx&nbsp;</span></b></span><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">
-                                            devices</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l109 level1
-                                      lfo84;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                            </b>and<b> STM32F410</b></span></span><span class="grame"><b><span style="font-family: &quot;Verdana&quot;,sans-serif;">Tx&nbsp;</span></b></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">
+                                            devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l109 level1
-                                      lfo84;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                         new HAL drivers for <b>DSI&nbsp;</b>and<b>&nbsp;LPTIM
 
 
 
 
-                                        </b>peripherals</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                        </b>peripherals</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           ADC_CLOCKPRESCALER_PCLK_DIV2
                                           define to
-                                          ADC_CLOCK_SYNC_PCLK_DIV2</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          ADC_CLOCK_SYNC_PCLK_DIV2</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           ADC_CLOCKPRESCALER_PCLK_DIV4
                                           define to
-                                          ADC_CLOCK_SYNC_PCLK_DIV4</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          ADC_CLOCK_SYNC_PCLK_DIV4</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           ADC_CLOCKPRESCALER_PCLK_DIV6
                                           define to
-                                          ADC_CLOCK_SYNC_PCLK_DIV6</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          ADC_CLOCK_SYNC_PCLK_DIV6</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           ADC_CLOCKPRESCALER_PCLK_DIV8
                                           define to
-                                          ADC_CLOCK_SYNC_PCLK_DIV8 </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          ADC_CLOCK_SYNC_PCLK_DIV8 </span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CORTEX </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add specific
-                                          API for MPU management</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MPU_Region_InitTypeDef</span></span>
-                                            structure</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add new
-                                            function <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_MPU_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ConfigRegion(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          CORTEX </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add specific
+                                          API for MPU management</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MPU_Region_InitTypeDef</span></span>
+                                            structure</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                            function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_MPU_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigRegion(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">driver</span></span>
-                                          update for code optimization</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">StreamBaseAddress</span></span>
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">StreamIndex</span></span>
-                                            new fields in the <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">DMA_HandleTypeDef</span></span>
-                                            structure</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA_Base_Registers</span></span>
-                                            private <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">structure</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add static
-                                            function <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CalcBaseAndBitshift(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
+                                          DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">driver</span></span>
+                                          update for code optimization</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">StreamBaseAddress</span></span>
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">StreamIndex</span></span>
+                                            new fields in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA_HandleTypeDef</span></span>
+                                            structure</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA_Base_Registers</span></span>
+                                            private <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">structure</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add static
+                                            function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CalcBaseAndBitshift(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
                                             function to use the new
-                                            added static function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>)
+                                            added static function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>)
                                             function to optimize clear
-                                            flag operations</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Start_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            flag operations</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Start_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             function to optimize
-                                            interrupts enable</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PollForTransfer(</span></span>)
+                                            interrupts enable</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PollForTransfer(</span></span>)
                                             function to optimize check
-                                            on flags</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l24 level3
-                                          lfo85;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                            on flags</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                             function to optimize
-                                            interrupt flag management</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            interrupt flag management</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_FLASH_Program_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASH_Program_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           function by removing the
-                                          pending flag clear</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
+                                          pending flag clear</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
                                           function to improve erase
-                                          operation procedure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WaitForLastOperation(</span></span>)
+                                          operation procedure</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitForLastOperation(</span></span>)
                                           function by checking on end of
-                                          operation flag</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          operation flag</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          GPIO </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          GPIO </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           GPIO_SPEED_LOW define to
-                                          GPIO_SPEED_FREQ_LOW</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          GPIO_SPEED_FREQ_LOW</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           GPIO_SPEED_MEDIUM define to
-                                          GPIO_SPEED_FREQ_MEDIUM</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          GPIO_SPEED_FREQ_MEDIUM</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           GPIO_SPEED_FAST define to
-                                          GPIO_SPEED_FREQ_HIGH</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          GPIO_SPEED_FREQ_HIGH</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           GPIO_SPEED_HIGH define to
-                                          GPIO_SPEED_FREQ_VERY_HIGH</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          GPIO_SPEED_FREQ_VERY_HIGH</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move
                                           I2S_Clock_Source defines to
                                           extension file to properly add
-                                          the support of STM32F410xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          the support of STM32F410xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LTDC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LineEvenCallback(</span></span>)
-                                          function to <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_LineEventCallback</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add new
-                                          function <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetPitch(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add new
-                                          functions <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">StructInitFromVideoConfig(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_LTDC_StructInitFromAdaptedCommandConfig</span></span>()
+                                          LTDC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LineEvenCallback(</span></span>)
+                                          function to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_LineEventCallback</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                          function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetPitch(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                          functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">StructInitFromVideoConfig(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_StructInitFromAdaptedCommandConfig</span></span>()
 
 
 
 
                                           applicable only to STM32F469xx
-                                          and STM32F479xx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          and STM32F479xx devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l24 level1
-                                      lfo85;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">move
-                                          __HAL_PWR_VOLTAGESCALING_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
-                                          macro to extension file</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">move
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">move
+                                          __HAL_PWR_VOLTAGESCALING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
+                                          macro to extension file</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">move
                                           PWR_WAKEUP_PIN2 define to
-                                          extension <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">file</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add
+                                          extension <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">file</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add
                                           PWR_WAKEUP_PIN3 define,
                                           applicable only to STM32F10xx
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l24 level2
-                                        lfo85;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add new
-                                          functions <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EnableWakeUpPinPolarityRisingEdge(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_EnableWakeUpPinPolarityFallingEdge</span></span>(),
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                          functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableWakeUpPinPolarityRisingEdge(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_EnableWakeUpPinPolarityFallingEdge</span></span>(),
 
 
 
 
                                           applicable only to STM32F469xx
-                                          and STM32F479xx devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          and STM32F479xx devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l110 level1
-                                      lfo86;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l110 level2
-                                        lfo86;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RTCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetWakeUpTimer(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RTCEx_SetWakeUpTimer_IT</span></span>()
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTCEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetWakeUpTimer(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTCEx_SetWakeUpTimer_IT</span></span>()
 
 
 
 
                                           functions to properly check on
-                                          the WUTWF flag</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          the WUTWF flag</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l110 level1
-                                      lfo86;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l110 level2
-                                        lfo86;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add new
-                                          defines TIM_SYSTEMBREAKINPUT_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HARDFAULT,&nbsp;
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                          defines TIM_SYSTEMBREAKINPUT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HARDFAULT,&nbsp;
 
 
 
@@ -36677,297 +7544,74 @@
                                           and
                                           TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD,
                                           applicable only to STM32F410xx
-                                          devices</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.3.2
 
 
 
-                                        New Roman&quot;;color:white">V1.3.2
-
-
-
-                                        / 26-June-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l126 level1
-                                      lfo87;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 26-June-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">One
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l126 level1
-                                      lfo87;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">One
-
-
-
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">changes</span></span>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">changes</span></span>
                                           done on the HAL may require an
                                           update on the application code
-                                          based on HAL V1.3.1</span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l126 level2
-                                        lfo87;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HASH IT
-                                          process: update to call the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">InCpltCallback(</span></span>)
+                                          based on HAL V1.3.1</span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HASH IT
+                                          process: update to call the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InCpltCallback(</span></span>)
                                           at the end of the complete
                                           buffer instead of every each
-                                          512 bits</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          512 bits</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l75 level1
-                                      lfo88;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l75 level2
-                                        lfo88;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCCEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PeriphCLKConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) updates:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l75 level3
-                                          lfo88;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update the
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PeriphCLKConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) updates:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                             LSE check condition after
-                                            backup domain <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">reset:</span></span>
+                                            backup domain <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">reset:</span></span>
                                             update to check&nbsp;LSE
                                             ready flag when LSE
                                             oscillator is already
                                             enabled instead of check on
                                             LSE oscillator only when LSE
-                                            is used as RTC clock source</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l75 level3
-                                          lfo88;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Use the
+                                            is used as RTC clock source</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use the
                                             right macro to check the
-                                            PLLI2SQ <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">parameters</span></span>
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            PLLI2SQ <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">parameters</span></span>
+                                          </span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                           macro: fix implementation
-                                          issue</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_RTC_ALARM_GET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>),
+                                          issue</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_ALARM_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>),
 
 
 
@@ -36985,711 +7629,147 @@
                                           and
                                           __HAL_RTC_TAMPER_CLEAR_FLAG()
                                           macros implementation changed:
-                                          remove unused cast</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IS_RTC_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TAMPER(</span></span>)
+                                          remove unused cast</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_RTC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TAMPER(</span></span>)
                                           macro: update to use literal
                                           instead of hardcoded
-                                          value&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          parameter <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SecondFraction</span></span>
-                                          in <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">RTC_TimeTypeDef</span></span>
-                                          structure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RTC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">GetTime(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API update
+                                          value&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          parameter <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SecondFraction</span></span>
+                                          in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RTC_TimeTypeDef</span></span>
+                                          structure</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetTime(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API update
                                           to support the new
-                                          parameter&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">SecondFraction</span></span>
-                                        </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          parameter&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SecondFraction</span></span>
+                                        </span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           literal:
                                           ADC_INJECTED_SOFTWARE_START to
                                           be used as possible value for
-                                          the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ExternalTrigInjecConvEdge</span></span>
-                                          parameter in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ADC_InitTypeDef</span></span>
+                                          the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ExternalTrigInjecConvEdge</span></span>
+                                          parameter in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ADC_InitTypeDef</span></span>
                                           structure to select the ADC
-                                          software trigger mode.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          software trigger mode.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">FLASH_OB_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">GetRDP(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API update
-                                          to return uint8_t instead of <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">FlagStatus</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;__HAL_FLASH_GET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LATENCY(</span></span>)
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_OB_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetRDP(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API update
+                                          to return uint8_t instead of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FlagStatus</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_FLASH_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LATENCY(</span></span>)
                                           new macro add to get the flash
-                                          latency</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          latency</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix the wrong
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix the wrong
                                           definition of
-                                          HAL_SPI_ERROR_FLAG literal</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          HAL_SPI_ERROR_FLAG literal</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_I2S_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>)
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>)
                                           API update to check on busy
-                                          flag only for I2S slave mode</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          flag only for I2S slave mode</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_CRC_SET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IDR(</span></span>)
+                                          CRC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_CRC_SET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDR(</span></span>)
                                           macro implementation change to
                                           use WRITE_REG() instead of
-                                          MODIFY_REG()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          MODIFY_REG()</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DMA2D </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_DMA2D_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ConfigLayer(</span></span>)
+                                          DMA2D </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA2D_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ConfigLayer(</span></span>)
                                           API update to use "=" instead
                                           of "|=" to erase BGCOLR and
                                           FGCOLR registers before
-                                          setting the new configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          setting the new configuration</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l58 level1
-                                      lfo89;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_<b>MODE</b>_Start_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)&nbsp;(<b>MODE
+                                          HASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_<b>MODE</b>_Start_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;(<b>MODE
 
 
 
                                           </b>stands for MD5, SHA1,
-                                          SHA224 and SHA36) updates:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          SHA224 and SHA36) updates:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix&nbsp;processing
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix&nbsp;processing
-
-
-
-
-                                            fail for small input <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">buffers</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
+                                            fail for small input <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">buffers</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                             unlock the process and
                                             call&nbsp;return
                                             HAL_OK&nbsp;at the end of
                                             HASH processing to avoid
-                                            incorrectly repeating <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">software</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
-                                            properly manage the <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HashITCounter</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
-                                            call the <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_HASH_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">InCpltCallback(</span></span>)
+                                            incorrectly repeating <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">software</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                            properly manage the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HashITCounter</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                            call the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InCpltCallback(</span></span>)
                                             at the end of the complete
                                             buffer instead of every each
-                                            512 bits </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            512 bits </span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_HASH_GET_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_HASH_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                           update to &nbsp;check the
                                           right register when the DINNE
-                                          flag &nbsp;is selected</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l58 level2
-                                        lfo89;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_HASH_SHA1_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Accumulate(</span></span>)
-                                          updates:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add
+                                          flag &nbsp;is selected</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_SHA1_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Accumulate(</span></span>)
+                                          updates:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                             a&nbsp;call to the new
-                                            IS_HASH_SHA1_BUFFER_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">SIZE(</span></span>)
+                                            IS_HASH_SHA1_BUFFER_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SIZE(</span></span>)
                                             macro to check the size
-                                            parameter.&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l58 level3
-                                          lfo89;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add the
-                                            following note in API <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">description</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            parameter.&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
+                                            following note in API <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">description</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:1.25in">
-                                    <p class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;*
+                                  <div style="margin-left: 1.25in;">
+                                    <p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;*
 
 
 
 
-                                        @<span class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">note&nbsp;
+                                        @<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">note&nbsp;
 
 
 
@@ -37697,704 +7777,140 @@
                                             Input</span></span> buffer
                                         size in bytes must be a multiple
                                         of 4 otherwise the digest
-                                        computation is corrupted.</span><span
-                                        style="font-size:10.0pt"><o:p></o:p></span></p>
+                                        computation is corrupted.</span><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                   </div>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           define&nbsp;hardware
-                                          independent literals names:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
+                                          independent literals names:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                            RTC_TAMPERPIN_PC13 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">by
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
-                                            RTC_TAMPERPIN_PC13 <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">by
-
-
-
-                                                &nbsp;RTC</span></span>_TAMPERPIN_DEFAULT</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
+                                                &nbsp;RTC</span></span>_TAMPERPIN_DEFAULT</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                             RTC_TAMPERPIN_PA0 by
-                                            RTC_TAMPERPIN_POS1</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
+                                            RTC_TAMPERPIN_POS1</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                             RTC_TAMPERPIN_PI8 by
-                                            RTC_TAMPERPIN_POS1</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
+                                            RTC_TAMPERPIN_POS1</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                             RTC_TIMESTAMPPIN_PC13 by
-                                            RTC_TIMESTAMPPIN_DEFAULT</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
+                                            RTC_TIMESTAMPPIN_DEFAULT</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                             RTC_TIMESTAMPPIN_PA0 by
-                                            RTC_TIMESTAMPPIN_POS1</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l96 level3
-                                          lfo90;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Rename
+                                            RTC_TIMESTAMPPIN_POS1</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                             RTC_TIMESTAMPPIN_PI8 by
-                                            RTC_TIMESTAMPPIN_POS1</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            RTC_TIMESTAMPPIN_POS1</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ETH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
-                                          duplicated&nbsp;IS_ETH_DUPLEX_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MODE(</span></span>)
-                                          and IS_ETH_RX_MODE() macros</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                          ETH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                          duplicated&nbsp;IS_ETH_DUPLEX_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MODE(</span></span>)
+                                          and IS_ETH_RX_MODE() macros</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           illegal space
                                           ETH_MAC_READCONTROLLER_FLUSHING
-                                          macro</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
+                                          macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
                                           ETH_MAC_READCONTROLLER_XXX
                                           defined values (XXX can be
                                           IDLE, READING_DATA and
-                                          READING_STATUS)</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          READING_STATUS)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PCD_IRQHandler</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> API: fix the
+                                          PCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_IRQHandler</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> API: fix the
                                           bad Configuration of
-                                          Turnaround Time</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          Turnaround Time</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to use
+                                          HCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to use
                                           local variable&nbsp;in USB
-                                          Host channel re-<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">activation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Host channel re-<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">activation</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          FMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">FMC_SDRAM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SendCommand(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) API: remove
+                                          FMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FMC_SDRAM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SendCommand(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) API: remove
                                           the following line: return
-                                          HAL_ERROR;</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          HAL_ERROR;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l96 level1
-                                      lfo90;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LL
 
 
 
-
-                                          &quot;Times New Roman&quot;">LL
-
-
-
-                                          USB </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_FlushTxFifo</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;API:
-                                          update to flush all Tx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FIFO</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l96 level2
-                                        lfo90;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to use
+                                          USB </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_FlushTxFifo</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;API:
+                                          update to flush all Tx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FIFO</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to use
                                           local variable&nbsp;in USB
-                                          Host channel re-<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">activation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Host channel re-<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">activation</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.3.1
 
 
 
-                                        New Roman&quot;;color:white">V1.3.1
+                                        / 25-Mars-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-                                        / 25-Mars-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l19 level1
-                                      lfo91;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
                                           compilation issue with
                                           STM32F417xx product:
                                           update&nbsp;<b>STM32F17xx</b>
-                                          by <b>STM32F417xx</b></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          by <b>STM32F417xx</b></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l19 level1
-                                      lfo91;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove unused
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove unused
                                           variable to avoid warning with
-                                          <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">TrueSTUDIO</span></span>&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TrueSTUDIO</span></span>&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l19 level1
-                                      lfo91;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2C </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">I2C
+                                          I2C </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C
                                           Polling/IT/DMA processes: move
                                           the&nbsp;wait loop on busy
                                           flag at the top of the
@@ -38403,241 +7919,64 @@
                                           access to I2C_CR1 register
                                           before hardware
                                           clearing&nbsp;STOP bit and to
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">avoid
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">avoid
 
 
 
 
                                               also</span></span> the
                                           waiting loop on BUSY flag
-                                          under I2C/DMA ISR.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update busy
-                                          flag&nbsp;Timeout <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">value</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">I2C Master
+                                          under I2C/DMA ISR.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update busy
+                                          flag&nbsp;Timeout <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">value</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">I2C Master
                                           Receive Processes update to
-                                          disable ACK before <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">generate</span></span>
-                                          the STOP&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          disable ACK before <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">generate</span></span>
+                                          the STOP&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l19 level1
-                                      lfo91;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DAC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l19 level2
-                                        lfo91;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix V1.3.0
+                                          DAC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix V1.3.0
                                           regression issue with DAC
-                                          software trigger <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">configuration</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          software trigger <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">configuration</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.3.0
 
 
 
-                                        New Roman&quot;;color:white">V1.3.0
-
-
-
-                                        / 09-Mars-2015</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l46 level1
-                                      lfo92;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        support of<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><b>STM32F446xx</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l46 level1
-                                      lfo92;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">General
+                                        / 09-Mars-2015</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        support of<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><b>STM32F446xx</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">General
 
 
 
                                         updates to fix known defects and
-                                        enhancements <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l46 level1
-                                      lfo92;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
+                                        enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                         new HAL drivers for <b>CEC,
                                           QSPI, FMPI2C </b>and <b>SPDIFRX
 
 
 
-                                        </b>peripherals</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l46 level1
-                                      lfo92;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Two
+                                        </b>peripherals</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Two
 
 
 
                                           changes done on the HAL
                                           requires an update on the
                                           application code based on HAL
-                                          V1.2.0</span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l46 level2
-                                        lfo92;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Overall <b>SAI</b>
+                                          V1.2.0</span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Overall <b>SAI</b>
                                           <b>driver rework</b> to have
                                           exhaustive support of the
                                           peripheral features: details
@@ -38650,337 +7989,65 @@
 
 
 
-                                            with previous version is <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">impacted</span></span></b></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l46 level2
-                                        lfo92;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CRYP </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">driver
-                                          updated to support multi <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">instance,so</span></span>
+                                            with previous version is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">impacted</span></span></b></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CRYP </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">driver
+                                          updated to support multi <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">instance,so</span></span>
                                           user must&nbsp;ensure that the
                                           new parameter&nbsp;Instance is
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">initalized</span></span>
-                                          in his application(<span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">CRYPHandle.Instance</span></span>
-                                          = CRYP)&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">initalized</span></span>
+                                          in his application(<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYPHandle.Instance</span></span>
+                                          = CRYP)&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l101 level1
-                                      lfo93;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          Generic </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l101 level2
-                                        lfo93;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_def.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l101 level3
-                                          lfo93;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove NULL
+                                          Generic </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_def.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove NULL
                                             definition&nbsp;and add
-                                            include for <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">stdio.h</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            include for <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">stdio.h</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l101 level2
-                                        lfo93;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32_hal_legacy.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l101 level3
-                                          lfo93;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update&nbsp;method
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32_hal_legacy.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;method
 
 
 
                                             to manage&nbsp;deference in
                                             alias implementation between
-                                            all STM32 <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">families</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            all STM32 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">families</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l101 level2
-                                        lfo93;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_ppp.c</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l101 level3
-                                          lfo93;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PPP_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Init(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">): update
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_ppp.c</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update
                                             to force the
                                             HAL_PPP_STATE_RESET before
-                                            calling the <span
-                                              class="spelle"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_MspInit</span></i></span><i>()</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            calling the <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_MspInit</span></i></span><i>()</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l34 level1
-                                      lfo94;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          function <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetPeriphCLKFreq(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RCC_PLLInitTypeDef</span></span>
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetPeriphCLKFreq(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RCC_PLLInitTypeDef</span></span>
                                           structure to extension file
                                           and add the new PLLR field
-                                          specific to STM32F446xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move the
+                                          specific to STM32F446xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move the
                                           following functions to
                                           extension file and add a
-                                          __weak attribute in generic <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">driver
+                                          __weak attribute in generic <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">driver
 
 
 
@@ -38989,250 +8056,31 @@
                                           system clock source (<i>PLL/PLLR</i>)
                                           added and only available for
                                           STM32F44xx devices <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_RCC_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">OscConfig(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_RCC_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetSysClockFreq(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_RCC_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">GetOscConfig(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetSysClockFreq(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetOscConfig(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move the
                                           following macro to extension
                                           file as they have device
-                                          dependent <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_PLL_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_PLLI2S_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_I2S_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          dependent <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_PLL_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_PLLI2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</span></i><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           structure <i>RCC_PLLI2SInitTypeDef</i>
                                           containing new <i>PLLI2S</i>
                                           division factors used only w/
-                                          STM32F446xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          structure <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RCC_PLLSAIInitTypeDef</span></i></span>
+                                          STM32F446xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          structure <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">RCC_PLLSAIInitTypeDef</span></i></span>
                                           containing new <i>PLLSAI</i>
                                           division factors used only w/
-                                          STM32F446xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RCC_PeriphCLKInitTypeDef</span></i></span>
+                                          STM32F446xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">RCC_PeriphCLKInitTypeDef</span></i></span>
                                           to support the peripheral
                                           source clock selection for (<i>I2S,
 
@@ -39240,26 +8088,8 @@
 
                                             SAI, SDIO, FMPI2C, CEC,
                                             SPDIFRX and CLK48</i>)<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PeriphCLKConfig(</span></i></span><i>)</i>
-                                          and <span class="spelle"><i><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_GetPeriphCLKConfig</span></i></span><i>()
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">PeriphCLKConfig(</span></i></span><i>)</i>
+                                          and <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_GetPeriphCLKConfig</span></i></span><i>()
 
 
 
@@ -39267,77 +8097,19 @@
                                           </i>functions to support the
                                           new peripherals Clock source
                                           selection<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <i>__HAL_RCC_PLL_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</i>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <i>__HAL_RCC_PLL_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</i>
                                           macro (the number of parameter
                                           and the implementation depend
                                           on the device part number)<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <i>__HAL_RCC_PLLI2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</i>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <i>__HAL_RCC_PLLI2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</i>
                                           macro(the number of parameter
                                           and the implementation depend
                                           on device part number)<o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <i>__HAL_RCC_PLLSAI_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</i>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <i>__HAL_RCC_PLLSAI_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</i>
                                           macro to support new PLLSAI
                                           factors <i>(PLLSAIM and
                                             PLLSAIP)</i><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros for clock
                                           enable/Disable for the
                                           following peripherals <i>(CEC,
@@ -39345,372 +8117,86 @@
 
 
                                             SPDIFRX, SAI2, QUADSPI)</i><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following new macros for clock
-                                          source <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">selection
+                                          source <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">selection
 
 
 
                                               :</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_SAI1_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_SAI1_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_SAI1_SOURCE()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_SAI2_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_SAI2_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_SAI2_SOURCE()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_I2S1_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_I2S1_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_I2S1_SOURCE()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_I2S2_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_I2S2_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_I2S2_SOURCE()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_CEC_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_CEC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC__GET_CEC_SOURCE()
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_FMPI2C1_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_FMPI2C1_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_FMPI2C1_SOURCE()
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_SDIO_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_SDIO_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_SDIO_SOURCE()
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_CLK48_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_CLK48_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
                                               __HAL_RCC_GET_CLK48_SOURCE()
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_SPDIFRXCLK_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_SPDIFRXCLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                               /
-                                              __HAL_RCC_GET_SPDIFRX_SOURCE()</span></i><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                              __HAL_RCC_GET_SPDIFRX_SOURCE()</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_RCC_PPP_CLK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>):
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_PPP_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>):
 
 
 
 
                                           Implement workaround to cover
                                           RCC limitation regarding
-                                          peripheral enable delay</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">OscConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) fix
-                                          issues:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l34 level3
-                                          lfo94;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a check
+                                          peripheral enable delay</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) fix
+                                          issues:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a check
                                             on LSERDY flag when
                                             LSE_BYPASS is selected as
                                             new state for LSE
-                                            oscillator.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            oscillator.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           new&nbsp;possible value&nbsp;<i>RCC_PERIPHCLK_PLLI2S
 
 
 
-                                          </i>to be selected as<i> <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PeriphClockSelection</span></span>
-                                          </i>parameter in <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">the
+                                          </i>to be selected as<i> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PeriphClockSelection</span></span>
+                                          </i>parameter in <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">the
 
 
 
 
-                                              &nbsp;</span></span><span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">RCC_PeriphCLKInitTypeDef</span></span>
+                                              &nbsp;</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RCC_PeriphCLKInitTypeDef</span></span>
                                           structure to allow the
                                           possibility to output the
                                           PLLI2S on MCO without
-                                          activating the I2S or the SAI.</span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l34 level2
-                                        lfo94;tab-stops:list 1.0in"><span
-style="text-align:start;float:none;word-spacing:0px"><span
-                                            style="font-size:9.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New
-                                            Roman&quot;;color:#0C0C0C;background:white">__HAL_RCC_HSE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</span><span
-                                            style="font-size:9.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New
-                                            Roman&quot;;color:#626262;background:white">
-                                            &nbsp;</span></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">macro: add
-                                            the comment below:</span></i><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          activating the I2S or the SAI.</span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 9pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_HSE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</span><span style="font-size: 9pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                            &nbsp;</span></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">macro: add
+                                            the comment below:</span></i><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:1.25in">
-                                    <p class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto"><i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;*
+                                  <div style="margin-left: 1.25in;">
+                                    <p class="MsoNormal" style=""><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;*
 
 
 
@@ -39725,62 +8211,16 @@
 
                                           User should request a
                                           transition to HSE Off first
-                                          and then HSE On or HSE Bypass.</span></i><span
-                                        style="font-size:10.0pt"><o:p></o:p></span></p>
+                                          and then HSE On or HSE Bypass.</span></i><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                   </div>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l86 level2
-                                        lfo95;tab-stops:list 1.0in"><span
-style="text-align:start;float:none;word-spacing:0px"><span
-                                            style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New
-                                            Roman&quot;;color:#0C0C0C;background:
-                                            white">__HAL_RCC_LSE_<span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Helvetica&quot;,sans-serif">CONFIG(</span></span>)</span><span
-                                            style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New
-                                            Roman&quot;;color:#626262;background:
-                                            white"> &nbsp;</span></span><i><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">macro: add
-                                            the comment below:</span></i><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 9pt; font-family: &quot;Helvetica&quot;,sans-serif;">__HAL_RCC_LSE_<span class="grame"><span style="font-family: &quot;Helvetica&quot;,sans-serif;">CONFIG(</span></span>)</span><span style="font-size: 9pt; font-family: &quot;Helvetica&quot;,sans-serif;"> &nbsp;</span></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">macro: add
+                                            the comment below:</span></i><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:1.25in">
-                                    <p class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto"><i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;*
+                                  <div style="margin-left: 1.25in;">
+                                    <p class="MsoNormal" style=""><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;&nbsp;*
 
 
 
@@ -39793,674 +8233,97 @@
                                           *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                           User should request a
                                           transition to LSE Off first
-                                          and then LSE On or LSE Bypass.</span></i><span
-                                        style="font-size:10.0pt"><o:p></o:p></span></p>
+                                          and then LSE On or LSE Bypass.</span></i><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                   </div>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following new macros for
-                                          PLL&nbsp;source and PLLM&nbsp;<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">selection
+                                          PLL&nbsp;source and PLLM&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">selection
 
 
 
                                               :</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_PLL_PLLSOURCE_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_RCC_PLL_PLLM_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_PLL_PLLSOURCE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_PLL_PLLM_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)</span></i><i><span style=""><o:p></o:p></span></i></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Macros
-                                            rename:</span></i><i><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></i></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHS_FORCE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_FORCE_RESET()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHS_RELEASE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_RELEASE_RESET()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHS_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHS_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHSULPI_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_OTGHSULPI_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
-by&nbsp;HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Macros
+                                            rename:</span></i><i><span style=""><o:p></o:p></span></i></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHS_FORCE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_FORCE_RESET()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHS_RELEASE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_RELEASE_RESET()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHS_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHS_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHSULPI_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_OTGHSULPI_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
+by&nbsp;HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;__HAL_RCC_SYSCLK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CONFIG(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;__HAL_RCC_SYSCLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CONFIG(</span></span>)
                                           new macro to configure the
-                                          system clock source (SYSCLK)</span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_RCC_GET_SYSCLK_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)
-                                          updates:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new RCC
-                                            Literals:</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l64 level4
-                                            lfo96;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RCC_SYSCLKSOURCE_STATUS_HSI</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l64 level4
-                                            lfo96;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RCC_SYSCLKSOURCE_STATUS_HSE</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l64 level4
-                                            lfo96;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RCC_SYSCLKSOURCE_STATUS_PLLCLK</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l64 level4
-                                            lfo96;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RCC_SYSCLKSOURCE_STATUS_PLLRCLK</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                          system clock source (SYSCLK)</span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RCC_GET_SYSCLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)
+                                          updates:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new RCC
+                                            Literals:</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_SYSCLKSOURCE_STATUS_HSI</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_SYSCLKSOURCE_STATUS_HSE</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_SYSCLKSOURCE_STATUS_PLLCLK</span><span style=""><o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RCC_SYSCLKSOURCE_STATUS_PLLRCLK</span><span style=""><o:p></o:p></span></li>
                                         </ul>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;Update
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;Update
 
 
 
                                             macro description to refer
-                                            to the literals <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">above</span></span>
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            to the literals <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">above</span></span>
+                                          </span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          define PWR_WAKEUP_PIN2</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new API
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          define PWR_WAKEUP_PIN2</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new API
                                           to Control/Get VOS&nbsp;bits
-                                          of CR <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">register</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          of CR <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">register</span></span></span><span style=""><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                          level3 lfo96;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">ControlVoltageScaling(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="font-size:13.5pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                          level3 lfo96;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GetVoltageRange(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="font-size:13.5pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ControlVoltageScaling(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetVoltageRange(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                        level2 lfo96;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_PWR_</span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">
-                                          VOLTAGESCALING_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">CONFIG</span></span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): Implement
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_</span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">
+                                          VOLTAGESCALING_<span class="grame"><span style="font-family: &quot;Calibri&quot;,sans-serif;">CONFIG</span></span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): Implement
                                           workaround to cover VOS
                                           limitation delay when PLL is
                                           enabled after setting the VOS
-                                          configuration</span><span
-                                          style="-moz-background-clip:
-                                          initial;
-                                          -moz-background-origin:
-                                          initial;-moz-background-inline-policy:
-                                          initial;
-                                          background-position-x:0%;background-position-y:50%;background-attachment:
-
-
-
-
-                                          scroll"><span
-                                            style="text-align:start;float:none;word-spacing:0px"><span
-                                              style="font-size:10.0pt;font-family:&quot;Helvetica&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New
-                                              Roman&quot;;color:#020302;background:
-                                              #FCFCFC"> </span><span
-                                              style="mso-fareast-font-family:&quot;Times
-                                              New Roman&quot;"><o:p></o:p></span></span></span></li>
+                                          configuration</span><span style="background-attachment: scroll;"><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 10pt; font-family: &quot;Helvetica&quot;,sans-serif;"> </span><span style=""><o:p></o:p></span></span></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"></span>HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;"></span>HAL
-
-
-
-                                        GPIO </b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the new
+                                        GPIO </b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the new
                                           Alternate functions literals
                                           related to remap for <b><i>SPI,
 
 
 
                                               USART, I2C, SPDIFRX, CEC
-                                              and QSPI</i></b></span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:7.5pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New
-                                            Roman&quot;;mso-bidi-font-family:
-                                            Calibri">HAL_GPIO_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:7.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New
-                                            Roman&quot;;mso-bidi-font-family:Calibri">DeInit(</span></span><span
-                                          style="font-size:7.5pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New
-                                          Roman&quot;;mso-bidi-font-family:Calibri">):
+                                              and QSPI</i></b></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 7.5pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-size: 7.5pt; font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span><span style="font-size: 7.5pt; font-family: &quot;Verdana&quot;,sans-serif;">):
 
 
 
@@ -40468,2743 +8331,582 @@
                                           Pin x is already used in EXTI
                                           mode on another GPIO Port
                                           before De-Initialize the EXTI
-                                          register</span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">s</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          register</span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">s</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:#020302;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-style="text-align:start;float:none;word-spacing:0px"><span
-                                            style="font-size:9.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New
-                                            Roman&quot;;background:white">__HAL_FLASH_INSTRUCTION_CACHE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)
-                                            macro: update to&nbsp;<span
-                                              style="text-align:start;float:none;
-
-
-
-
-                                              word-spacing:0px"></span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">reset
-                                              &nbsp;</span><span
-                                              style="text-align:start;float:none;word-spacing:
-                                              0px">ICRST </span><span
-                                              style="text-align:start;float:none;
-                                              word-spacing:0px">bit in
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: rgb(2, 3, 2); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 9pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_FLASH_INSTRUCTION_CACHE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)
+                                            macro: update to&nbsp;<span style="text-align: start; float: none; word-spacing: 0px;"></span><span style="">reset
+                                              &nbsp;</span><span style="text-align: start; float: none; word-spacing: 0px;">ICRST </span><span style="text-align: start; float: none; word-spacing: 0px;">bit in
                                               the ACR register after
-                                              setting it.</span></span></span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:#050505;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:9.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New
-                                          Roman&quot;;color:#020302;background:white"><span
-style="text-align:start;float:none;word-spacing:0px">__HAL_FLASH_DATA_CACHE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)&nbsp;macro:
+                                              setting it.</span></span></span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: rgb(5, 5, 5); margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 9pt; font-family: &quot;Verdana&quot;,sans-serif;"><span style="text-align: start; float: none; word-spacing: 0px;">__HAL_FLASH_DATA_CACHE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)&nbsp;macro:
 
 
 
 
                                             update to&nbsp;reset
                                             &nbsp;DCRST bit in the ACR
-                                            register after setting it.</span></span><span
-                                          style="font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                            register after setting it.</span></span><span style="font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          ADC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           literal: ADC_SOFTWARE_START to
                                           be used as possible value for
-                                          the <span class="spelle"><i><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ExternalTrigConv</span></i></span>
-                                          parameter in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ADC_InitTypeDef</span></span>
+                                          the <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">ExternalTrigConv</span></i></span>
+                                          parameter in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ADC_InitTypeDef</span></span>
                                           structure to select the ADC
-                                          software trigger mode.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IS_ADC_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CHANNEL(</span></span>)
+                                          software trigger mode.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_ADC_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CHANNEL(</span></span>)
                                           macro update to don't assert
                                           stop the <i>ADC_CHANNEL_TEMPSENSOR</i>
-                                          value</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_ADC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PollForConversion(</span></span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          value</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">HAL_ADC_</span></span><span class="grame"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">PollForConversion(</span></span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">): update to
                                           manage particular case when
                                           ADC configured in DMA mode and
                                           ADC sequencer with several
                                           ranks and polling for end of
-                                          each conversion</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_ADC_Start</span></span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
+                                          each conversion</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">HAL_ADC_Start</span></span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">HAL_ADC_Start_</span></span><span class="grame"><span style="font-family: &quot;Calibri&quot;,sans-serif;">IT(</span></span>)
+                                          /<span class="spelle"><span style="font-family: &quot;Calibri&quot;,sans-serif;">HAL_ADC_Start_DMA</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">()/<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">HAL_ADC_Start_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">IT(</span></span>)
-                                          /<span class="spelle"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">HAL_ADC_Start_DMA</span></span>()
-
-
-
-
-                                          update:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">unlock the
+                                          update:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">unlock the
                                             process before starting the
-                                            ADC software conversion.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l64 level3
-                                          lfo96;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Optimize
-                                            the ADC stabilization <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Calibri&quot;,sans-serif">delays</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            ADC software conversion.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">Optimize
+                                            the ADC stabilization <span class="grame"><span style="font-family: &quot;Calibri&quot;,sans-serif;">delays</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_ADC_GET_IT_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Calibri&quot;,sans-serif">SOURCE(</span></span>)
-                                          update macro implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add more
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">__HAL_ADC_GET_IT_<span class="grame"><span style="font-family: &quot;Calibri&quot;,sans-serif;">SOURCE(</span></span>)
+                                          update macro implementation</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">Add more
                                           details in 'How to use this
-                                          driver' <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Calibri&quot;,sans-serif">section</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          driver' <span class="grame"><span style="font-family: &quot;Calibri&quot;,sans-serif;">section</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DAC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          DAC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                        level2 lfo96;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new macro
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new macro
                                           to check if the specified DAC
                                           interrupt source is enabled or
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">disabled</span></span><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">disabled</span></span><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                          level3 lfo96;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_DAC_GET_IT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)</span><span
-                                            style="font-size:13.5pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_DAC_GET_IT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                        level2 lfo96;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DACEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">TriangleWaveGeneration(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
-                                          use DAC CR bit mask definition</span><span
-                                          style="font-size:13.5pt;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l64
-
-
-
-                                        level2 lfo96;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DACEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NoiseWaveGeneration(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
-                                          use DAC CR bit mask definition</span><span
-                                          style="font-size:13.5pt;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TriangleWaveGeneration(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
+                                          use DAC CR bit mask definition</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoiseWaveGeneration(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
+                                          use DAC CR bit mask definition</span><span style="font-size: 13.5pt;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l64 level1
-                                      lfo96;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CanTxMsgTypeDef</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> structure:
-                                          update&nbsp;to use<b> </b>uint8_t&nbsp;<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Data[</span></span>8]
+                                          CAN </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CanTxMsgTypeDef</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> structure:
+                                          update&nbsp;to use<b> </b>uint8_t&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Data[</span></span>8]
 
 
 
 
                                           instead of
-                                          uint32_t&nbsp;Data[8]</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l64 level2
-                                        lfo96;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CanRxMsgTypeDef</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> structure:
-                                          update&nbsp;to use<b> </b>uint8_t&nbsp;<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Data[</span></span>8]<b>
+                                          uint32_t&nbsp;Data[8]</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CanRxMsgTypeDef</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> structure:
+                                          update&nbsp;to use<b> </b>uint8_t&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Data[</span></span>8]<b>
                                           </b>instead of
-                                          uint32_t&nbsp;Data[8]</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          uint32_t&nbsp;Data[8]</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                           use&nbsp;CMSIS mask definition
-                                          instead of hardcoded values (</span><span
-style="text-align:start;float:none;word-spacing:0px"><span
-                                            style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New
-                                            Roman&quot;;color:#070707;background:
-                                            white">EXTI_IMR_IM17,
-                                            EXTI_IMR_IM<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Helvetica&quot;,sans-serif">19..</span></span></span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          instead of hardcoded values (</span><span style="text-align: start; float: none; word-spacing: 0px;"><span style="font-size: 9pt; font-family: &quot;Helvetica&quot;,sans-serif;">EXTI_IMR_IM17,
+                                            EXTI_IMR_IM<span class="grame"><span style="font-family: &quot;Helvetica&quot;,sans-serif;">19..</span></span></span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LTDC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">LTDC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          LTDC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LTDC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           allow the drawing
                                           of&nbsp;partial bitmap in
-                                          active layer.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          active layer.</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          USART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_USART_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) fix USART
+                                          USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) fix USART
                                           baud rate&nbsp;configuration
                                           issue: USART baud rate is
-                                          twice Higher than expected</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          twice Higher than expected</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SMARTCARD </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_SMARTCARD_Transmit_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          SMARTCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMARTCARD_Transmit_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           force the disable for the ERR
                                           interrupt to avoid the OVR
-                                          interrupt</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_SMARTCARD_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IRQHandler(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)
+                                          interrupt</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMARTCARD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)
                                           update&nbsp;check condition
-                                          for&nbsp;transmission end </span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Clean up:
+                                          for&nbsp;transmission end </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Clean up:
                                           remove the&nbsp;following
                                           literals that aren't used in
-                                          smartcard <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD_PARITY_NONE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD_WORDLENGTH_8B</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD_STOPBITS_1</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCADR_STOPBITS_2</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          smartcard <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">SMARTCARD_PARITY_NONE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">SMARTCARD_WORDLENGTH_8B</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">SMARTCARD_STOPBITS_1</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">SMARTCADR_STOPBITS_2</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_SPI_Transmit_DMA()/HAL_SPI_Receive_DMA()/HAL_SPI_TarnsmitReceive_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
+                                          SPI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_Transmit_DMA()/HAL_SPI_Receive_DMA()/HAL_SPI_TarnsmitReceive_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
                                           update to unlock
                                           the&nbsp;process before
-                                          enabling the SPI peripheral</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_SPI_Transmit_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMA(</span></span><span
-                                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          enabling the SPI peripheral</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">HAL_SPI_Transmit_</span></span><span class="grame"><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">DMA(</span></span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,sans-serif;">) update to
                                           manage correctly the DMA RX
-                                          stream in SPI Full duplex mode</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Section
+                                          stream in SPI Full duplex mode</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Section
                                           SPI_Exported_Functions_Group2&nbsp;update
                                           to remove duplication in *.chm
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">UM</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UM</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRYP </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update to
-                                          manage <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">multi instance</span></span>:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
-                                            parameter Instance in the <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CRYP_HandleTypeDef</span></span>
-                                            Handle structure.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add new
+                                          CRYP </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
+                                          manage <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">multi instance</span></span>:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                            parameter Instance in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CRYP_HandleTypeDef</span></span>
+                                            Handle structure.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                             parameter in all HAL CRYP
-                                            macros</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l91 level4
-                                            lfo97;tab-stops:list 2.0in"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">example:&nbsp;__HAL_CRYP_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
+                                            macros</span><span style=""><o:p></o:p></span></li>
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">example:&nbsp;__HAL_CRYP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
                                               &nbsp;updated by
-                                              __HAL_CRYP_ENABLE(__HANDLE__)</span><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></li>
+                                              __HAL_CRYP_ENABLE(__HANDLE__)</span><span style=""><o:p></o:p></span></li>
                                         </ul>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DCMI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add an
+                                          DCMI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add an
                                           extension
                                           driver&nbsp;stm32f4xx_hal_dcmi_ex.c/h
                                           to manage the support of new
-                                          Black and White feature</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
+                                          Black and White feature</span><span style="">
                                           <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add <i>&nbsp;_</i></span></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">_weak</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> attribute
-                                          for <span class="spelle"><i><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DCMI_Init</span></i></span><i>()</i>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <i>&nbsp;_</i></span></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">_weak</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> attribute
+                                          for <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_Init</span></i></span><i>()</i>
                                           function and add a new
                                           implementation in the
                                           extension driver to manage the
                                           black and white configuration
                                           only available in the&nbsp;
-                                          STM32F446xx devices.</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">
+                                          STM32F446xx devices.</span><span style="">
                                           <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DCMI_InitTypeDef</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DCMI_InitTypeDef</span></span>
                                           structure to extension driver
                                           and add&nbsp;the
                                           following&nbsp;new fields
                                           related to black and white
-                                          feature: <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ByteSelectMode</span></span>,&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ByteSelectStart</span></span>,&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LineSelectMode</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">LineSelectStart</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          feature: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ByteSelectMode</span></span>,&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ByteSelectStart</span></span>,&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LineSelectMode</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LineSelectStart</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
-                                          support of LPM <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PCD_LPM_StateTypeDef</span></span>
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">enum</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">update <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PCD_HandleTypeDef</span></span>
+                                          PCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
+                                          support of LPM <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PCD_LPM_StateTypeDef</span></span>
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">enum</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PCD_HandleTypeDef</span></span>
                                             structure to support the LPM
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add new
+                                            functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCDEx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ActivateLPM(</span></span>),
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add new
-                                            functions <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCDEx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ActivateLPM(</span></span>),
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCDEx_DeActivateLPM</span></span>()
 
 
 
 
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCDEx_DeActivateLPM</span></span>()
-
-
-
-
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCDEx_LPM_Callback</span></span>()
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCDEx_LPM_Callback</span></span>()
 
 
 
 
                                             in the
                                             stm32f4xx_hal_pcd_ex.h/.c
-                                            files</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            files</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;
+                                            TIM</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">_TIM11_SPDIFRX
 
 
 
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;
-                                            TIM</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">_TIM11_SPDIFRX
-
-
-
-                                          define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          define</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          SAI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           stm32f4xx_hal_sai_ex.h/.c
-                                          files for the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">BlockSynchroConfig(</span></span>)
-                                          and the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SAI_GetInputClock</span></span>()
+                                          files for the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BlockSynchroConfig(</span></span>)
+                                          and the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_GetInputClock</span></span>()
 
 
 
 
-                                          management</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          management</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           defines HAL_SAI_ERROR_AFSDET,
                                           HAL_SAI_ERROR_LFSDET,
                                           HAL_SAI_ERROR_CNREADY,
                                           HAL_SAI_ERROR_WCKCFG,
-                                          HAL_SAI_ERROR_TIMEOUT in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_Error_Code</span></span>
-                                          group</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          HAL_SAI_ERROR_TIMEOUT in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_Error_Code</span></span>
+                                          group</span><span style=""> <o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           defines SAI_SYNCEXT_DISABLE,
                                           SAI_SYNCEXT_IN_ENABLE,
                                           SAI_SYNCEXT_OUTBLOCKA_ENABLE,
                                           SAI_SYNCEXT_OUTBLOCKB_ENABLE
                                           for the SAI External
-                                          synchronization </span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          synchronization </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           defines SAI_I2S_STANDARD,
                                           SAI_I2S_MSBJUSTIFIED,
                                           SAI_I2S_LSBJUSTIFIED,
                                           SAI_PCM_LONG and SAI_PCM_SHORT
-                                          for the SAI Supported protocol</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          for the SAI Supported protocol</span><span style=""> <o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           defines
                                           SAI_PROTOCOL_DATASIZE_16BIT,
                                           SAI_PROTOCOL_DATASIZE_16BITEXTENDED,
                                           SAI_PROTOCOL_DATASIZE_24BIT
                                           and
                                           SAI_PROTOCOL_DATASIZE_32BIT
-                                          for SAI protocol data <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">size</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add SAI
-                                          Callback prototype <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">definition</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_InitTypeDef</span></span>
+                                          for SAI protocol data <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">size</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add SAI
+                                          Callback prototype <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">definition</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_InitTypeDef</span></span>
                                           structure by adding new
-                                          fields: <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SynchroExt</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Mckdiv</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MonoStereoMode</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CompandingMode</span></span>,
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TriState</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SAI_HandleTypeDef</span></span>
-                                          structure:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">remove
-                                            uint16_t *<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">pTxBuffPtr</span></span>,
-                                            *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pRxBuffPtr</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TxXferSize</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RxXferSize</span></span>,
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TxXferCount</span></span>
-                                            and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">RxXferCount</span></span>
+                                          fields: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SynchroExt</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Mckdiv</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MonoStereoMode</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CompandingMode</span></span>,
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TriState</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_HandleTypeDef</span></span>
+                                          structure:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">remove
+                                            uint16_t *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pTxBuffPtr</span></span>,
+                                            *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pRxBuffPtr</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxXferSize</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxXferSize</span></span>,
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxXferCount</span></span>
+                                            and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxXferCount</span></span>
                                             and replace them
-                                            respectively by uint8_t *<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">pBuffPtr</span></span>,
-                                            uint16_t <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferSize</span></span>&nbsp;and
+                                            respectively by uint8_t *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pBuffPtr</span></span>,
+                                            uint16_t <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferSize</span></span>&nbsp;and
 
 
 
 
-                                            uint16_t <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">XferCount</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">mutecallback</span></span>
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">field</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">add struct
-                                            __<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">SAI_HandleTypeDef</span></span>
-                                            *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hsai</span></span> <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">field</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            uint16_t <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">XferCount</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mutecallback</span></span>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">field</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add struct
+                                            __<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SAI_HandleTypeDef</span></span>
+                                            *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hsai</span></span> <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">field</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
                                           SAI_CLKSOURCE_PLLR and
-                                          SAI_CLOCK_PLLSRC defines</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          SAI_CLKSOURCE_NA define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          SAI_CLOCK_PLLSRC defines</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          SAI_CLKSOURCE_NA define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           SAI_AUDIO_FREQUENCY_MCKDIV
-                                          define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          SAI_SPDIF_PROTOCOL define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          SAI_SYNCHRONOUS_EXT define</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          functions <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">InitProtocol(</span></span>),
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Abort</span></span>(),
 
 
 
-                                          New Roman&quot;">Add
-                                          SAI_SPDIF_PROTOCOL define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_EnableTxMuteMode</span></span>(),
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
 
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_DisableTxMuteMode</span></span>(),
 
 
-                                          mso-fareast-font-family:&quot;Times
 
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_EnableRxMuteMode</span></span>(),
 
-                                          New Roman&quot;">Add
-                                          SAI_SYNCHRONOUS_EXT define</span><span
-                                          style="mso-fareast-font-family:&quot;Times
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_DisableRxMuteMode</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Transmit(</span></span>),
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Receive</span></span>(),
 
 
 
-                                          New Roman&quot;">Add new
-                                          functions <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">InitProtocol(</span></span>),
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Transmit_IT</span></span>(),
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Abort</span></span>(),
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Receive_IT</span></span>(),
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_EnableTxMuteMode</span></span>(),
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Transmit_DMA</span></span>(),
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_DisableTxMuteMode</span></span>(),
 
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAI_Receive_DMA</span></span>()
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_EnableRxMuteMode</span></span>(),
 
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_DisableRxMuteMode</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Transmit(</span></span>),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Receive</span></span>(),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Transmit_IT</span></span>(),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Receive_IT</span></span>(),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Transmit_DMA</span></span>(),
-
-
-
-
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAI_Receive_DMA</span></span>()
-
-
-
-
-                                          functions to use<b> uint8_t *<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">pData</span></span>
-                                          </b>instead of <b>uint16_t *<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">pData</span></span>
+                                          functions to use<b> uint8_t *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pData</span></span>
+                                          </b>instead of <b>uint16_t *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pData</span></span>
                                             --&gt; This update is mainly
                                             impacting the compatibility
                                             with previous driver
-                                            version.</b></span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            version.</b></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          I2S </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Split the
+                                          I2S </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Split the
                                           following
                                           functions&nbsp;between Generic
                                           and Extended API based on full
                                           duplex management and add the
                                           attribute __weak in the
-                                          Generic <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">API</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_I2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>),
-
-
-
-
-                                            HAL_I2S_DMAPause(),&nbsp;HAL_I2S_DMAStop(),&nbsp;HAL_I2S_DMAResume(),&nbsp;HAL_I2S_IRQHandle()
-
-
-
-
-                                            <o:p></o:p></span></li>
+                                          Generic <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>),
+HAL_I2S_DMAPause(),&nbsp;HAL_I2S_DMAStop(),&nbsp;HAL_I2S_DMAResume(),&nbsp;HAL_I2S_IRQHandle()
+<o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move the
                                           following static functions
-                                          from generic to extension <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">driver</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l91 level3
-                                          lfo97;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;I2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMARxCplt(</span></span>)
-                                            and I2S_DMATxCplt()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          from generic to extension <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">driver</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMARxCplt(</span></span>)
+                                            and I2S_DMATxCplt()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove static
-                                          attribute from I2S_Transmit_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          and I2S_Receive_IT() functions</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Move I2<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SxEXT(</span></span>)
-                                          macro to extension file</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove static
+                                          attribute from I2S_Transmit_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          and I2S_Receive_IT() functions</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Move I2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SxEXT(</span></span>)
+                                          macro to extension file</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           I2S_CLOCK_PLLR and
                                           I2S_CLOCK_PLLSRC defines for
-                                          I2S clock <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">source</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          function I2S_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">GetInputClock(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          I2S clock <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">source</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          function I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetInputClock(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LL FMC </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WriteFifo</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">PageSize</span></span>
-                                          fields in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_InitTypeDef</span></span>
-                                          structure</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          LL FMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WriteFifo</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PageSize</span></span>
+                                          fields in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_InitTypeDef</span></span>
+                                          structure</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           FMC_PAGE_SIZE_NONE,
                                           FMC_PAGE_SIZE_128,
                                           FMC_PAGE_SIZE_256,
                                           FMC_PAGE_SIZE_1024,
                                           FMC_WRITE_FIFO_DISABLE,
-                                          FMC_WRITE_FIFO_ENABLE defines</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          FMC_WRITE_FIFO_ENABLE defines</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>),
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>),
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_DeInit</span></span>()
 
 
 
 
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_DeInit</span></span>()
-
-
-
-
-                                          and&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">FMC_NORSRAM_Extended_Timing_Init</span></span>()&nbsp;functions</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          and&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FMC_NORSRAM_Extended_Timing_Init</span></span>()&nbsp;functions</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l91 level1
-                                      lfo97;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LL USB </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USB_OTG_CfgTypeDef</span></span>
-                                          structure to support LPM, <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">lpm_enable</span></span>
-                                          field <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">added</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l91 level2
-                                        lfo97;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">USB_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HostInit(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">USB_DevInit</span></span>()
+                                          LL USB </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_OTG_CfgTypeDef</span></span>
+                                          structure to support LPM, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">lpm_enable</span></span>
+                                          field <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">added</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HostInit(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USB_DevInit</span></span>()
 
 
 
 
                                           functions to support the VBUS
-                                          Sensing B activation</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          Sensing B activation</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.2.0
 
 
 
-                                        New Roman&quot;;color:white">V1.2.0
-
-
-
-                                        / 26-December-2014</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l84 level1
-                                      lfo98;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Maintenance
+                                        / 26-December-2014</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Maintenance
 
 
 
                                           release to fix known defects
-                                          and enhancements <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          and enhancements <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span></b><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l117 level1
-                                      lfo99;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Macros
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Macros
 
 
 
                                           and literals renaming to
                                           ensure compatibles across
-                                          STM32 series</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">,
+                                          STM32 series</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">,
                                         backward compatibility
                                         maintained thanks to new added
                                         file <i>stm32_hal_legacy.h </i>under
 
 
 
-                                        /Inc/<span class="grame"><i><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Legacy</span></i></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l117 level1
-                                      lfo99;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
+                                        /Inc/<span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">Legacy</span></i></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                         *.chm UM for all drivers, a UM
-                                        is provided for each superset <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">RPN</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
+                                        is provided for each superset <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RPN</span></span></span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l117 level1
-                                      lfo99;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Update
-
-
-
-                                        drivers to be C++ <span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">compliant</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> <o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l117 level1
-                                      lfo99;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Several
+                                        drivers to be C++ <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">compliant</span></span></span><span style=""> <o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Several
 
 
 
                                         update on source code
                                         formatting, for better UM
-                                        generation (<span class="grame"><span
-                                            style="font-family:
-                                            &quot;Verdana&quot;,sans-serif">i.e.</span></span>
-                                        <span class="spelle"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">Doxygen</span></span>
-                                        tags updated)</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l117 level1
-                                      lfo99;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;">Two
+                                        generation (<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">i.e.</span></span>
+                                        <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Doxygen</span></span>
+                                        tags updated)</span><span style=""><o:p></o:p></span></li>
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Two
 
 
 
                                           changes done on the HAL
                                           requires an update on the
                                           application code based on HAL
-                                          V1.1.0</span></b><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l117 level2
-                                        lfo99;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">LSI_VALUE</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> constant has
+                                          V1.1.0</span></b><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LSI_VALUE</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> constant has
                                           been corrected in
                                           stm32f4xx_hal_conf.h file, its
-                                          value changed from 40 <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">KHz</span></span>
-                                          to 32 <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">KHz</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l117 level2
-                                        lfo99;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">UART</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">, <i>USART</i>,
+                                          value changed from 40 <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KHz</span></span>
+                                          to 32 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KHz</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UART</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">, <i>USART</i>,
                                           <i>IRDA</i> and <i>SMARTCARD
                                           </i>(referenced as <i>PPP</i>
                                           here below)<i> </i>drivers:
@@ -43214,376 +8916,83 @@
                                           ISR, <i>PPP</i> TC interrupt
                                           is used instead. Below the
                                           update to be done on user
-                                          application:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l117 level3
-                                          lfo99;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the USART IRQ in
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l117 level3
-                                          lfo99;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PPP_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_IRQHandler</span></span>()
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PPP_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_PPP_IRQHandler</span></span>()
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l112 level1
-                                      lfo100;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          generic</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">
-                                        update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          generic</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l65 level2
-                                        lfo101;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_def.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l65 level3
-                                          lfo101;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update NULL
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_def.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update NULL
                                             definition to fix C++
-                                            compilation <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">issue</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l65 level3
-                                          lfo101;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UNUSED(</span></span>)
-                                            macro</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l65
-
-
-
-                                          level3 lfo101;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a new
+                                            compilation <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">issue</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span>)
+                                            macro</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                             define __NOINLINE to be used
                                             for the&nbsp;no inline code
-                                            independent from tool <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">chain</span></span><o:p></o:p></span></li>
+                                            independent from tool <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">chain</span></span><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l65 level2
-                                        lfo101;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_conf_template.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l65 level3
-                                          lfo101;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">LSI_VALUE</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> constant
-                                            has been <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">corrected,</span></span>
-                                            its value changed from 40 <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">KHz</span></span>
-                                            to 32 <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">KHz</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_conf_template.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">LSI_VALUE</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> constant
+                                            has been <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">corrected,</span></span>
+                                            its value changed from 40 <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KHz</span></span>
+                                            to 32 <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">KHz</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update all
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update all
                                           macros and literals naming to
-                                          be <span class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">uper</span></span>
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">case</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ErrorCode</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> parameter in
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PPP_HandleTypeDef</span></span>
+                                          be <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">uper</span></span>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">case</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> parameter in
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PPP_HandleTypeDef</span></span>
                                           structure updated
                                           to&nbsp;uint32_t instead
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">enum</span></span> <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PPP_ErrorTypeDef</span></i></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">enum</span></span> <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PPP_ErrorTypeDef</span></i></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove&nbsp;the
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove&nbsp;the
-
-
-
-                                          unused FLAG and IT assert <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">macros</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          unused FLAG and IT assert <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">macros</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l128 level1
-                                      lfo102;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ADC&nbsp;</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          ADC&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l128
-
-
-
-                                        level2 lfo102;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix&nbsp;temperature
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix&nbsp;temperature
 
 
 
 
                                           sensor channel configuration
-                                          issue for STM32F427/437<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">xx
+                                          issue for STM32F427/437<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">xx
 
 
 
@@ -43592,3723 +9001,701 @@
 
 
 
-                                          devices</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          devices</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l128 level1
-                                      lfo102;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DAC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          DAC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l128
-
-
-
-                                        level2 lfo102;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DAC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigChannel(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update the
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DAC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigChannel(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update the
                                           access to the DAC peripheral
-                                          registers via the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">hdac</span></span>
-                                          handle instance</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DAC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IRQHandler(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          registers via the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hdac</span></span>
+                                          handle instance</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DAC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           check on both DAC_FLAG_DMAUDR1
-                                          and DAC_FLAG_DMAUDR2</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DACEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NoiseWaveGenerate(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          and DAC_FLAG_DMAUDR2</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NoiseWaveGenerate(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           reset DAC CR register before
                                           setting the new DAC
-                                          configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DACEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">TriangleWaveGenerate(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          configuration</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DACEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TriangleWaveGenerate(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           reset DAC CR register before
                                           setting the new DAC
-                                          configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          configuration</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l128 level1
-                                      lfo102;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CAN&nbsp;</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          CAN&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l128
-
-
-
-                                        level2 lfo102;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Unlock the
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Unlock the
                                           CAN process when communication
-                                          error <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">occurred</span></span><o:p></o:p></span></li>
+                                          error <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">occurred</span></span><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l128 level1
-                                      lfo102;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CORTEX&nbsp;</span></b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l128 level2
-                                        lfo102;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new macro
-                                          <i>IS_NVIC_DEVICE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQ(</span></span>)</i>
+                                          CORTEX&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new macro
+                                          <i>IS_NVIC_DEVICE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQ(</span></span>)</i>
                                           to check on negative values of
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQn</span></span>
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQn</span></span>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL CRYP&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l90 level2
-                                        lfo103;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CRYP_DESECB_Decrypt_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMA(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): fix the
-                                          inverted <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pPlainData</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">pCypherData</span></span>
-                                          parameters issue</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l90 level2
-                                        lfo103;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CRYPEx_GCMCCM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetInitVector(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): remove
-                                          the&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">IVSize</span></span>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL CRYP&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYP_DESECB_Decrypt_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): fix the
+                                          inverted <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pPlainData</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">pCypherData</span></span>
+                                          parameters issue</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CRYPEx_GCMCCM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetInitVector(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): remove
+                                          the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IVSize</span></span>
                                           parameter as the key length
                                           192bits and 256bits are not
-                                          supported by this version</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l90 level2
-                                        lfo103;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;restriction&nbsp;for
+                                          supported by this version</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;restriction&nbsp;for
 
 
 
 
                                           the CCM Encrypt/Decrypt API's
-                                          that</span><span
-                                          style="font-size:
-                                          10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New
-                                          Roman&quot;;color:red"> </span><span
-                                          style="font-size:10.0pt;
-                                          font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">only <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DataType</span></span>
-                                          equal to 8bits is <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">supported</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l90 level2
-                                        lfo103;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_CRYPEx_AESGCM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Finish(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">):</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l90 level3
-                                          lfo103;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add&nbsp;restriction
+                                          that</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">only <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DataType</span></span>
+                                          equal to 8bits is <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">supported</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_CRYPEx_AESGCM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Finish(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;restriction
 
 
 
 
                                             that the implementation is
                                             limited to 32bits inputs
-                                            data <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">length&nbsp; (</span></span>Plain/Cyphertext,
+                                            data <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">length&nbsp; (</span></span>Plain/Cyphertext,
 
 
 
-                                            Header) compared with GCM <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">stadards</span></span>
-                                            specifications (800-38D)</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l90 level3
-                                          lfo103;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update Size
+                                            Header) compared with GCM <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">stadards</span></span>
+                                            specifications (800-38D)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update Size
                                             parameter on 32bits instead
-                                            of 16bits</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l90 level3
-                                          lfo103;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Fix issue
+                                            of 16bits</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix issue
                                             with 16-bit Data Type:
-                                            update to use intrinsic __<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ROR(</span></span>)
-                                            instead of __REV16()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            update to use intrinsic __<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ROR(</span></span>)
+                                            instead of __REV16()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL DCMI </span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL DCMI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
                                   <ul type="square">
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l53
-
-
-
-                                        level2 lfo104;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DCMI_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigCROP(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): Invert
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DCMI_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigCROP(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): Invert
                                           assert macros to check Y0 and
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Ysize</span></span>
-                                          parameters</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Ysize</span></span>
+                                          parameters</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL DMA </span></b><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL DMA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
                                   <ul type="square">
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l42
-
-
-
-                                        level2 lfo105;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_DMA_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">):&nbsp;Update&nbsp;to
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):&nbsp;Update&nbsp;to
 
 
 
 
                                           clear&nbsp;the DBM bit in the
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SxCR</span></span>
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SxCR</span></span>
                                           register before setting the
-                                          new configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l42 level2
-                                        lfo105;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMA_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">):
+                                          new configuration</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):
                                           add&nbsp;to clear&nbsp;the DBM
-                                          bit in the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SxCR</span></span>
-                                          register</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          bit in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SxCR</span></span>
+                                          register</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL FLASH </span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add "HAL_"
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add "HAL_"
                                           prefix in the defined values
-                                          for the FLASH error <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">code</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Example:&nbsp;<i>FLASH_ERROR_PGP</i>
-                                            renamed by&nbsp;<b><i>HAL_</i></b><i>FLASH_ERROR_PGP</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          for the FLASH error <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">code</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Example:&nbsp;<i>FLASH_ERROR_PGP</i>
+                                            renamed by&nbsp;<b><i>HAL_</i></b><i>FLASH_ERROR_PGP</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Clear&nbsp;the
 
 
 
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Clear&nbsp;the
-
-
-
-                                          Flash <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
-                                          in the <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WaitForLastOperation(</span></span>)
-                                          function</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLASH_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SetErrorCode(</span></span>)
+                                          Flash <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
+                                          in the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WaitForLastOperation(</span></span>)
+                                          function</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SetErrorCode(</span></span>)
                                           function to use&nbsp;"|="
-                                          operant to update the Flash <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ErrorCode</span></span>
-                                          parameter in the FLASH handle</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IS_FLASH_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ADDRESS(</span></span>)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: Update the
+                                          operant to update the Flash <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ErrorCode</span></span>
+                                          parameter in the FLASH handle</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_FLASH_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ADDRESS(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: Update the
                                           macro check using&nbsp;'&lt;='
-                                          condition instead of '&lt;'</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IS_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">OPTIONBYTE(</span></span>)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: Update the
+                                          condition instead of '&lt;'</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OPTIONBYTE(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: Update the
                                           macro check using&nbsp;'&lt;='
-                                          condition instead of '&lt;'</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;"FLASH_"
+                                          condition instead of '&lt;'</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;"FLASH_"
 
 
 
 
                                           prefix in the defined values
                                           of FLASH Type Program
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Example:&nbsp;<i>TYPEPROGRAM_BYTE</i>
-                                            renamed by <b><i>FLASH_</i></b><i>TYPEPROGRAM_BYTE</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Example:&nbsp;<i>TYPEPROGRAM_BYTE</i>
+                                            renamed by <b><i>FLASH_</i></b><i>TYPEPROGRAM_BYTE</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;"FLASH_"
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;"FLASH_"
 
 
 
 
                                           prefix in the defined values
-                                          of FLASH Type Erase parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Example:&nbsp;<i>TYPEERASE_SECTORS</i>
-                                            renamed by <b><i>FLASH_</i></b><i>TYPEERASE_SECTORS</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          of FLASH Type Erase parameter</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Example:&nbsp;<i>TYPEERASE_SECTORS</i>
+                                            renamed by <b><i>FLASH_</i></b><i>TYPEERASE_SECTORS</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;"FLASH_"
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;"FLASH_"
 
 
 
 
                                           prefix in the defined values
                                           of FLASH Voltage Range
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Example: <i>VOLTAGE_RANGE_1</i>
-                                            renamed by <b><i>FLASH_</i></b><i>VOLTAGE_RANGE_1</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Example: <i>VOLTAGE_RANGE_1</i>
+                                            renamed by <b><i>FLASH_</i></b><i>VOLTAGE_RANGE_1</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;"OB_"
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;"OB_"
 
 
 
 
                                           prefix in the defined values
-                                          of FLASH WRP State parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Example: <i>WRPSTATE_ENABLE</i>
-                                            renamed by <b><i>OB_</i></b><i>WRPSTATE_ENABLE</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          of FLASH WRP State parameter</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Example: <i>WRPSTATE_ENABLE</i>
+                                            renamed by <b><i>OB_</i></b><i>WRPSTATE_ENABLE</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;"OB_"
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;"OB_"
 
 
 
 
                                           prefix in the defined values
                                           of the FLASH PCROP State
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PCROPSTATE_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE</span></span></span></i><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">&nbsp;
-                                              updated</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> by <b><i>OB_</i></b><i>PCROP<b>_</b>STATE_DISABLE</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PCROPSTATE_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE</span></span></span></i><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">
-                                              &nbsp;updated</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;by <b><i>OB_</i></b><i>PCROP<b>_</b>STATE_ENABLE</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PCROPSTATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE</span></span></span></i><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
+                                              updated</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> by <b><i>OB_</i></b><i>PCROP<b>_</b>STATE_DISABLE</i></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PCROPSTATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE</span></span></span></i><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                              &nbsp;updated</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;by <b><i>OB_</i></b><i>PCROP<b>_</b>STATE_ENABLE</i></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l47 level2
-                                        lfo106;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Change
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Change
                                             "OBEX" prefix by
                                             "OPTIONBYTE" prefix in these
-                                            defines:</span></i><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            defines:</span></i><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">OBEX_PCROP
 
 
 
-
-                                              mso-fareast-font-family:&quot;Times
+                                              by OPTIONBYTE_PCROP&nbsp;</span></i><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">OBEX_BOOTCONFIG
 
 
 
-                                              New Roman&quot;">OBEX_PCROP
-
-
-
-                                              by OPTIONBYTE_PCROP&nbsp;</span></i><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l47 level3
-                                          lfo106;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">OBEX_BOOTCONFIG
-
-
-
-                                              by OPTIONBYTE_BOOTCONFIG</span></i><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                              by OPTIONBYTE_BOOTCONFIG</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL ETH </span></b><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l43 level2
-                                        lfo107;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix macros
-                                          naming <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">typo</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL ETH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix macros
+                                          naming <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">typo</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="disc">
-                                      <ul style="margin-top:0in"
-                                        type="disc">
-                                        <li class="MsoNormal"
-                                          style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                          mso-list:l103 level3
-                                          lfo108;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_ETH_EXTI_SET_RISING_E<b>GD</b>E_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="disc">
+                                      <ul style="margin-top: 0in;" type="disc">
+                                        <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_ETH_EXTI_SET_RISING_E<b>GD</b>E_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)
                                             by
                                             __HAL_ETH_EXTI_SET_RISING_E<b>DG</b>E_TRIGGER()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                          mso-list:l103 level3
-                                          lfo108;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            __HAL_ETH_EXTI_SET_FALLING_E<b>GD</b>E_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)
+                                        <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            __HAL_ETH_EXTI_SET_FALLING_E<b>GD</b>E_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)
 by&nbsp;__HAL_ETH_EXTI_SET_FALLING_E<b>DG</b>E_TRIGGER() <o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL PWR&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l31 level2
-                                        lfo109;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new API
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL PWR&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new API
                                           to manage SLEEPONEXIT and
-                                          SEVONPEND bits of SCR <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">register</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          SEVONPEND bits of SCR <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">register</span></span></span><span style=""><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l31
-
-
-
-                                          level3 lfo109;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DisableSleepOnExit(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l31
-
-
-
-                                          level3 lfo109;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableSleepOnExit(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l31
-
-
-
-                                          level3 lfo109;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">EnableSEVOnPend(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l31
-
-
-
-                                          level3 lfo109;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DisableSEVOnPend(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableSleepOnExit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableSleepOnExit(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableSEVOnPend(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableSEVOnPend(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l31 level2
-                                        lfo109;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PWR_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">EnterSTOPMode(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l31 level3
-                                          lfo109;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update&nbsp;to
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnterSTOPMode(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;to
 
 
 
                                             clear the CORTEX SLEEPDEEP
                                             bit of&nbsp;SCR register
-                                            before entering in sleep <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">mode</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l31 level3
-                                          lfo109;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            usage of __<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)
+                                            before entering in sleep <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            usage of __<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)
                                             in low power entry function:
                                             if there is a pending event,
                                             calling __WFE() will not
                                             enter the CortexM4 core to
                                             sleep mode. The solution is
                                             to made the call below; the
-                                            first __<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)
+                                            first __<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)
                                             is always ignored and clears
                                             the event if one was already
                                             pending, the second is
-                                            always applied</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            always applied</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:1.25in">
-                                    <p class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__SEV()</span><span
-                                        style="font-size:10.0pt"><br>
-                                      </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__WFE()</span><span
-                                        style="font-size:10.0pt"><br>
-                                      </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__<span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)</span><span
-                                        style="font-size:10.0pt"><o:p></o:p></span></p>
+                                  <div style="margin-left: 1.25in;">
+                                    <p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SEV()</span><span style="font-size: 10pt;"><br>
+                                      </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__WFE()</span><span style="font-size: 10pt;"><br>
+                                      </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                   </div>
                                   <ul type="square">
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l137
-
-
-
-                                        level2 lfo110;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          new&nbsp;PVD configuration <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">modes</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          new&nbsp;PVD configuration <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">modes</span></span><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PWR_PVD_MODE_NORMAL</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PWR_PVD_MODE_EVENT_RISING&nbsp;</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PWR_PVD_MODE_EVENT_FALLING</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PWR_PVD_MODE_EVENT_RISING_FALLING</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PWR_PVD_MODE_NORMAL</span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PWR_PVD_MODE_EVENT_RISING&nbsp;</span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PWR_PVD_MODE_EVENT_FALLING</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PWR_PVD_MODE_EVENT_RISING_FALLING</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l137
-
-
-
-                                        level2 lfo110;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          macros to manage PVD <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Trigger</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          macros to manage PVD <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Trigger</span></span><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_ENABLE_RISING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_DISABLE_RISING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span></span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_ENABLE_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_DISABLE_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_ENABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_DISABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span></span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_ENABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_DISABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style="font-size: 10pt;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l137
-
-
-
-                                        level2 lfo110;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">PVD macros:<o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PVD macros:<o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
-                                            __EXTILINE__ parameter</span><span
-                                            style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                          auto;mso-list:l137 level3
-                                          lfo110;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update to
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
+                                            __EXTILINE__ parameter</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update to
                                             use prefix "__HAL_PWR_PVD_"
-                                            instead <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">of &nbsp;prefix</span></span>
-                                            "__HAL_PVD"</span><span
-                                            style="font-size:10.0pt;
-                                            mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            instead <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">of &nbsp;prefix</span></span>
+                                            "__HAL_PVD"</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PVDConfig(</span></span>)
+                                          by&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_ConfigPVD</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ActivateOverDrive(</span></span>)
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_EnableOverDrive</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PVDConfig(</span></span>)
-                                          by&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWR_ConfigPVD</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeactivateOverDrive(</span></span>)
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_DisableOverDrive</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ActivateOverDrive(</span></span>)
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_EnableOverDrive</span></span>()
-
-
-
-
-                                        </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeactivateOverDrive(</span></span>)
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_DisableOverDrive</span></span>()
-
-
-
-
-                                        </span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                        </span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l133 level1
-                                      lfo111;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          GPIO </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          GPIO </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l133
-
-
-
-                                        level2 lfo111;tab-stops: list
-                                        1.0in"><span class="spelle"><i><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_GPIO_Init</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">()/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_GPIO_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DeInit(</span></span>):</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> add a call
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_Init</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeInit(</span></span>):</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> add a call
                                           to the CMSIS&nbsp;assert macro
                                           to check GPIO instance:
-                                          IS_GPIO_ALL_INSTANCE()&nbsp;</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_GPIO_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">WritePin(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">):</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update to
-                                          write&nbsp;in BSRR register</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <i>GPIO_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)
+                                          IS_GPIO_ALL_INSTANCE()&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">WritePin(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update to
+                                          write&nbsp;in BSRR register</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <i>GPIO_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)
                                           </i>by<i> GET_GPIO_INDEX() </i>and
 
 
 
                                           move this later to file&nbsp;
-                                          stm32f4xx_hal_gpio_ex.h</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          stm32f4xx_hal_gpio_ex.h</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           define for alternate function<i>
                                             GPIO_AF5_SPI3</i> for
                                           STM32F429xx/439xx and
-                                          STM32F427xx/437xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          STM32F427xx/437xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l133 level1
-                                      lfo111;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          HASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_HASH_MD5_Start_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>):
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_HASH_MD5_Start_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>):
-
-
-
-
-                                          </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">fix input
-                                          address management issue</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">fix input
+                                          address management issue</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l133 level1
-                                      lfo111;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename the
-                                          following <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">Macros</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)&nbsp;
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename the
+                                          following <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Macros</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)&nbsp;
 
 
 
 
                                             by
-                                            __HAL_RCC_PPP_CLK_ENABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_CLK_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)&nbsp;
+                                            __HAL_RCC_PPP_CLK_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_CLK_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)&nbsp;
 
 
 
 
                                             by
-                                            __HAL_RCC_PPP_CLK_DISABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_FORCE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)&nbsp;
+                                            __HAL_RCC_PPP_CLK_DISABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_FORCE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)&nbsp;
 
 
 
 
                                             by
-                                            __HAL_RCC_PPP_FORCE_RESET()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_RELEASE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">RESET(</span></span>)&nbsp;
+                                            __HAL_RCC_PPP_FORCE_RESET()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_RELEASE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RESET(</span></span>)&nbsp;
 
 
 
 
                                             by
-                                            __HAL_RCC_PPP_RELEASE_RESET()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
+                                            __HAL_RCC_PPP_RELEASE_RESET()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
                                             by
-                                            __HAL_RCC_PPP_CLK_SLEEP_ENABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__PPP_CLK_SLEEP_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
+                                            __HAL_RCC_PPP_CLK_SLEEP_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__PPP_CLK_SLEEP_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
                                             by
-                                            __HAL_RCC_PPP_CLK_SLEEP_DISABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            __HAL_RCC_PPP_CLK_SLEEP_DISABLE()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IS_RCC_PLLSAIN_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">VALUE(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_RCC_PLLSAIN_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VALUE(</span></span>)
                                           macro: update the check
-                                          condition</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          description of RCC known <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Limitations</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">C<b>C</b>SCallback(</span></span>)
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_C<b>S</b>SCallback</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RCC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">OscConfig(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) fix
-                                          issues:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
+                                          condition</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          description of RCC known <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Limitations</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">C<b>C</b>SCallback(</span></span>)
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_C<b>S</b>SCallback</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">OscConfig(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) fix
+                                          issues:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                             disable of HSE
                                             oscillator&nbsp;when
                                             HSE_BYPASS is&nbsp;used as
                                             system clock source or as
-                                            PPL clock <span
-                                              class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">source</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l133 level3
-                                          lfo111;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a check
+                                            PPL clock <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">source</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a check
                                             on HSERDY flag
                                             when&nbsp;HSE_BYPASS is
                                             selected as new state
-                                            for&nbsp;HSE oscillator.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            for&nbsp;HSE oscillator.</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l133 level2
-                                        lfo111;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          __HAL_RCC_I2<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SCLK(</span></span>)
-                                          by __HAL_RCC_I2S_Config()</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          __HAL_RCC_I2<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SCLK(</span></span>)
+                                          by __HAL_RCC_I2S_Config()</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL I2S&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l48 level2
-                                        lfo112;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_I2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: add check
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL I2S&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: add check
                                           on I2S instance
-                                          using&nbsp;CMSIS macro <i>IS_I2S_ALL_INSTANCE()&nbsp;</i></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l48 level2
-                                        lfo112;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">HAL_I2S_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                          update for compliancy w/ C++</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l48 level2
-                                        lfo112;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_I2S_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">OVRFLAG(</span></span>)
+                                          using&nbsp;CMSIS macro <i>IS_I2S_ALL_INSTANCE()&nbsp;</i></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                          update for compliancy w/ C++</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_I2S_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OVRFLAG(</span></span>)
                                           and __HAL_I2S_CLEAR_UDRFLAG()
-                                          macro for compliancy with C++</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l48 level2
-                                        lfo112;tab-stops:list 1.0in"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_I2S_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetError(</span></span>)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: update to
+                                          macro for compliancy with C++</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_I2S_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetError(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: update to
                                           return uint32_t instead of
                                           HAL_I2S_ErrorTypeDef
-                                          enumeration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          enumeration</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL I2C&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update&nbsp;to
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL I2C&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update&nbsp;to
 
 
 
 
                                           clear&nbsp;the POS bit in the
                                           CR1 register at the end
-                                          of&nbsp;HAL_I2C_Master_Read_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          of&nbsp;HAL_I2C_Master_Read_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           and HAL_I2C_Mem_Read_IT()
-                                          process</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          HAL_I2CEx_DigitalFilter_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">Config(</span></span>)&nbsp;
+                                          process</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          HAL_I2CEx_DigitalFilter_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Config(</span></span>)&nbsp;
 
 
 
                                           by
                                           HAL_I2CEx_ConfigDigitalFilter()
-                                        </span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          HAL_I2CEx_AnalogFilter_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">Config(</span></span>)&nbsp;
+                                        </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          HAL_I2CEx_AnalogFilter_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Config(</span></span>)&nbsp;
 
 
 
                                           by
                                           HAL_I2CEx_ConfigAnalogFilter()
-                                        </span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_I2C_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ADDRFLAG(</span></span>)
+                                        </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_I2C_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ADDRFLAG(</span></span>)
                                           and __HAL_I2C_CLEAR_STOPFLAG()
                                           macro for&nbsp;compliancy with
-                                          C++</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          C++</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l132 level1
-                                      lfo113;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IrDA </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">DMA transmit
+                                          IrDA </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under DMA ISR, IrDA TC
                                           interrupt is used instead.
                                           Below the update to be done on
-                                          user application:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          user application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the USART IRQ in
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UASRTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_IRQHandler</span></span>()
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UASRTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_IRDA_IRQHandler</span></span>()
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IT transmit
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under IRDA ISR, IrDA TC
                                           interrupt is used instead. No
-                                          impact on user application</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          Macros: add prefix "__HAL"</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__IRDA_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
-                                            by __HAL_IRDA_ENABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__IRDA_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
-                                            by __HAL_IRDA_DISABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          impact on user application</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          Macros: add prefix "__HAL"</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__IRDA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
+                                            by __HAL_IRDA_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__IRDA_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
+                                            by __HAL_IRDA_DISABLE()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new user
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new user
                                           macros to manage the sample
-                                          method <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_IRDA_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_IRDA_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          method <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IRDA_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IRDA_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_IRDA_Transmit_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">): </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_Transmit_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           remove the enable of the
-                                          parity error interrupt</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_IRDA_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)
+                                          parity error interrupt</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_IRDA_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)
                                           macro for&nbsp;compliancy with
-                                          C++</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_</span></i></span><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IRDA<i>_Transmit_</i></span></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DMA(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                          C++</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></i></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IRDA<i>_Transmit_</i></span></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           follow the
                                           right&nbsp;procedure
                                           "Transmission using DMA"&nbsp;
-                                          in the reference manual</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add clear
+                                          in the reference manual</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clear
                                             the TC flag in the SR
                                             register before enabling the
-                                            DMA&nbsp;<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">transmit</span></span>
-                                            request</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transmit</span></span>
+                                            request</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l132 level1
-                                      lfo113;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
+                                          IWDG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename the
+                                          defined IWDG keys:&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">KR_KEY_RELOAD
 
 
 
-                                          IWDG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
+                                            by IWDG_KEY_RELOAD</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">KR_KEY_ENABLE
 
 
 
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename the
-                                          defined IWDG keys:&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">KR_KEY_RELOAD
-
-
-
-                                            by IWDG_KEY_RELOAD</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">KR_KEY_ENABLE
-
-
-
-                                            by IWDG_KEY_ENABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">KR_KEY_EWA
+                                            by IWDG_KEY_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">KR_KEY_EWA
                                             by
-                                            IWDG_KEY_WRITE_ACCESS_ENABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l132 level3
-                                          lfo113;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">KR_KEY_DWA
+                                            IWDG_KEY_WRITE_ACCESS_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">KR_KEY_DWA
                                             by
-                                            IWDG_KEY_WRITE_ACCESS_DISABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            IWDG_KEY_WRITE_ACCESS_DISABLE</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;</span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="">&nbsp;</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros
-                                          __HAL_IWDG_RESET_HANDLE_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">STATE(</span></span>)
+                                          __HAL_IWDG_RESET_HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STATE(</span></span>)
                                           and
-                                          __HAL_IWDG_CLEAR_FLAG()&nbsp;</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l132 level2
-                                        lfo113;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          __HAL_IWDG_ENABLE_WRITE_<span
-                                            class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">ACCESS(</span></span>)
+                                          __HAL_IWDG_CLEAR_FLAG()&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          __HAL_IWDG_ENABLE_WRITE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ACCESS(</span></span>)
                                           and
                                           __HAL_IWDG_DISABLE_WRITE_ACCESS()
-                                          as private macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          as private macro</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL SPI&nbsp;</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l102 level2
-                                        lfo114;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_SPI_TransmitReceive_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMA(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL SPI&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_TransmitReceive_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           remove the &nbsp;DMA Tx Error
                                           Callback initialization when
-                                          SPI <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">RxOnly</span></span>
-                                          mode is selected</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l102 level2
-                                        lfo114;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use of <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">UNUSED(</span></span><span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>)
+                                          SPI <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxOnly</span></span>
+                                          mode is selected</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UNUSED(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>)
                                           in __HAL_SPI_CLEAR_MODFFLAG(),
                                           __HAL_SPI_CLEAR_OVRFLAG(),
                                           __HAL_SPI_CLEAR_FREFLAG() to
                                           fix "Unused variable" warning
-                                          with <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">TrueSTUDIO</span></span>.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l102 level2
-                                        lfo114;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          with <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TrueSTUDIO</span></span>.</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           Literals: remove "D" from
-                                          "DISABLED" and "ENABLED"</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l102 level3
-                                          lfo114;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          "DISABLED" and "ENABLED"</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SPI_TIMODE_DISABLE<b>D</b>&nbsp;by
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SPI_TIMODE_DISABLE<b>D</b>&nbsp;by
+                                            SPI_TIMODE_DISABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SPI_TIMODE_ENABLE<b>D</b>&nbsp;by&nbsp;SPI_TIMODE_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SPI_CRCCALCULATION_DISABLE<b>D</b>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">by
 
 
 
 
-                                            SPI_TIMODE_DISABLE</span><span
-                                            style="mso-fareast-font-family:
+                                                &nbsp;SPI</span></span>_CRCCALCULATION_DISABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SPI_CRCCALCULATION_ENABLE<b>D</b>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">by
 
 
 
 
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l102 level3
-                                          lfo114;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SPI_TIMODE_ENABLE<b>D</b>&nbsp;by&nbsp;SPI_TIMODE_ENABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l102 level3
-                                          lfo114;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SPI_CRCCALCULATION_DISABLE<b>D</b>
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">by
-
-
-
-
-                                                &nbsp;SPI</span></span>_CRCCALCULATION_DISABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l102 level3
-                                          lfo114;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SPI_CRCCALCULATION_ENABLE<b>D</b>
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">by
-
-
-
-
-                                                &nbsp;SPI</span></span>_CRCCALCULATION_ENABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                                &nbsp;SPI</span></span>_CRCCALCULATION_ENABLE</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l102 level2
-                                        lfo114;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_SPI_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">MODFFLAG(</span></span>),
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_SPI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MODFFLAG(</span></span>),
 
 
 
@@ -47316,1757 +9703,290 @@
                                           __HAL_SPI_CLEAR_FREFLAG() and
                                           __HAL_SPI_CLEAR_OVRFLAG()
                                           macros for&nbsp;compliancy
-                                          with C++</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          with C++</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL SDMMC </span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL SDMMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update</span><span style="color: black;"><o:p></o:p></span></p>
                                   <ul type="square">
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l20
-
-
-
-                                        level2 lfo115;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IS_SDIO_ALL_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">INSTANCE(</span></span>)
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IS_SDIO_ALL_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">INSTANCE(</span></span>)
                                           &nbsp;macro moved to CMSIS
-                                          files</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          files</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l20 level1
-                                      lfo115;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          LTDC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          LTDC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l20
-
-
-
-                                        level2 lfo115;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_LTDC_ConfigCLUT</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: optimize
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_LTDC_ConfigCLUT</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: optimize
                                           the function when pixel format
-is&nbsp;LTDC_PIXEL_FORMAT_AL44&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update the
+is&nbsp;LTDC_PIXEL_FORMAT_AL44&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                             size of color look up table
                                             to 16 instead of 256 when
                                             the&nbsp;pixel format
                                             is&nbsp;LTDC_PIXEL_FORMAT_AL44
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          </span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l20 level1
-                                      lfo115;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NAND </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename NAND
-                                          Address structure to <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">NAND_AddressType<b>D</b>ef</span></span>
-                                          instead of <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">NAND_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">AddressTypedef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the
-                                          used algorithm of these <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functions</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_NAND_Read_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Page(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_NAND_Write_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Page(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_NAND_Read_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SpareArea(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_NAND_Write_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SpareArea(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          NAND </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename NAND
+                                          Address structure to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NAND_AddressType<b>D</b>ef</span></span>
+                                          instead of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NAND_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AddressTypedef</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
+                                          used algorithm of these <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functions</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Read_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Page(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Write_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Page(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Read_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SpareArea(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Write_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SpareArea(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l20
-
-
-
-                                        level2 lfo115;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_NAND_Write_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Page(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): move
-                                          initialization of <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">tickstart</span></span>
-                                          before while loop</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_NAND_Erase_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Block(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): add <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">whait</span></span>
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Write_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Page(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): move
+                                          initialization of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tickstart</span></span>
+                                          before while loop</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NAND_Erase_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Block(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): add <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">whait</span></span>
                                           until NAND status is ready
-                                          before exiting this function</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          before exiting this function</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l20 level1
-                                      lfo115;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NOR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          NOR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l20
-
-
-
-                                        level2 lfo115;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename NOR
-                                          Address structure to <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">NOR_AddressType<b>D</b>ef</span></span>
-                                          instead of <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">NOR_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">AddressTypedef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">NOR Status
-                                          literals <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">renamed</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NOR_SUCCESS
-                                            by HAL_NOR_STATUS_SUCCESS</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NOR_ONGOING
-                                            by HAL_NOR_STATUS_ONGOING</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NOR_ERROR
-                                            by HAL_NOR_STATUS_ERROR</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">NOR_TIMEOUT
-                                            by HAL_NOR_STATUS_TIMEOUT</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename NOR
+                                          Address structure to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NOR_AddressType<b>D</b>ef</span></span>
+                                          instead of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NOR_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">AddressTypedef</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NOR Status
+                                          literals <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">renamed</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NOR_SUCCESS
+                                            by HAL_NOR_STATUS_SUCCESS</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NOR_ONGOING
+                                            by HAL_NOR_STATUS_ONGOING</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NOR_ERROR
+                                            by HAL_NOR_STATUS_ERROR</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">NOR_TIMEOUT
+                                            by HAL_NOR_STATUS_TIMEOUT</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l20
-
-
-
-                                        level2 lfo115;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_NOR_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">GetStatus(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_NOR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetStatus(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           fix Timeout issue
                                           and&nbsp;exit from waiting
-                                          loop when timeout occurred</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          loop when timeout occurred</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l20 level1
-                                      lfo115;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCCARD </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename PCCARD
-                                          Address structure to <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCCARD_StatusType<b>D</b>ef</span></span>
-                                          instead of&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">CF_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">StatusTypedef</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">PCCARD Status
-                                          literals <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">renamed</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CF_SUCCESS
-                                            by HAL_PCCARD_STATUS_SUCCESS</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CF_ONGOING
-                                            by HAL_PCCARD_STATUS_ONGOING</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CF_ERROR
-                                            by&nbsp;HAL_PCCARD_STATUS_ERROR</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CF_TIMEOUT
-                                            by HAL_PCCARD_STATUS_TIMEOUT</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          PCCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename PCCARD
+                                          Address structure to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCCARD_StatusType<b>D</b>ef</span></span>
+                                          instead of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CF_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">StatusTypedef</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PCCARD Status
+                                          literals <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">renamed</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CF_SUCCESS
+                                            by HAL_PCCARD_STATUS_SUCCESS</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CF_ONGOING
+                                            by HAL_PCCARD_STATUS_ONGOING</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CF_ERROR
+                                            by&nbsp;HAL_PCCARD_STATUS_ERROR</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CF_TIMEOUT
+                                            by HAL_PCCARD_STATUS_TIMEOUT</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update "CF"
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update "CF"
                                           by "PCCARD" in&nbsp;functions,
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">literals</span></span>
-                                          and macros</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">literals</span></span>
+                                          and macros</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l20 level1
-                                      lfo115;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functions</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PCD_</span></span><span
-                                            class="grame"><b><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">Active</span></b></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RemoteWakeup(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) by <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_<b>Activate</b>RemoteWakeup</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PCD_</span></span><span
-                                            class="grame"><b><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DeActive</span></b></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">RemoteWakeup(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) by <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_<b>DeActivate</b>RemoteWakeup</span></span>()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          PCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functions</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Active</span></b></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RemoteWakeup(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_<b>Activate</b>RemoteWakeup</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DeActive</span></b></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">RemoteWakeup(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_<b>DeActivate</b>RemoteWakeup</span></span>()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">literals</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_FS_EXTI_TRIGGER_RISING_EDGE
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">literals</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_FS_EXTI_TRIGGER_RISING_EDGE
 
 
 
 
                                             by
-                                            USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_FS_EXTI_TRIGGER_FALLING_EDGE
+                                            USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_FS_EXTI_TRIGGER_FALLING_EDGE
 
 
 
 
                                             by
-                                            USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_FS_EXTI_TRIGGER_BOTH_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)
+                                            USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_FS_EXTI_TRIGGER_BOTH_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)
                                             by
-                                            USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_HS_EXTI_TRIGGER_RISING_EDGE
+                                            USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_HS_EXTI_TRIGGER_RISING_EDGE
 
 
 
 
                                             by
-                                            USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_HS_EXTI_TRIGGER_FALLING_EDGE
+                                            USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_HS_EXTI_TRIGGER_FALLING_EDGE
 
 
 
 
                                             by
-                                            USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_HS_EXTI_TRIGGER_BOTH_EDGE
+                                            USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_HS_EXTI_TRIGGER_BOTH_EDGE
 
 
 
 
                                             by
-                                            USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_HS_EXTI_LINE_WAKEUP
+                                            USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_HS_EXTI_LINE_WAKEUP
 
 
 
 
                                             by
-                                            USB_OTG_HS_EXTI_LINE_WAKEUP</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USB_FS_EXTI_LINE_WAKEUP
+                                            USB_OTG_HS_EXTI_LINE_WAKEUP</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USB_FS_EXTI_LINE_WAKEUP
 
 
 
 
                                             by
-                                            USB_OTG_FS_EXTI_LINE_WAKEUP</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            USB_OTG_FS_EXTI_LINE_WAKEUP</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l20 level2
-                                        lfo115;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename USB
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename USB
                                           EXTI macros <i>(FS,</i> <i>HS
 
 
 
                                           </i>referenced as <b>SUBBLOCK
-                                          </b>here below)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          </b>here below)</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             &nbsp;by&nbsp;
                                             __HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_ENABLE_IT()&nbsp;&nbsp;<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_DISABLE_IT()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                             by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_GET_FLAG()&nbsp;<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                             by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_CLEAR_FLAG()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_RISING_EGDE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_RISING_EGDE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)
                                             by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_ENABLE_RISING_EDGE()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_FALLING_EGDE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_FALLING_EGDE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)
                                             by __HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_ENABLE_FALLING_EDGE()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_FALLINGRISING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_SET_FALLINGRISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)
                                             by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE()<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l20 level3
-                                          lfo115;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)&nbsp;
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_<b>SUBBLOCK</b>_EXTI_GENERATE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)&nbsp;
-
-
-
-
-                                            by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_GENERATE_SWIT()&nbsp;&nbsp;&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-
-
-
-
-                                            <o:p></o:p></span></li>
+                                            by&nbsp;__HAL_USB_OTG_<b>SUBBLOCK</b>_WAKEUP_EXTI_GENERATE_SWIT()&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l127 level1
-                                      lfo116;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RNG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l127 level2
-                                        lfo116;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functions</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          RNG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functions</span></span></span><span style=""><o:p></o:p></span></li>
                                       <ul type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l127
-
-
-
-                                          level3 lfo116;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RNG_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GenerateRandomNumber(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">): to
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GenerateRandomNumber(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): to
                                             generate a 32-bits random
-                                            number,</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;">
-                                          </span><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">return
+                                            number,</span><span style="">
+                                          </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">return
                                             random value in argument and
-                                            return HAL status.</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l127
-
-
-
-                                          level3 lfo116;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RNG_GenerateRandomNumber_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">IT(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">): to
+                                            return HAL status.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_GenerateRandomNumber_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): to
                                             &nbsp;start generation of
                                             the&nbsp;32-bits random
                                             number, user should call
-                                            the&nbsp;<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RNG_ReadLastRandomNumber</span></span>()
+                                            the&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_ReadLastRandomNumber</span></span>()
 
 
 
 
-                                            function under the <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_RNG_ReadyCallback</span></span>()
+                                            function under the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_ReadyCallback</span></span>()
 
 
 
                                             to get the generated random
-                                            value.</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l127
-
-
-
-                                          level3 lfo116;tab-stops: list
-                                          1.5in"><span class="spelle"><span
-                                              style="font-size:10.0pt;
-                                              font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RNG_</span></span><span
-                                            class="grame"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">ReadLastRandomNumber(</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">):&nbsp;to
+                                            value.</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ReadLastRandomNumber(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">):&nbsp;to
                                             return the last random value
-                                            stored in the RNG handle</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            stored in the RNG handle</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l127 level2
-                                        lfo116;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RNG_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">GetRandomNumber(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): return
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetRandomNumber(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): return
                                           value update (obsolete),
-                                          replaced by <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_RNG_GenerateRandomNumber</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l127
-
-
-
-                                        level2 lfo116;tab-stops: list
-                                        1.0in"><span class="spelle"><span
-                                            style="font-size:10.0pt;
-                                            font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_RNG_GetRandomNumber_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): wrong
+                                          replaced by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_GenerateRandomNumber</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_GetRandomNumber_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): wrong
                                           implementation (obsolete),
-                                          replaced by&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RNG_GenerateRandomNumber_IT</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l127
-
-
-
-                                        level2 lfo116;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_RNG_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                          replaced by&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RNG_GenerateRandomNumber_IT</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RNG_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                           macro (obsolete), replaced by
-                                          new __HAL_RNG_CLEAR_IT() macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l127 level2
-                                        lfo116;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          new __HAL_RNG_CLEAR_IT() macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           define for&nbsp;RNG ready
-                                          interrupt:&nbsp; RNG_IT_DRDY</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          interrupt:&nbsp; RNG_IT_DRDY</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l127 level1
-                                      lfo116;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          RTC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">GetTime(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_GetDate</span></span>():
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RTC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l127 level2
-                                        lfo116;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_RTC_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">GetTime(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) and <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RTC_GetDate</span></span>():
-
-
-
-
-                                            add the comment below</span></i><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            add the comment below</span></i><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:30.0pt">
-                                    <div style="margin-left:30.0pt">
-                                      <p class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto"><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;
+                                  <div style="margin-left: 30pt;">
+                                    <div style="margin-left: 30pt;">
+                                      <p class="MsoNormal" style=""><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
 
 
 
 
-                                            * @note You must call <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RTC_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">GetDate(</span></span>)
-                                            after <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RTC_GetTime</span></span>()
+                                            * @note You must call <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetDate(</span></span>)
+                                            after <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RTC_GetTime</span></span>()
 
 
 
 
-                                            to unlock the values </span></i><span
-                                          style="font-size:10.0pt"><br>
-                                        </span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;
+                                            to unlock the values </span></i><span style="font-size: 10pt;"><br>
+                                        </span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
 
 
 
@@ -49074,10 +9994,8 @@
                                             * in the higher-order
                                             calendar shadow registers to
                                             ensure consistency between
-                                            the time and date values.</span></i><span
-                                          style="font-size:10.0pt"><br>
-                                        </span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;
+                                            the time and date values.</span></i><span style="font-size: 10pt;"><br>
+                                        </span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;
 
 
 
@@ -49085,3668 +10003,609 @@
                                             * Reading RTC current time
                                             locks the values in calendar
                                             shadow registers until
-                                            Current date is read.&nbsp;</span></i><span
-                                          style="font-size:10.0pt"><o:p></o:p></span></p>
+                                            Current date is read.&nbsp;</span></i><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                     </div>
                                   </div>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          literals: add prefix "__<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">FORMAT_BIN&nbsp;by&nbsp;HAL_FORMAT_BIN</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">FORMAT_BCD
-                                            by&nbsp;HAL_FORMAT_BCD</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          literals: add prefix "__<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FORMAT_BIN&nbsp;by&nbsp;HAL_FORMAT_BIN</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FORMAT_BCD
+                                            by&nbsp;HAL_FORMAT_BCD</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename macros
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename macros
                                           <i>(ALARM,</i> WAKEUPTIMER and
                                           <i>TIMESTAMP </i>referenced
                                           as <b>SUBBLOCK </b>here
-                                          below)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_EXTI_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_EXTI_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_IT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_EXTI_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
-                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_CLEAR_FLAG()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_EXTI_GENERATE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)
-                                            by __HAL_RTC_<b>SUBBLOCK</b>_EXTI_GENERATE_SWIT()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          below)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_EXTI_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_EXTI_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
+                                            by&nbsp; __HAL_RTC_<b>SUBBLOCK</b>_EXTI_CLEAR_FLAG()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)
+                                            by __HAL_RTC_<b>SUBBLOCK</b>_EXTI_GENERATE_SWIT()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros <i>(ALARM,</i>
                                           WAKEUPTIMER and <i>TAMPER_TIMESTAMP
 
 
 
                                           </i>referenced as <b>SUBBLOCK
-                                          </b>here below)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_GET_IT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)&nbsp;</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EVENT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EVENT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_RISING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_RISING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_RISING_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_RISING_FALLING_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EDGE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          </b>here below)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_GET_IT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)&nbsp;</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EVENT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EVENT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_RISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_ENABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_DISABLE_RISING_FALLING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EDGE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_RTC_<b>SUBBLOCK</b>_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l32 level1
-                                      lfo117;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SAI </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update
-                                          SAI_STREOMODE by&nbsp;SAI_ST<b>E</b>REOMODE</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update FIFO
+                                          SAI </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                          SAI_STREOMODE by&nbsp;SAI_ST<b>E</b>REOMODE</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update FIFO
                                           status Level defines in upper
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">case</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l32 level2
-                                        lfo117;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">case</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           literals: remove "D" from
-                                          "DISABLED" and "<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SAI_OUTPUTDRIVE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLED
+                                          "DISABLED" and "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SAI_OUTPUTDRIVE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLED
 
 
 
 
                                                 &nbsp;by</span></span>
-                                            SAI_OUTPUTDRIVE_DISABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SAI_OUTPUTDRIVE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED
+                                            SAI_OUTPUTDRIVE_DISABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SAI_OUTPUTDRIVE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED
 
 
 
 
                                                 &nbsp;by</span></span>
-                                            SAI_OUTPUTDRIVE_ENABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SAI_MASTERDIVIDER_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED&nbsp;&nbsp;by</span></span>
-                                            SAI_MASTERDIVIDER_ENABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l32 level3
-                                          lfo117;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SAI_MASTERDIVIDER_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLED&nbsp;&nbsp;by</span></span>
-                                            SAI_MASTERDIVIDER_DISABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            SAI_OUTPUTDRIVE_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SAI_MASTERDIVIDER_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED&nbsp;&nbsp;by</span></span>
+                                            SAI_MASTERDIVIDER_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SAI_MASTERDIVIDER_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLED&nbsp;&nbsp;by</span></span>
+                                            SAI_MASTERDIVIDER_DISABLE</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          SD_CMD_SD_APP_STAUS&nbsp;by&nbsp;SD_CMD_SD_APP_STA<b>T</b>US</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SD_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PowerON(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">updated to
+                                          SD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          SD_CMD_SD_APP_STAUS&nbsp;by&nbsp;SD_CMD_SD_APP_STA<b>T</b>US</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SD_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PowerON(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">updated to
                                           add 1ms required power up
                                           waiting time before starting
-                                          the SD initialization sequence</span><span
-                                          style="mso-fareast-font-family:
+                                          the SD initialization sequence</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SD_DMA_RxCplt</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SD_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxCplt(</span></span>):
 
 
 
 
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">SD_DMA_RxCplt</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">()/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SD_DMA_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TxCplt(</span></span>):
-
-
-
-
-                                          </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">add a call to
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_Abort</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_SD_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">ReadBlocks(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                          </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">add a call to
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Abort</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ReadBlocks(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           set&nbsp;the&nbsp;defined
-                                          DATA_BLOCK_SIZE as SDIO <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DataBlockSize</span></span>
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
+                                          DATA_BLOCK_SIZE as SDIO <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DataBlockSize</span></span>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_ReadBlocks_DMA</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SD_WriteBlocks_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
+                                          update to call the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_Start_IT</span></span>()
 
 
 
-                                            New Roman&quot;">HAL_SD_ReadBlocks_DMA</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">()/<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SD_WriteBlocks_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
-                                          update to call the <span
-                                            class="spelle"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">HAL_DMA_Start_IT</span></span>()
-
-
-
-                                          function with DMA&nbsp;<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Datalength</span></span>
-                                          set to <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">BlockSize</span></span>/4&nbsp;
+                                          function with DMA&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Datalength</span></span>
+                                          set to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">BlockSize</span></span>/4&nbsp;
 
 
 
 
                                           as the DMA&nbsp;is
-                                          configured&nbsp;in word&nbsp;</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          configured&nbsp;in word&nbsp;</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SMARTCARD </span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;">&nbsp;<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">DMA transmit
+                                          SMARTCARD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="">&nbsp;<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under DMA ISR, SMARTCARD
                                           TC interrupt is used instead.
                                           Below the update to be done on
-                                          user application:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          user application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the USART IRQ in
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SAMRTCARD_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SAMRTCARD_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">UASRTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMARTCARD_IRQHandler</span></span>()
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">UASRTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_SMARTCARD_IRQHandler</span></span>()
-
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IT transmit
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under SMARTCARD
                                           ISR,&nbsp;SMARTCARD TC
                                           interrupt is used instead. No
-                                          impact on user application</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          macros: add prefix "__<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
-                                            by __HAL_SMARTCARD_ENABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
-                                            by __HAL_SMARTCARD_DISABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          impact on user application</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          macros: add prefix "__<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
+                                            by __HAL_SMARTCARD_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
+                                            by __HAL_SMARTCARD_DISABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             by
-                                            __HAL_SMARTCARD_ENABLE_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                            __HAL_SMARTCARD_ENABLE_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                             by
-                                            __HAL_SMARTCARD_DISABLE_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_DMA_REQUEST_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
+                                            __HAL_SMARTCARD_DISABLE_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_DMA_REQUEST_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
                                             by
-                                            __HAL_SMARTCARD_DMA_REQUEST_ENABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__SMARTCARD_DMA_REQUEST_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
+                                            __HAL_SMARTCARD_DMA_REQUEST_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SMARTCARD_DMA_REQUEST_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
                                             by
-                                            __HAL_SMARTCARD_DMA_REQUEST_DISABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            __HAL_SMARTCARD_DMA_REQUEST_DISABLE()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           literals: remove "D" from
-                                          "DISABLED" and "<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          "DISABLED" and "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_NACK_ENABLED&nbsp;by
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD_NACK_ENABLED&nbsp;by
-
-
-
-
-                                            SMARTCARD_NACK_ENABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD_NACK_DISABLED&nbsp;by&nbsp;SMARTCARD_NACK_DISABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            SMARTCARD_NACK_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD_NACK_DISABLED&nbsp;by&nbsp;SMARTCARD_NACK_DISABLE</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new user
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new user
                                           macros to manage the sample
-                                          method <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          method <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
                                           variable in
-                                          __HAL_SMARTCARD_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)
+                                          __HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)
                                           macro for&nbsp;compliancy with
-                                          C++</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_</span></i></span><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SMARTCARD<i>_Transmit_</i></span></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DMA(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                          C++</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></i></span><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SMARTCARD<i>_Transmit_</i></span></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           follow the
                                           right&nbsp;procedure
                                           "Transmission using DMA"&nbsp;
-                                          in the reference manual</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add clear
+                                          in the reference manual</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clear
                                             the TC flag in the SR
                                             register before enabling the
-                                            DMA&nbsp;<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">transmit</span></span>
-                                            request</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transmit</span></span>
+                                            request</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           TIM_CHANNEL_ALL as possible
                                           value for all Encoder
-                                          Start/Stop APIs Description</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_OC_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigChannel(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) remove call
+                                          Start/Stop APIs Description</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_OC_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigChannel(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) remove call
                                           to IS_TIM_FAST_STATE() assert
-                                          macro</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_PWM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigChannel(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) add a call
+                                          macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_PWM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigChannel(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) add a call
                                           to IS_TIM_FAST_STATE() assert
-                                          macro to check the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">OCFastMode</span></span>
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMADelayPulseCplt(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) Update to
+                                          macro to check the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OCFastMode</span></span>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMADelayPulseCplt(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) Update to
                                           set the TIM Channel before to
-                                          call&nbsp; <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_PWM_PulseFinishedCallback</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMACaptureCplt(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) update to
+                                          call&nbsp; <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_PWM_PulseFinishedCallback</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMACaptureCplt(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) update to
                                           set the TIM Channel before to
-                                          call&nbsp; <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_IC_CaptureCallback</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">TIM_ICx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigChannel(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)&nbsp;update
+                                          call&nbsp; <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_IC_CaptureCallback</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">TIM_ICx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigChannel(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;update
                                           to fix Timer CCMR1 register
-                                          corruption when setting <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ICFilter</span></span>
-                                          parameter</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_DMABurst_WriteStop</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">()/<span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_DMABurst_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ReadStop(</span></span>)
+                                          corruption when setting <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ICFilter</span></span>
+                                          parameter</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_DMABurst_WriteStop</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_DMABurst_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ReadStop(</span></span>)
                                           update to abort the DMA
-                                          transfer for the <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">specifc</span></span>
-                                          TIM channel</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          transfer for the <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">specifc</span></span>
+                                          TIM channel</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           function for TIM Slave
                                           configuration&nbsp;in IT mode:
-                                          <span class="spelle"><i><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_SlaveConfigSynchronization_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></i></span><i>)&nbsp;</i></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIMEx_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">ConfigBreakDeadTime(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) add an
-                                          assert check on Break &amp; <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">DeadTime</span></span>
-                                          parameters values</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIMEx_OCN_Start_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IT(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) add the
+                                          <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_SlaveConfigSynchronization_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i>)&nbsp;</i></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">ConfigBreakDeadTime(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) add an
+                                          assert check on Break &amp; <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DeadTime</span></span>
+                                          parameters values</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIMEx_OCN_Start_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) add the
                                           enable of Break Interrupt for
-                                          all output modes</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          all output modes</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros to ENABLE/DISABLE URS
-                                          bit in TIM CR1 register:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_TIM_URS_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_TIM_URS_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          bit in TIM CR1 register:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_TIM_URS_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_TIM_URS_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new macro
-                                          for TIM Edge modification</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">:</span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">
-                                            __HAL_TIM_SET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">CAPTUREPOLARITY(</span></span>)</span></i><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new macro
+                                          for TIM Edge modification</span><span style="">:</span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                            __HAL_TIM_SET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">CAPTUREPOLARITY(</span></span>)</span></i><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          UART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l22
-
-
-
-                                        level2 lfo118;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add&nbsp;IS_LIN_WORD_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LENGTH(</span></span>)
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add&nbsp;IS_LIN_WORD_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LENGTH(</span></span>)
                                           and
                                           IS_LIN_OVERSAMPLING()&nbsp;
                                           macros: to check respectively
-                                          <span class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">WordLength</span></span>
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">OverSampling</span></span>
-                                          parameters in LIN mode</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l22
-
-
-
-                                        level2 lfo118;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">DMA transmit
+                                          <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WordLength</span></span>
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OverSampling</span></span>
+                                          parameters in LIN mode</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under DMA ISR, UART TC
                                           interrupt is used instead.
                                           Below the update to be done on
-                                          user application:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          user application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the USART IRQ in
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_UART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USARTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_IRQHandler</span></span>()
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">USARTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_UART_IRQHandler</span></span>()
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IT transmit
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under UART&nbsp;ISR, UART
                                           TC interrupt is used instead.
-                                          No impact on user application</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          macros:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_UART_ONEBIT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
+                                          No impact on user application</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          macros:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_ONEBIT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
                                             by
-                                            __HAL_UART_ONE_BIT_SAMPLE_ENABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_UART_ONEBIT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
+                                            __HAL_UART_ONE_BIT_SAMPLE_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_ONEBIT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
                                             by
-                                            __HAL_UART_ONE_BIT_SAMPLE_DISABLE()</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            __HAL_UART_ONE_BIT_SAMPLE_DISABLE()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          literals:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UART_WAKEUPMETHODE_IDLELINE&nbsp;by
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          literals:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">UART_WAKEUPMETHODE_IDLELINE&nbsp;by
-
-
-
-
-                                            UART_WAKEUPMETHOD_IDLELINE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">UART_WAKEUPMETHODE_ADDRESSMARK&nbsp;by
-UART_WAKEUPMETHOD_ADDRESSMARK</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            UART_WAKEUPMETHOD_IDLELINE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">UART_WAKEUPMETHODE_ADDRESSMARK&nbsp;by
+UART_WAKEUPMETHOD_ADDRESSMARK</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_UART_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)
                                           macro for&nbsp;compliancy with
-                                          C++</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_UART_Transmit_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">DMA(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">) </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                          C++</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_Transmit_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           follow the right procedure
                                           "Transmission using DMA" in
-                                          the reference manual</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add clear
+                                          the reference manual</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clear
                                             the TC flag in the SR
                                             register before enabling the
-                                            DMA&nbsp;<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">transmit</span></span>
-                                            request</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transmit</span></span>
+                                            request</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          USART </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l22
-
-
-
-                                        level2 lfo118;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">DMA transmit
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under DMA ISR, USART TC
                                           interrupt is used instead.
                                           Below the update to be done on
-                                          user application:</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Configure
+                                          user application:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Configure
                                             and enable the USART IRQ in
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_USART_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">MspInit(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">MspInit(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In
+                                            stm32f4xx_it.c file, <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">USARTx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span>)
+                                            function: add a call to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_IRQHandler</span></span>()
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">In
-                                            stm32f4xx_it.c file, <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">USARTx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IRQHandler(</span></span>)
-                                            function: add a call to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_USART_IRQHandler</span></span>()
-
-
-
-
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">IT transmit
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IT transmit
                                           process; the code has been
                                           updated to avoid waiting on TC
                                           flag under USART&nbsp;ISR,
                                           USART TC interrupt is used
                                           instead. No impact on user
-                                          application</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_USART_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Init(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> update
+                                          application</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update
                                           to&nbsp;enable the USART
                                           oversampling by 8 by default
                                           in order to reach max USART
-                                          frequencies</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USART_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">DMAReceiveCplt(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)&nbsp;update
+                                          frequencies</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USART_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMAReceiveCplt(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)&nbsp;update
                                           to set the new USART state
                                           after checking on the
-                                          old&nbsp;state</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_USART_Transmit_DMA</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">()/<span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_USART_TransmitReceive_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DMA(</span></span>)
-                                          </span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">update to
+                                          old&nbsp;state</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_Transmit_DMA</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">()/<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_TransmitReceive_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></span>)
+                                          </span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update to
                                           follow the
                                           right&nbsp;procedure
                                           "Transmission using DMA"&nbsp;
-                                          in the reference manual</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add clear
+                                          in the reference manual</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add clear
                                             the TC flag in the SR
                                             register before enabling the
-                                            DMA&nbsp;<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">transmit</span></span>
-                                            request</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            DMA&nbsp;<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">transmit</span></span>
+                                            request</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
-                                          macros:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__USART_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)
-                                            by __HAL_USART_ENABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__USART_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)
-                                            by __HAL_USART_DISABLE()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__USART_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            by __HAL_USART_ENABLE_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__USART_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                            by __HAL_USART_DISABLE_IT()</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
+                                          macros:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__USART_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)
+                                            by __HAL_USART_ENABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__USART_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)
+                                            by __HAL_USART_DISABLE()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__USART_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            by __HAL_USART_ENABLE_IT()</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__USART_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                            by __HAL_USART_DISABLE_IT()</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename
                                           literals: remove "D" from
-                                          "DISABLED" and "<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">ENABLED"</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          "DISABLED" and "<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLED"</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USART_CLOCK_DISABLED&nbsp;by
 
 
 
 
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USART_CLOCK_DISABLED&nbsp;by
+                                            USART_CLOCK_DISABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USART_CLOCK_ENABLED&nbsp;by
 
 
 
 
-                                            USART_CLOCK_DISABLE</span><span
-                                            style="mso-fareast-font-family:
+                                            USART_CLOCK_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USARTNACK_ENABLED
 
 
 
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                            by USART_NACK_ENABLE</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">USARTNACK_DISABLED
 
 
 
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USART_CLOCK_ENABLED&nbsp;by
-
-
-
-
-                                            USART_CLOCK_ENABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USARTNACK_ENABLED
-
-
-
-                                            by USART_NACK_ENABLE</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">USARTNACK_DISABLED
-
-
-
-                                            by USART_NACK_DISABLE</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            by USART_NACK_DISABLE</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new user
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new user
                                           macros to manage the sample
-                                          method <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">feature</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USART_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ENABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USART_ONE_BIT_SAMPLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          method <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">feature</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">ENABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_ONE_BIT_SAMPLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add use
-                                          of&nbsp;<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">tmpreg</span></span>
-                                          variable in __HAL_USART_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add use
+                                          of&nbsp;<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">tmpreg</span></span>
+                                          variable in __HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)
                                           macro for&nbsp;compliancy with
-                                          C++</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          C++</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l22 level1
-                                      lfo118;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          WWDG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          WWDG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           parameter in
-                                          __HAL_WWDG_ENABLE_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
-                                          macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l22 level2
-                                        lfo118;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          __HAL_WWDG_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
+                                          macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           macros to manage WWDG IT &amp;
-                                          correction:</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_WWDG_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">DISABLE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_WWDG_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_WWDG_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l22 level3
-                                          lfo118;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_WWDG_GET_IT_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SOURCE(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          correction:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_WWDG_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DISABLE(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_WWDG_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_WWDG_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_WWDG_GET_IT_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SOURCE(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.1.0
 
 
 
-                                        New Roman&quot;;color:white">V1.1.0
-
-
-
-                                        / 19-June-2014</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b><o:p></o:p></p>
-                                  <ul
-                                    style="margin-top:0in;text-align:start;word-spacing:0px"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l124 level1
-                                      lfo119;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Add
-                                        support of<span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">&nbsp;</span></span><b>STM32F411xE</b><span
-                                          class="apple-converted-space"><span
-style="font-family:&quot;Verdana&quot;,sans-serif"> </span></span><span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">devices</span></span></span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                        / 19-June-2014</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b><o:p></o:p></p>
+                                  <ul style="margin-top: 0in; text-align: start; word-spacing: 0px;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                        support of<span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;</span></span><b>STM32F411xE</b><span class="apple-converted-space"><span style="font-family: &quot;Verdana&quot;,sans-serif;"> </span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices</span></span></span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l61 level1
-                                      lfo120;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          generic</span></b><span
-                                        style="font-size:
-                                        10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">
-                                        update</span><span
-                                        style="mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Enhance HAL
-                                          delay and time base <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">implementation</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            class="spelle"><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">Systick</span></span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> timer is
+                                          generic</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
+                                        update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhance HAL
+                                          delay and time base <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">implementation</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Systick</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> timer is
                                             used by default as source of
                                             time base, but user can
                                             eventually implement his
-                                            proper time base source (a <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">general
+                                            proper time base source (a <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">general
 
 
 
                                                 purpose</span></span>
                                             timer for example or other
-                                            time source)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Functions
+                                            time source)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Functions
                                             affecting time base
                                             configurations are declared
                                             as __Weak to make override
                                             possible in case of other
                                             implementations in user
                                             file, for more details
-                                            please refer to <span
-                                              class="spelle"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">HAL_TimeBase</span></span>
-                                            example</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            please refer to <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TimeBase</span></span>
+                                            example</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix flag
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix flag
                                           clear procedure: use atomic
                                           write operation "=" instead of
                                           ready-modify-write operation
-                                          "|=" or "&amp;="</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix on
+                                          "|=" or "&amp;="</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix on
                                           Timeout management, Timeout
                                           value set to 0 passed to API
                                           automatically exits the
                                           function after checking the
-                                          flag without any <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">wait</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Common update
+                                          flag without any <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">wait</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Common update
                                           for the following
                                           communication peripherals:
-                                          SPI, UART, USART and IRDA</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add DMA
-                                            circular mode <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">support</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove lock
-                                            from recursive <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">process</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          SPI, UART, USART and IRDA</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add DMA
+                                            circular mode <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">support</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove lock
+                                            from recursive <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">process</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new macro
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new macro
                                           __HAL_RESET_HANDLE_STATE to
-                                          reset a given handle <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">state</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add a new
+                                          reset a given handle <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">state</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                           attribute for functions
                                           executed from internal SRAM
-                                          and depending <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">from</span></span>
-                                          Compiler implementation</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">When USE_RTOS
+                                          and depending <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">from</span></span>
+                                          Compiler implementation</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">When USE_RTOS
                                           == 1 (in
                                           stm32l0xx_hal_conf.h), the
-                                          __HAL_<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">LOCK(</span></span>)
+                                          __HAL_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LOCK(</span></span>)
                                           is not defined instead of
-                                          being defined empty</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Miscellaneous
-                                          comments and formatting update</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_hal_conf_template.h</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a new
+                                          being defined empty</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Miscellaneous
+                                          comments and formatting update</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_hal_conf_template.h</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                             define for LSI default value
-                                            LSI_<span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">VALUE</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a new
+                                            LSI_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VALUE</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                             define for LSE default value
-                                            LSE_<span class="grame"><span
-                                                style="font-family:
-                                                &quot;Verdana&quot;,sans-serif">VALUE</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l61 level3
-                                          lfo120;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a new
+                                            LSE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">VALUE</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                             define for Tick interrupt
                                             priority TICK_INT_PRIORITY
                                             (needed for the enhanced
-                                            time base implementation)</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            time base implementation)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l61 level2
-                                        lfo120;tab-stops:list 1.0in"><i><u><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Important
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New
-                                              Roman&quot;;color:windowtext">Important
-
-
-
-
-                                              Note:</span></u></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New
-                                          Roman&quot;;color:windowtext">
+                                              Note:</span></u></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">
                                           aliases has been added for any
                                           API naming change, to keep
-                                          compatibility with previous <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">version</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          compatibility with previous <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">version</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l61 level1
-                                      lfo120;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          GPIO </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          GPIO </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add a new
-                                          macro <i>__HAL_GPIO_EXTI_GENERATE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)</i>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
+                                          macro <i>__HAL_GPIO_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)</i>
                                           to manage the generation of
                                           software interrupt on selected
-                                          EXTI line</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_GPIO_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Init(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): use
+                                          EXTI line</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): use
                                           temporary variable when
                                           modifying the registers, to
                                           avoid unexpected transition in
-                                          the GPIO pin configuration</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove
-                                          IS_GET_GPIO_PIN macro</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add a new
-                                          function <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_GPIO_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">LockPin(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Private Macro
+                                          the GPIO pin configuration</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                          IS_GET_GPIO_PIN macro</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
+                                          function <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_GPIO_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">LockPin(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Private Macro
                                           __HAL_GET_GPIO_SOURCE renamed
-                                          into GET_GPIO_SOURCE</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
-                                          support of STM32F411xx <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">devices
+                                          into GET_GPIO_SOURCE</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
+                                          support of STM32F411xx <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">devices
 
 
 
@@ -52754,1169 +10613,229 @@
                                               :</span></span> add the
                                           new Alternate functions values
                                           related to new remap added for
-                                          SPI, USART, I2C</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l111 level2
-                                        lfo121;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update the
+                                          SPI, USART, I2C</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                           following HAL GPIO macros
-                                          description: rename <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EXTI_Linex</span></span>
-                                          by <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">GPIO_PIN_x</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l111 level3
-                                          lfo121;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GPIO_EXTI_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l111 level3
-                                          lfo121;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GPIO_EXTI_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l111 level3
-                                          lfo121;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GPIO_EXTI_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l111 level3
-                                          lfo121;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GPIO_EXTI_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          description: rename <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EXTI_Linex</span></span>
+                                          by <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GPIO_PIN_x</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GPIO_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GPIO_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GPIO_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GPIO_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL DMA</span></b><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black"> update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l63 level2
-                                        lfo122;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_DMA_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PollForTransfer(</span></span>)
-                                          to:</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l63 level3
-                                          lfo122;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">set DMA
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL DMA</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;"> update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_DMA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PollForTransfer(</span></span>)
+                                          to:</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">set DMA
                                             error code in case of
-                                            HAL_ERROR status </span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l63 level3
-                                          lfo122;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">set HAL
-                                            Unlock before DMA state <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">update</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            HAL_ERROR status </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">set HAL
+                                            Unlock before DMA state <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">update</span></span></span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL DMA2D</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">
-                                      update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l122 level2
-                                        lfo123;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL DMA2D</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">
+                                      update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
                                           configuration of source
                                           address in case of A8 or A4
-                                          M2M_PFC DMA2D mode</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          M2M_PFC DMA2D mode</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l122 level1
-                                      lfo123;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          FLASH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          FLASH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="circle">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l50 level2
-                                        lfo124;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Functions
+                                  <ul style="margin-top: 0in;" type="circle">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Functions
                                           reorganization update,
                                           depending on the features
-                                          supported by each STM32F4 <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">device</span></span><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l50 level2
-                                        lfo124;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                          supported by each STM32F4 <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">device</span></span><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           driver
                                           (stm32f4xx_hal_flash_ramfunc.h/.c)
                                           to manage function executed
                                           from RAM, these functions are
                                           available only for STM32F411xx
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Devices</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l50 level3
-                                          lfo124;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">FLASH_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">StopFlashInterfaceClk(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">&nbsp; :
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Devices</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">StopFlashInterfaceClk(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp; :
                                             Stop the flash interface
                                             while System Run<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l50 level3
-                                          lfo124;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">FLASH_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">StartFlashInterfaceClk(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> : Stop the
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">StartFlashInterfaceClk(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> : Stop the
                                             flash interface while System
                                             Run<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l50 level3
-                                          lfo124;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">FLASH_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">EnableFlashSleepMode(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> : Enable
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableFlashSleepMode(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> : Enable
                                             the flash sleep while System
                                             Run<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l50 level3
-                                          lfo124;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">FLASH_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DisableFlashSleepMode(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> :&nbsp;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">FLASH_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableFlashSleepMode(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> :&nbsp;
                                             Disable the flash sleep
-                                            while System Run</span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            while System Run</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
                                   <ul type="square">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;mso-list:l30 level1
-                                      lfo125;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PWR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update<o:p></o:p></span></li>
+                                          PWR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l13 level2
-                                        lfo126;tab-stops:list 1.0in"><span
-                                          class="spelle"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">HAL_PWR_</span></i></span><span
-                                          class="grame"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">PVDConfig(</span></i></span><i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">)</span></i><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">: add clear
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PVDConfig(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">: add clear
                                           of the EXTI trigger before new
-                                          configuration </span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l13 level2
-                                        lfo126;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWR_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EnterSTANDBYMode(</span></span>)
+                                          configuration </span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnterSTANDBYMode(</span></span>)
                                           to not clear Wakeup flag
                                           (WUF), which need to be
                                           cleared at application level
-                                          before to call this function</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l13 level2
-                                        lfo126;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PWR_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">EnterSLEEPMode(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l13 level3
-                                          lfo126;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove
-                                            disable and enable of <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SysTick</span></span>
-                                            <span class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">Timer</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l13 level3
-                                          lfo126;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update
-                                            usage of __<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)
+                                          before to call this function</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWR_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnterSLEEPMode(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove
+                                            disable and enable of <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SysTick</span></span>
+                                            <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Timer</span></span></span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
+                                            usage of __<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)
                                             in low power entry function:
                                             if there is a pending event,
                                             calling __WFE() will not
                                             enter the CortexM4 core to
                                             sleep mode. The solution is
                                             to made the call below; the
-                                            first __<span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)
+                                            first __<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)
                                             is always ignored and clears
                                             the event if one was already
                                             pending, the second is
-                                            always applied</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                            always applied</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <div style="margin-left:1.25in">
-                                    <p class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__SEV()</span><span
-                                        style="font-size:10.0pt"><br>
-                                      </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__WFE()</span><span
-                                        style="font-size:10.0pt"><br>
-                                      </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">__<span
-                                          class="grame"><span
-                                            style="font-family:&quot;Verdana&quot;,sans-serif">WFE(</span></span>)</span><span
-                                        style="font-size:10.0pt"><o:p></o:p></span></p>
+                                  <div style="margin-left: 1.25in;">
+                                    <p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__SEV()</span><span style="font-size: 10pt;"><br>
+                                      </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__WFE()</span><span style="font-size: 10pt;"><br>
+                                      </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">WFE(</span></span>)</span><span style="font-size: 10pt;"><o:p></o:p></span></p>
                                   </div>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l52 level2
-                                        lfo127;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new macro
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new macro
                                           for software event generation
-                                          __HAL_PVD_EXTI_GENERATE_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l52 level2
-                                        lfo127;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Remove the
+                                          __HAL_PVD_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                           following defines form Generic
                                           driver and add them under
                                           extension driver because they
                                           are only used within extension
-                                          functions.</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l52 level3
-                                          lfo127;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CR_FPDS_BB:
-                                            used within <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EnableFlashPowerDown(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l52 level3
-                                          lfo127;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">CSR_BRE_BB:
-                                            used within <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">EnableBkUpReg(</span></span>)
-                                            function</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          functions.</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CR_FPDS_BB:
+                                            used within <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableFlashPowerDown(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">CSR_BRE_BB:
+                                            used within <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnableBkUpReg(</span></span>)
+                                            function</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l52 level2
-                                        lfo127;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           support of STM32F411xx devices
-                                          add the define <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">STM32F411xE</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l52 level3
-                                          lfo127;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">For
+                                          add the define <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">STM32F411xE</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">For
                                             STM32F401xC, STM32F401xE and
                                             STM32F411xE devices add the
                                             following functions used to
                                             enable or disable the low
-                                            voltage mode for <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">regulators</span></span><o:p></o:p></span></li>
+                                            voltage mode for <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">regulators</span></span><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <ul style="margin-top:0in"
-                                          type="square">
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l120 level4
-                                            lfo128;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">EnableMainRegulatorLowVoltage(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l120 level4
-                                            lfo128;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DisableMainRegulatorLowVoltage(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l120 level4
-                                            lfo128;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">EnableLowRegulatorLowVoltage(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
-                                          <li class="MsoNormal"
-                                            style="color:black;margin-top:4.5pt;margin-bottom:
-                                            4.5pt;mso-list:l120 level4
-                                            lfo128;tab-stops:list 2.0in"><span
-                                              class="spelle"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_PWREx_</span></span><span
-                                              class="grame"><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DisableLowRegulatorLowVoltage(</span></span><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)<o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <ul style="margin-top: 0in;" type="square">
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableMainRegulatorLowVoltage(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableMainRegulatorLowVoltage(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">EnableLowRegulatorLowVoltage(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
+                                          <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DisableLowRegulatorLowVoltage(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)<o:p></o:p></span></li>
                                         </ul>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l120 level2
-                                        lfo128;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">For
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">For
                                           STM32F42xxx/43xxx devices, add
                                           a new function for Under
                                           Driver management as the macro
                                           already added for this mode is
-                                          not sufficient: <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PWREx_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">EnterUnderDriveSTOPMode(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          not sufficient: <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PWREx_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">EnterUnderDriveSTOPMode(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l60 level1
-                                      lfo129;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RCC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update<o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l60 level2
-                                        lfo129;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">In <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCC_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">ClockConfig(</span></i></span><i>)</i>
+                                          RCC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">In <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCC_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">ClockConfig(</span></i></span><i>)</i>
                                           function: update the AHB clock
                                           divider before clock switch to
-                                          new source</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l60 level2
-                                        lfo129;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Allow to
+                                          new source</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Allow to
                                           calibrate the HSI when it is
-                                          used as system clock <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">source</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
+                                          used as system clock <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">source</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Rename the
+                                          following <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">macros</span></span><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__OTGFS_FORCE_RESET
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l60 level2
-                                        lfo129;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Rename the
-                                          following <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">macros</span></span><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l60 level3
-                                          lfo129;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__OTGFS_FORCE_RESET
-
-
-
-                                              <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">()&nbsp; by</span></span>
+                                              <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">()&nbsp; by</span></span>
                                               __USB_OTG_FS_FORCE_RESET()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l60 level3
-                                          lfo129;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__OTGFS_RELEASE_RESET
 
 
 
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__OTGFS_RELEASE_RESET
-
-
-
-                                              <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">()&nbsp; by</span></span>&nbsp;
+                                              <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">()&nbsp; by</span></span>&nbsp;
 __USB_OTG_FS_RELEASE_RESET()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l60 level3
-                                          lfo129;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__OTGFS_CLK_SLEEP_ENABLE
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__OTGFS_CLK_SLEEP_ENABLE
-
-
-
-
-                                              <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">()&nbsp; by</span></span>&nbsp;
+                                              <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">()&nbsp; by</span></span>&nbsp;
 __USB_OTG_FS_CLK_SLEEP_ENABLE()<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l60 level3
-                                          lfo129;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__OTGFS_CLK_SLEEP_DISABLE
 
 
 
 
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__OTGFS_CLK_SLEEP_DISABLE
-
-
-
-
-                                              () <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">by&nbsp; _</span></span>_USB_OTG_FS_CLK_SLEEP_DISABLE()</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                              () <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">by&nbsp; _</span></span>_USB_OTG_FS_CLK_SLEEP_DISABLE()</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto"><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
-                                  <ul style="margin-top:0in" type="disc">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l15 level2
-                                        lfo130;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new field
+                                  <p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p>&nbsp;</o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="disc">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new field
                                           PLLI2SM in
                                           RCC_PLLI2SInitTypeDef
                                           structure, this division
@@ -53925,1826 +10844,238 @@
                                           devices =&gt; the FW
                                           compatibility is broken vs.
                                           STM32F401xx devices <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l15 level2
-                                        lfo130;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PeriphCLKConfig(</span></i></span><i>)</i>
-                                          and&nbsp; <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_GetPeriphCLKConfig</span></i></span><i>()</i>&nbsp;
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">PeriphCLKConfig(</span></i></span><i>)</i>
+                                          and&nbsp; <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_GetPeriphCLKConfig</span></i></span><i>()</i>&nbsp;
 
 
 
 
                                           functions to support the new
                                           PLLI2SM <o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l15 level2
-                                        lfo130;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
                                           function to manage the new LSE
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">mode
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">mode
 
 
 
 
-                                              :</span></span> <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_RCCEx_SelectLSEMode</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                        auto;mso-list:l15 level2
-                                        lfo130;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Reorganize
-                                          the macros depending <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">from</span></span>
+                                              :</span></span> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_RCCEx_SelectLSEMode</span></span>()</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Reorganize
+                                          the macros depending <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">from</span></span>
                                           Part number used and make them
-                                          more clear</span><span
-                                          style="font-size:10.0pt;mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          more clear</span><span style="font-size: 10pt;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;font-family:Wingdings;
-                                      mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp; </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL
 
 
 
-
-                                      color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:
-                                      Wingdings;color:black">&nbsp; </span><b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;color:black">HAL
-
-
-
-                                        UART </span></b><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">update<o:p></o:p></span></p>
+                                        UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">update<o:p></o:p></span></p>
                                   <ul type="square">
                                     <ul type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l131
-
-
-
-                                        level2 lfo131;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add new
-                                          macros to control CTS and <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">RTS</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l131 level2
-                                        lfo131;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add specific
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add new
+                                          macros to control CTS and <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RTS</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add specific
                                           macros to manage the flags
-                                          cleared only by a software <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">sequence</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_UART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_UART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_UART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">NEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_UART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">OREFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_UART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IDLEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <o:p></o:p></span></i></li>
+                                          cleared only by a software <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">sequence</span></span></span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OREFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_UART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDLEFLAG(</span></span>)</span></i><i><span style=""> <o:p></o:p></span></i></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l131 level2
-                                        lfo131;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add several
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add several
                                           enhancements without affecting
-                                          the driver <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functionalities</span></span>
+                                          the driver <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functionalities</span></span>
                                           <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                             check on RXNE set after
                                             reading the Data in the DR
-                                            register</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update the
+                                            register</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update the
                                             transmit processes to use
-                                            TXE instead of <span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TC</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l131 level3
-                                          lfo131;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_UART_Transmit_</span></i></span><span
-                                              class="grame"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></i></span><i>)</i>
+                                            TXE instead of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TC</span></span></span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_UART_Transmit_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i>)</i>
                                             to enable <i>UART_IT_TXE</i>
-                                            instead of <i>UART_IT_TC</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
+                                            instead of <i>UART_IT_TC</i></span><span style=""> <o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL USART</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">
-                                      update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l100 level2
-                                        lfo132;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add specific
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL USART</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">
+                                      update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add specific
                                           macros to manage the flags
-                                          cleared only by a software <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">sequence</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l100 level3
-                                          lfo132;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_USART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l100 level3
-                                          lfo132;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_USART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l100 level3
-                                          lfo132;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_USART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">NEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l100 level3
-                                          lfo132;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_USART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">OREFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l100 level3
-                                          lfo132;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_USART_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IDLEFLAG(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
+                                          cleared only by a software <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">sequence</span></span></span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OREFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USART_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDLEFLAG(</span></span>)</span></i><span style=""> <o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;mso-margin-top-alt:auto;
-                                        mso-margin-bottom-alt:auto;mso-list:l100
-
-
-
-                                        level2 lfo132;tab-stops: list
-                                        1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_USART_Transmit_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></i></span><i>)</i>
+                                      <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_USART_Transmit_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i>)</i>
                                           to enable <i>USART_IT_TXE</i>
-                                          instead of <i>USART_IT_TC</i></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
+                                          instead of <i>USART_IT_TC</i></span><span style=""> <o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL IRDA</span></b><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black"> update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l113 level2
-                                        lfo133;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add specific
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL IRDA</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;"> update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add specific
                                           macros to manage the flags
-                                          cleared only by a software <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">sequence</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l113 level3
-                                          lfo133;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_IRDA_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l113 level3
-                                          lfo133;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_
-                                              IRDA _CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l113 level3
-                                          lfo133;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_
-                                              IRDA _CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">NEFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l113 level3
-                                          lfo133;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_
-                                              IRDA _CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">OREFLAG(</span></span>)</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l113 level3
-                                          lfo133;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_
-                                              IRDA _CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IDLEFLAG(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          cleared only by a software <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">sequence</span></span></span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IRDA_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_
+                                              IRDA _CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_
+                                              IRDA _CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NEFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_
+                                              IRDA _CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OREFLAG(</span></span>)</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_
+                                              IRDA _CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDLEFLAG(</span></span>)</span></i><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l113 level2
-                                        lfo133;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add several
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add several
                                           enhancements without affecting
-                                          the driver <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functionalities</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
+                                          the driver <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functionalities</span></span></span><span style=""> <o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Remove the
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Remove the
                                             check on RXNE set after
                                             reading the Data in the DR
-                                            register</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_Transmit_</span></i></span><span
-                                              class="grame"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></i></span><i>)</i>
+                                            register</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_Transmit_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i>)</i>
                                             to enable <i>IRDA_IT_TXE</i>
-                                            instead of <i>IRDA_IT_TC</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
+                                            instead of <i>IRDA_IT_TC</i></span><span style=""> <o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l97 level2
-                                        lfo134;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following APIs used within DMA
-                                          <span class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">process</span></span>
+                                          <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">process</span></span>
                                           <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAPause(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hirda</span></span>);</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAResume(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hirda</span></span>);</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hirda</span></span>);
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAPause(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hirda</span></span>);</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAResume(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hirda</span></span>);</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hirda</span></span>);
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">void <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">TxHalfCpltCallback(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hirda</span></span>);</span></i><i><span
-                                              style="mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> </span></i><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"><o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l97 level3
-                                          lfo134;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">void <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IRDA_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">RxHalfCpltCallback(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IRDA_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hirda</span></span>);</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">void <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxHalfCpltCallback(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hirda</span></span>);</span></i><i><span style=""> </span></i><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">void <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IRDA_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxHalfCpltCallback(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IRDA_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hirda</span></span>);</span></i><span style=""> <o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <p class="MsoListParagraph"
-                                    style="margin-left:.5in;text-indent:-.25in;
-                                    tab-stops:list .5in"><span
-                                      style="font-size:10.0pt;mso-bidi-font-size:
-12.0pt;font-family:Wingdings;mso-fareast-font-family:Wingdings;
-mso-bidi-font-family:Wingdings;color:black">§</span><span
-                                      style="font-size:7.0pt;mso-fareast-font-family:Wingdings;color:black">&nbsp;
+                                  <p class="MsoListParagraph" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size: 10pt; font-family: Wingdings; color: black;">§</span><span style="font-size: 7pt; color: black;">&nbsp;
 
 
 
 
-                                    </span><b><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                        color:black">HAL SMARTCARD</span></b><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif;color:black">
-                                      update</span><span
-                                      style="color:black"><o:p></o:p></span></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l123 level2
-                                        lfo135;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add specific
+                                    </span><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">HAL SMARTCARD</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">
+                                      update</span><span style="color: black;"><o:p></o:p></span></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add specific
                                           macros to manage the flags
-                                          cleared only by a software <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">sequence</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">PEFLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FEFLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">NEFLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_SMARTCARD_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">OREFLAG(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_SMARTCARD_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IDLEFLAG(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> </span><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          cleared only by a software <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">sequence</span></span></span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PEFLAG(</span></span>)</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FEFLAG(</span></span>)</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">NEFLAG(</span></span>)</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">OREFLAG(</span></span>)</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_SMARTCARD_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDLEFLAG(</span></span>)</span></i><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l123 level2
-                                        lfo135;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add several
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add several
                                           enhancements without affecting
-                                          the driver <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">functionalities</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="circle">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l123 level3
-                                          lfo135;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a new
+                                          the driver <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">functionalities</span></span></span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="circle">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a new
                                             state <i>HAL_SMARTCARD_STATE_BUSY_TX_RX</i>
                                             and all processes has been
-                                            updated <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">accordingly</span></span></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;mso-margin-top-alt:auto;
-                                          mso-margin-bottom-alt:auto;mso-list:l123
-
-
-
-                                          level3 lfo135;tab-stops: list
-                                          1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Update <span
-                                              class="spelle"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SMARTCARD_Transmit_</span></i></span><span
-                                              class="grame"><i><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></i></span><i>)</i>
+                                            updated <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">accordingly</span></span></span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SMARTCARD_Transmit_</span></i></span><span class="grame"><i><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></i></span><i>)</i>
                                             to enable <i>SMARTCARD_IT_TXE</i>
-                                            instead of <i>SMARTCARD_IT_TC</i></span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> <o:p></o:p></span></li>
+                                            instead of <i>SMARTCARD_IT_TC</i></span><span style=""> <o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l28 level1
-                                      lfo136;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SPI</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> </span><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                        mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l28 level2
-                                        lfo136;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Bugs <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">fix</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> <o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l28 level3
-                                          lfo136;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SPI
+                                          SPI</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Bugs <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">fix</span></span></span><span style=""> <o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SPI
                                             interface is used in
                                             synchronous polling mode: at
-                                            high clock rates like SPI <span
-                                              class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">prescaler</span></span>
+                                            high clock rates like SPI <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">prescaler</span></span>
                                             2 and 4, calling <br>
-                                            <span class="spelle"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TransmitReceive(</span></span>)
+                                            <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TransmitReceive(</span></span>)
                                             returns with error
-                                            HAL_TIMEOUT</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;">
+                                            HAL_TIMEOUT</span><span style="">
                                             <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l28 level3
-                                          lfo136;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SPI_TransmitReceive_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> does not
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_TransmitReceive_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> does not
                                             clean up the TX DMA, so any
                                             subsequent SPI calls return
-                                            the DMA error</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"> <o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l28 level3
-                                          lfo136;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_SPI_Transmit_</span></i></span><span
-                                            class="grame"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">DMA(</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"> is failing
+                                            the DMA error</span><span style=""> <o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_Transmit_</span></i></span><span class="grame"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">DMA(</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> is failing
                                             when data size is equal to 1
-                                            byte</span><span
-                                            style="mso-fareast-font-family:
-                                            &quot;Times New Roman&quot;">
+                                            byte</span><span style="">
                                             <o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l28 level2
-                                        lfo136;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following APIs used within the
-                                          DMA <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">process</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> </span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          DMA <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">process</span></span></span><span style=""> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAPause(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAResume(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><span
-                                            class="spelle"><i><span
-                                                style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                                mso-fareast-font-family:&quot;Times
-
-
-
-                                                New Roman&quot;">HAL_StatusTypeDef</span></i></span><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;"> <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">DMAStop(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">void <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">TxHalfCpltCallback(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">void <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">RxHalfCpltCallback(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);<o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l104 level3
-                                          lfo137;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">void <span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_SPI_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">TxRxHalfCpltCallback(</span></span><span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">SPI_HandleTypeDef</span></span>
-                                              *<span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">hspi</span></span>);</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAPause(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAResume(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_StatusTypeDef</span></i></span><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DMAStop(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">void <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxHalfCpltCallback(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">void <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">RxHalfCpltCallback(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);<o:p></o:p></span></i></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">void <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_SPI_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxRxHalfCpltCallback(</span></span><span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SPI_HandleTypeDef</span></span>
+                                              *<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">hspi</span></span>);</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l76 level1
-                                      lfo138;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          RNG </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l76 level3
-                                          lfo138;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">Add a
+                                          RNG </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add a
                                             conditional define to make
                                             this driver visible for all
                                             STM32F4xx devices except
@@ -55752,641 +11083,124 @@
                                             Devices. <o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l76 level1
-                                      lfo138;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          CRC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l76 level3
-                                          lfo138;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">These
+                                          CRC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">These
                                             macros are added to
                                             read/write the CRC IDR
-                                            register: __HAL_CRC_SET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IDR(</span></span>)
+                                            register: __HAL_CRC_SET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IDR(</span></span>)
                                             and __HAL_CRC_GET_IDR()<o:p></o:p></span></li>
                                       </ul>
                                     </ul>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l135 level1
-                                      lfo139;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          DAC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update <o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l135 level2
-                                        lfo139;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Enhance the
+                                          DAC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update <o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Enhance the
                                           DMA channel configuration when
-                                          used with <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">DAC</span></span> <o:p></o:p></span></li>
+                                          used with <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">DAC</span></span> <o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l135 level1
-                                      lfo139;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          TIM </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="square">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l135 level2
-                                        lfo139;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_TIM_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">IRQHandler(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">): update to
+                                          TIM </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="square">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">IRQHandler(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">): update to
                                           check the input capture
                                           channel 3 and 4 in CCMR2
-                                          instead of CCMR1</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l135 level2
-                                        lfo139;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_TIM_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">PRESCALER(</span></span>)
+                                          instead of CCMR1</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_TIM_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">PRESCALER(</span></span>)
                                           updated to use '=' instead of
-                                          '|='</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l135 level2
-                                        lfo139;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                          '|='</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following macro in TIM HAL
-                                          driver</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l135 level3
-                                          lfo139;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GetCompare(</span></span>)
+                                          driver</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetCompare(</span></span>)
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l135 level3
-                                          lfo139;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GetCounter(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetCounter(</span></span>)
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l135 level3
-                                          lfo139;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GetAutoreload(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetAutoreload(</span></span>)
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l135 level3
-                                          lfo139;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GetClockDivision(</span></span>)
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetClockDivision(</span></span>)
                                               <o:p></o:p></span></i></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l135 level3
-                                          lfo139;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__<span
-                                                class="spelle"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">HAL_TIM_</span></span><span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">GetICPrescaler(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__<span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_TIM_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">GetICPrescaler(</span></span>)</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l135 level1
-                                      lfo139;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          SDMMC </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                          SDMMC </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
                                   </ul>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use of CMSIS
-                                          constants instead of magic <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">values</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Miscellaneous
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use of CMSIS
+                                          constants instead of magic <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">values</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Miscellaneous
                                           update in functions internal
-                                          coding</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          coding</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NAND </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;;color:black">Fix
+                                          NAND </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
 
 
 
                                           issue of macros returning
-                                          wrong address for NAND <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">blocks</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;;color:black">Fix
+                                          wrong address for NAND <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">blocks</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix
 
 
 
                                           issue for read/write NAND
-                                          page/spare <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">area</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          page/spare <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">area</span></span></span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          NOR </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;;color:black">Add
+                                          NOR </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
 
 
 
                                           the NOR address bank macro
-                                          used within the <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">API</span></span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="margin-top:4.5pt;margin-bottom:4.5pt;
-                                        mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;;color:black">Update
+                                          used within the <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">API</span></span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update
 
 
 
                                           NOR API implementation to
                                           avoid the use of NOR address
-                                          bank hard <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">coded</span></span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          bank hard <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">coded</span></span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          HCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HCD_StateTypeDef</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> structure
-                                          members <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">renamed</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">These macro</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> are renamed</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>__HANDLE__,
+                                          HCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HCD_StateTypeDef</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> structure
+                                          members <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">renamed</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">These macro</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> are renamed</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>__HANDLE__,
 
 
 
@@ -56397,351 +11211,67 @@
 
                                             by
                                             __HAL_HCD_GET_FLAG(__HANDLE__,
-                                            __INTERRUPT__)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>__HANDLE__,
+                                            __INTERRUPT__)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>__HANDLE__,
 
 
 
 
                                             __INTERRUPT__) by
                                             __HAL_HCD_CLEAR_FLAG(__HANDLE__,
-                                            __INTERRUPT__)&nbsp; </span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_IS_INVALID_INTERRUPT(__HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">_)&nbsp;
+                                            __INTERRUPT__)&nbsp; </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IS_INVALID_INTERRUPT(__HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">_)&nbsp;
 
 
 
 
                                                 by</span></span>
                                             __HAL_HCD_IS_INVALID_INTERRUPT(__HANDLE__)&nbsp;
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          </span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
+
+
+
+                                          PCD </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_</span></span><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">SetTxFiFo(</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">) and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCD_SetRxFiFo</span></span>()
 
 
 
 
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          PCD </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">HAL_PCD_</span></span><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">SetTxFiFo(</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
+                                          renamed into <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCDEx_SetTxFiFo</span></span>()
 
 
 
 
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">) and <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCD_SetRxFiFo</span></span>()
-
-
-
-
-                                          renamed into <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCDEx_SetTxFiFo</span></span>()
-
-
-
-
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_PCDEx_SetRxFiFo</span></span>()
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_PCDEx_SetRxFiFo</span></span>()
 
 
 
 
                                           and moved to the extension
                                           files
-                                          stm32f4xx_hal_pcd_ex.h/.c</span><span
-                                          style="mso-fareast-font-family:&quot;Times
+                                          stm32f4xx_hal_pcd_ex.h/.c</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="spelle"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">PCD_StateTypeDef</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> structure
+                                          members <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">renamed</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Fix incorrect
+                                          masking of <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TxFIFOEmpty</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">stm32f4xx_ll_usb.c:
 
 
 
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          class="spelle"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">PCD_StateTypeDef</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> structure
-                                          members <span class="grame"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">renamed</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Fix incorrect
-                                          masking of <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">TxFIFOEmpty</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">stm32f4xx_ll_usb.c:
-
-
-
-                                          fix issue in HS mode</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">New macros <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">added</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PCD_IS_PHY_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SUSPENDED(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_HS_EXTI_GENERATE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_USB_FS_EXTI_GENERATE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">SWIT(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                          fix issue in HS mode</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">New macros <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">added</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PCD_IS_PHY_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SUSPENDED(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_HS_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_USB_FS_EXTI_GENERATE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">SWIT(</span></span>)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          class="grame"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">These macro</span></span><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"> are renamed</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>__HANDLE__,
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span class="grame"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">These macro</span></span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> are renamed</span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>__HANDLE__,
 
 
 
@@ -56752,851 +11282,143 @@
 
                                             by
                                             __HAL_PCD_GET_FLAG(__HANDLE__,
-                                            __INTERRUPT__)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_CLEAR_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>__HANDLE__,
+                                            __INTERRUPT__)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>__HANDLE__,
 
 
 
 
                                             __INTERRUPT__) by
                                             __HAL_PCD_CLEAR_FLAG(__HANDLE__,
-                                            __INTERRUPT__)&nbsp; </span><span
-                                            style="mso-fareast-font-family:
-
-
-
-
-                                            &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_IS_INVALID_INTERRUPT(__HANDLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">_)&nbsp;
+                                            __INTERRUPT__)&nbsp; </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IS_INVALID_INTERRUPT(__HANDLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">_)&nbsp;
 
 
 
 
                                                 by</span></span>
                                             __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__)&nbsp;
-                                          </span><span
-                                            style="mso-fareast-font-family:&quot;Times
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PCD_UNGATE_CLOCK(__HANDLE__)
+                                          </span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PCD_UNGATE_CLOCK(__HANDLE__)
 
 
 
 
                                             by
-                                            __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_PCD_GATE_CLOCK(__HANDLE__)
+                                            __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_PCD_GATE_CLOCK(__HANDLE__)
 
 
 
 
                                             by
-                                            __HAL_PCD_GATE_PHYCLOCK(__HANDLE__)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                            __HAL_PCD_GATE_PHYCLOCK(__HANDLE__)</span><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          ETH </span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;">update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_ETH_GetReceivedFrame_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)
+                                          ETH </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_ETH_GetReceivedFrame_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)
                                           function to return HAL_ERROR
                                           if the received packet is not
-                                          complete</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Delay(</span></span>)
-                                          instead of counting loop</span><span
-                                          style="mso-fareast-font-family:
-
-
-
-
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">&nbsp;__HAL_ETH_MAC_CLEAR_<span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)
+                                          complete</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Delay(</span></span>)
+                                          instead of counting loop</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;__HAL_ETH_MAC_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)
                                           macro is removed: the MACSR
-                                          register is read only</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add the
+                                          register is read only</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add the
                                           following macros used to Wake
                                           up the device from STOP mode
-                                          by Ethernet <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">event
+                                          by Ethernet <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">event
 
 
 
-                                              :</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <ul style="margin-top:0in"
-                                        type="square">
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_ETH_EXTI_ENABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_ETH_EXTI_DISABLE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">IT(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_ETH_EXTI_GET_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_ETH_EXTI_CLEAR_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">FLAG(</span></span>)</span></i><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_ETH_EXTI_SET_RISING_EGDE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)<o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><span
-                                            style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                            mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;">__HAL_ETH_EXTI_SET_FALLING_EGDE_<span
-                                              class="grame"><span
-                                                style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)</span><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
-                                        <li class="MsoNormal"
-                                          style="color:black;margin-top:4.5pt;margin-bottom:
-                                          4.5pt;mso-list:l23 level3
-                                          lfo140;tab-stops:list 1.5in"><i><span
-                                              style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                              mso-fareast-font-family:&quot;Times
-
-
-
-                                              New Roman&quot;">__HAL_ETH_EXTI_SET_FALLINGRISING_<span
-                                                class="grame"><span
-                                                  style="font-family:&quot;Verdana&quot;,sans-serif">TRIGGER(</span></span>)</span></i><span
-                                            style="mso-fareast-font-family:&quot;Times
-
-
-
-                                            New Roman&quot;"><o:p></o:p></span></li>
+                                              :</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <ul style="margin-top: 0in;" type="square">
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_ENABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_DISABLE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">IT(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_GET_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_CLEAR_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">FLAG(</span></span>)</span></i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_SET_RISING_EGDE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)<o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_SET_FALLING_EGDE_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                        <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><i><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_ETH_EXTI_SET_FALLINGRISING_<span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">TRIGGER(</span></span>)</span></i><span style=""><o:p></o:p></span></li>
                                       </ul>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          WWDG</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update </span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Update macro
+                                          WWDG</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update </span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Update macro
                                           parameters to use underscore:
-                                          __XXX__</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use of CMSIS
-                                          constants instead of magic <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">values</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use
-                                          MODIFY_REG macro in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          IS_WWDG_ALL_INSTANCE in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)
-                                          and <span class="spelle"><span
-style="font-family:&quot;Verdana&quot;,sans-serif">HAL_WWDG_DeInit</span></span>()</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
+                                          __XXX__</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use of CMSIS
+                                          constants instead of magic <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">values</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use
+                                          MODIFY_REG macro in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          IS_WWDG_ALL_INSTANCE in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)
+                                          and <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_WWDG_DeInit</span></span>()</span><span style=""><o:p></o:p></span></li>
                                     </ul>
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l23 level1
-                                      lfo140;tab-stops:list .5in"><b><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
 
 
 
-
-                                          &quot;Times New Roman&quot;">HAL
-
-
-
-                                          IWDG</span></b><span
-                                        style="font-size:10.0pt;
-                                        font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"> update</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;"><o:p></o:p></span></li>
-                                    <ul style="margin-top:0in"
-                                      type="circle">
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use WRITE_REG
+                                          IWDG</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"> update</span><span style=""><o:p></o:p></span></li>
+                                    <ul style="margin-top: 0in;" type="circle">
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use WRITE_REG
                                           instead of SET_BIT for all
-                                          IWDG <span class="grame"><span
-                                              style="font-family:
-                                              &quot;Verdana&quot;,sans-serif">macros</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">__HAL_IWDG_CLEAR_FLAG
+                                          IWDG <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">macros</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">__HAL_IWDG_CLEAR_FLAG
 
 
 
 
                                           removed: no IWDG flag cleared
-                                          by access to SR <span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">register</span></span></span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Use
-                                          MODIFY_REG macro in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)</span><span
-                                          style="mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;"><o:p></o:p></span></li>
-                                      <li class="MsoNormal"
-                                        style="color:black;margin-top:4.5pt;margin-bottom:
-                                        4.5pt;mso-list:l23 level2
-                                        lfo140;tab-stops:list 1.0in"><span
-                                          style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;
-
-
-
-
-                                          mso-fareast-font-family:&quot;Times
-
-
-
-                                          New Roman&quot;">Add
-                                          IS_IWDG_ALL_INSTANCE in <span
-                                            class="spelle"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">HAL_IWDG_</span></span><span
-                                            class="grame"><span
-                                              style="font-family:&quot;Verdana&quot;,sans-serif">Init(</span></span>)Add
+                                          by access to SR <span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">register</span></span></span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Use
+                                          MODIFY_REG macro in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)</span><span style=""><o:p></o:p></span></li>
+                                      <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">Add
+                                          IS_IWDG_ALL_INSTANCE in <span class="spelle"><span style="font-family: &quot;Verdana&quot;,sans-serif;">HAL_IWDG_</span></span><span class="grame"><span style="font-family: &quot;Verdana&quot;,sans-serif;">Init(</span></span>)Add
 
 
 
 
                                           the following macros used to
-                                          Wake</span><span
-                                          style="mso-fareast-font-family:
-                                          &quot;Times New Roman&quot;"><o:p></o:p></span></li>
+                                          Wake</span><span style=""><o:p></o:p></span></li>
                                     </ul>
                                   </ul>
-                                  <h3
-                                    style="margin-right:500.0pt;background:#3366FF;-moz-background-clip:
-                                    initial; -moz-background-origin:
-                                    initial;-moz-background-inline-policy:
-                                    initial;
-                                    background-position-x:0%;background-position-y:
-                                    50%;background-attachment: scroll"><font
-                                      color="#ffffff"><span
-                                        style="font-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif;
-                                        mso-fareast-font-family:&quot;Times
+                                  <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-right: 500pt;"><font color="#ffffff"><span style="font-size: 10pt; font-family: &quot;Arial&quot;,sans-serif;">V1.0.0
 
 
 
-                                        New Roman&quot;;color:white">V1.0.0
+                                        / 18-February-2014</span><span style=""><o:p></o:p></span></font></h3>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in;"><b><u><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">Main Changes</span></u></b></p>
+                                  <ul style="margin-top: 0in;" type="square">
+                                    <li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">First
 
 
 
-                                        / 18-February-2014</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></font></h3>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:0in;margin-bottom:
-                                    4.5pt;margin-left:.25in"><b><u><span
-style="font-size:10.0pt;font-family:
-&quot;Verdana&quot;,sans-serif;color:black">Main Changes</span></u></b></p>
-                                  <ul style="margin-top:0in"
-                                    type="square">
-                                    <li class="MsoNormal"
-                                      style="color:black;margin-top:4.5pt;margin-bottom:
-                                      4.5pt;mso-list:l130 level1
-                                      lfo141;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">First
-
-
-
-                                        official release</span><span
-                                        style="mso-fareast-font-family:&quot;Times
-                                        New Roman&quot;"><o:p></o:p></span></li>
+                                        official release</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;"></span><span style="font-size: 10pt;">&nbsp;</span></li>
                                   </ul>
-                                  <h2
-                                    style="background:#3366FF;-moz-background-clip:
-                                    initial;-moz-background-origin:
-                                    initial;
-                                    -moz-background-inline-policy:
-                                    initial;background-position-x:0%;
-                                    background-position-y:50%;background-attachment:scroll"><font
-                                      color="#ffffff"><a name="License"></a><span
-                                        style="font-size:12.0pt;mso-fareast-font-family:&quot;Times
-
-
-
-                                        New Roman&quot;; color:white">License<o:p></o:p></span></font></h2>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto;text-align:justify"><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">Redistribution
+                                  <div class="MsoNormal" style="text-align: center;" align="center"><span style=""><hr align="center" size="2" width="100%"> </span></div>
+                                  <p class="MsoNormal" style="margin: 4.5pt 0in 4.5pt 0.25in; text-align: center;" align="center"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;">For
 
 
 
 
-                                      and use in source and binary
-                                      forms, with or without
-                                      modification, are permitted
-                                      provided that the following
-                                      conditions are met:</span><span
-                                      style="font-size:10.0pt"><o:p></o:p></span></p>
-                                  <ol start="1" type="1">
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;text-align:justify;mso-list:l99
-
-
-
-                                      level1 lfo142;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Redistributions
-
-
-
-                                        of source code must retain the
-                                        above copyright notice, this
-                                        list of conditions and the
-                                        following disclaimer.</span><span
-                                        style="font-size:10.0pt;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;text-align:justify;mso-list:l99
-
-
-
-                                      level1 lfo142;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Redistributions
-
-
-
-                                        in binary form must reproduce
-                                        the above copyright notice, this
-                                        list of conditions and the
-                                        following disclaimer in the
-                                        documentation and/or other
-                                        materials provided with the
-                                        distribution.</span><span
-                                        style="font-size:10.0pt;mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                    <li class="MsoNormal"
-                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                      auto;text-align:justify;mso-list:l99
-
-
-
-                                      level1 lfo142;tab-stops:list .5in"><span
-                                        style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;mso-fareast-font-family:
-
-
-
-
-                                        &quot;Times New Roman&quot;">Neither
-
-
-
-                                        the name of STMicroelectronics
-                                        nor the names of its
-                                        contributors may be used to
-                                        endorse or promote products
-                                        derived </span><span
-                                        style="font-size:10.0pt;mso-fareast-font-family:
-                                        &quot;Times New Roman&quot;"><o:p></o:p></span></li>
-                                  </ol>
-                                  <p class="MsoNormal"
-                                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:
-                                    auto;text-align:justify"><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-
-
-
-
-                                      from this software without
-                                      specific prior written permission.</span><span
-                                      style="font-size:10.0pt"><br>
-                                      <br>
-                                    </span><span
-                                      style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif">THIS
-
-
-
-
-                                      SOFTWARE IS PROVIDED BY THE
-                                      COPYRIGHT HOLDERS AND CONTRIBUTORS
-                                      "AS IS" AND ANY EXPRESS OR IMPLIED
-                                      WARRANTIES, INCLUDING, BUT NOT
-                                      LIMITED TO, THE IMPLIED WARRANTIES
-                                      OF MERCHANTABILITY AND FITNESS FOR
-                                      A PARTICULAR PURPOSE ARE
-                                      DISCLAIMED. IN NO EVENT SHALL THE
-                                      COPYRIGHT HOLDER OR CONTRIBUTORS
-                                      BE LIABLE FOR ANY DIRECT,
-                                      INDIRECT, INCIDENTAL, SPECIAL,
-                                      EXEMPLARY, OR CONSEQUENTIAL
-                                      DAMAGES (INCLUDING, BUT NOT
-                                      LIMITED TO, PROCUREMENT OF
-                                      SUBSTITUTE GOODS OR SERVICES; LOSS
-                                      OF USE, DATA, OR PROFITS; OR
-                                      BUSINESS INTERRUPTION) HOWEVER
-                                      CAUSED AND ON ANY THEORY OF
-                                      LIABILITY, WHETHER IN CONTRACT,
-                                      STRICT LIABILITY, OR TORT
-                                      (INCLUDING NEGLIGENCE OR
-                                      OTHERWISE) ARISING IN ANY WAY OUT
-                                      OF THE USE OF THIS SOFTWARE, EVEN
-                                      IF ADVISED OF THE POSSIBILITY OF
-                                      SUCH DAMAGE.</span><span
-                                      style="font-size:10.0pt"> <o:p></o:p></span></p>
-                                  <div class="MsoNormal"
-                                    style="text-align:center"
-                                    align="center"><span
-                                      style="mso-fareast-font-family:&quot;Times
-                                      New Roman&quot;;color:black">
-                                      <hr align="center" width="100%"
-                                        size="2"> </span></div>
-                                  <p class="MsoNormal"
-                                    style="margin-top:4.5pt;margin-right:
-0in;margin-bottom:4.5pt;margin-left:.25in;text-align:center"
-                                    align="center"><span
-style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">For
-
-
-
-
-                                      complete documentation on </span><span
-                                      style="font-size:10.0pt;
-                                      font-family:&quot;Verdana&quot;,sans-serif">STM32<span
-                                        style="color:black">
-                                        Microcontrollers visit </span><u><span
-                                          style="color:blue"><a
-                                            href="http://www.st.com/internet/mcu/family/141.jsp"
-                                            target="_blank">www.st.com/STM32</a></span></u></span><span
-                                      style="color:black"><o:p></o:p></span></p>
+                                      complete documentation on </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">STM32<span style="color: black;">
+                                        Microcontrollers visit </span><u><span style="color: blue;"><a href="http://www.st.com/internet/mcu/family/141.jsp" target="_blank">www.st.com/STM32</a></span></u></span><span style="color: black;"><o:p></o:p></span></p>
                                 </td>
                               </tr>
-                              <tr
-                                style="mso-yfti-irow:1;mso-yfti-lastrow:yes">
-                                <td style="width:843.25pt;padding:0in
-                                  0in 0in 0in" width="1124" valign="top">
-                                  <h2 style="background:#3366FF"><span
-                                      style="font-size:12.0pt;mso-fareast-font-family:
-                                      &quot;Times New
-                                      Roman&quot;;color:white"><o:p>&nbsp;</o:p></span></h2>
+                              <tr style="">
+                                <td style="padding: 0in; width: 843.25pt;" valign="top" width="1124">
+                                  <h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 12pt;"><o:p>&nbsp;</o:p></span></h2>
                                 </td>
                               </tr>
                             </tbody>
@@ -57605,16 +11427,13 @@
                       </tr>
                     </tbody>
                   </table>
-                  <p class="MsoNormal"
-                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><o:p></o:p></p>
+                  <p class="MsoNormal" style=""><o:p></o:p></p>
                 </td>
               </tr>
             </tbody>
           </table>
         </div>
-        <p class="MsoNormal"
-          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><o:p>&nbsp;</o:p></p>
+        <p class="MsoNormal" style=""><o:p>&nbsp;</o:p></p>
       </div>
     </div>
-  </body>
-</html>
+  </body></html>
\ No newline at end of file
diff --git a/Src/Legacy/stm32f4xx_hal_can.c b/Src/Legacy/stm32f4xx_hal_can.c
index 7a4cf53..e175142 100644
--- a/Src/Legacy/stm32f4xx_hal_can.c
+++ b/Src/Legacy/stm32f4xx_hal_can.c
@@ -9,6 +9,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State and Error functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                                  ##### User NOTE #####
@@ -80,33 +91,6 @@
   @endverbatim
            
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1693,5 +1677,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/Legacy/stm32f4xx_hal_eth.c b/Src/Legacy/stm32f4xx_hal_eth.c
new file mode 100644
index 0000000..8de9453
--- /dev/null
+++ b/Src/Legacy/stm32f4xx_hal_eth.c
@@ -0,0 +1,2307 @@
+/**
+  ******************************************************************************
+  * @file    stm32f4xx_hal_eth.c
+  * @author  MCD Application Team
+  * @brief   ETH HAL module driver.
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Ethernet (ETH) peripheral:
+  *           + Initialization and de-initialization functions
+  *           + IO operation functions
+  *           + Peripheral Control functions
+  *           + Peripheral State and Errors functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  @verbatim
+  ==============================================================================
+                    ##### How to use this driver #####
+  ==============================================================================
+    [..]
+      (#)Declare a ETH_HandleTypeDef handle structure, for example:
+         ETH_HandleTypeDef  heth;
+
+      (#)Fill parameters of Init structure in heth handle
+
+      (#)Call HAL_ETH_Init() API to initialize the Ethernet peripheral (MAC, DMA, ...)
+
+      (#)Initialize the ETH low level resources through the HAL_ETH_MspInit() API:
+          (##) Enable the Ethernet interface clock using
+               (+++) __HAL_RCC_ETHMAC_CLK_ENABLE();
+               (+++) __HAL_RCC_ETHMACTX_CLK_ENABLE();
+               (+++) __HAL_RCC_ETHMACRX_CLK_ENABLE();
+
+          (##) Initialize the related GPIO clocks
+          (##) Configure Ethernet pin-out
+          (##) Configure Ethernet NVIC interrupt (IT mode)
+
+      (#)Initialize Ethernet DMA Descriptors in chain mode and point to allocated buffers:
+          (##) HAL_ETH_DMATxDescListInit(); for Transmission process
+          (##) HAL_ETH_DMARxDescListInit(); for Reception process
+
+      (#)Enable MAC and DMA transmission and reception:
+          (##) HAL_ETH_Start();
+
+      (#)Prepare ETH DMA TX Descriptors and give the hand to ETH DMA to transfer
+         the frame to MAC TX FIFO:
+         (##) HAL_ETH_TransmitFrame();
+
+      (#)Poll for a received frame in ETH RX DMA Descriptors and get received
+         frame parameters
+         (##) HAL_ETH_GetReceivedFrame(); (should be called into an infinite loop)
+
+      (#) Get a received frame when an ETH RX interrupt occurs:
+         (##) HAL_ETH_GetReceivedFrame_IT(); (called in IT mode only)
+
+      (#) Communicate with external PHY device:
+         (##) Read a specific register from the PHY
+              HAL_ETH_ReadPHYRegister();
+         (##) Write data to a specific RHY register:
+              HAL_ETH_WritePHYRegister();
+
+      (#) Configure the Ethernet MAC after ETH peripheral initialization
+          HAL_ETH_ConfigMAC(); all MAC parameters should be filled.
+
+      (#) Configure the Ethernet DMA after ETH peripheral initialization
+          HAL_ETH_ConfigDMA(); all DMA parameters should be filled.
+
+      -@- The PTP protocol and the DMA descriptors ring mode are not supported
+          in this driver
+*** Callback registration ***
+  =============================================
+
+  The compilation define  USE_HAL_ETH_REGISTER_CALLBACKS when set to 1
+  allows the user to configure dynamically the driver callbacks.
+  Use Function @ref HAL_ETH_RegisterCallback() to register an interrupt callback.
+
+  Function @ref HAL_ETH_RegisterCallback() allows to register following callbacks:
+    (+) TxCpltCallback   : Tx Complete Callback.
+    (+) RxCpltCallback   : Rx Complete Callback.
+    (+) DMAErrorCallback : DMA Error Callback.
+    (+) MspInitCallback  : MspInit Callback.
+    (+) MspDeInitCallback: MspDeInit Callback.
+
+  This function takes as parameters the HAL peripheral handle, the Callback ID
+  and a pointer to the user callback function.
+
+  Use function @ref HAL_ETH_UnRegisterCallback() to reset a callback to the default
+  weak function.
+  @ref HAL_ETH_UnRegisterCallback takes as parameters the HAL peripheral handle,
+  and the Callback ID.
+  This function allows to reset following callbacks:
+    (+) TxCpltCallback   : Tx Complete Callback.
+    (+) RxCpltCallback   : Rx Complete Callback.
+    (+) DMAErrorCallback : DMA Error Callback.
+    (+) MspInitCallback  : MspInit Callback.
+    (+) MspDeInitCallback: MspDeInit Callback.
+
+  By default, after the HAL_ETH_Init and when the state is HAL_ETH_STATE_RESET
+  all callbacks are set to the corresponding weak functions:
+  examples @ref HAL_ETH_TxCpltCallback(), @ref HAL_ETH_RxCpltCallback().
+  Exception done for MspInit and MspDeInit functions that are
+  reset to the legacy weak function in the HAL_ETH_Init/ @ref HAL_ETH_DeInit only when
+  these callbacks are null (not registered beforehand).
+  if not, MspInit or MspDeInit are not null, the HAL_ETH_Init/ @ref HAL_ETH_DeInit
+  keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
+
+  Callbacks can be registered/unregistered in HAL_ETH_STATE_READY state only.
+  Exception done MspInit/MspDeInit that can be registered/unregistered
+  in HAL_ETH_STATE_READY or HAL_ETH_STATE_RESET state,
+  thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
+  In that case first register the MspInit/MspDeInit user callbacks
+  using @ref HAL_ETH_RegisterCallback() before calling @ref HAL_ETH_DeInit
+  or HAL_ETH_Init function.
+
+  When The compilation define USE_HAL_ETH_REGISTER_CALLBACKS is set to 0 or
+  not defined, the callback registration feature is not available and all callbacks
+  are set to the corresponding weak functions.
+
+  @endverbatim
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/** @addtogroup STM32F4xx_HAL_Driver
+  * @{
+  */
+
+/** @defgroup ETH ETH
+  * @brief ETH HAL module driver
+  * @{
+  */
+
+#ifdef HAL_ETH_LEGACY_MODULE_ENABLED
+
+#if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
+    defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx)
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/** @defgroup ETH_Private_Constants ETH Private Constants
+  * @{
+  */
+#define ETH_TIMEOUT_SWRESET               500U
+#define ETH_TIMEOUT_LINKED_STATE          5000U
+#define ETH_TIMEOUT_AUTONEGO_COMPLETED    5000U
+
+/**
+  * @}
+  */
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/** @defgroup ETH_Private_Functions ETH Private Functions
+  * @{
+  */
+static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth, uint32_t err);
+static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr);
+static void ETH_MACReceptionEnable(ETH_HandleTypeDef *heth);
+static void ETH_MACReceptionDisable(ETH_HandleTypeDef *heth);
+static void ETH_MACTransmissionEnable(ETH_HandleTypeDef *heth);
+static void ETH_MACTransmissionDisable(ETH_HandleTypeDef *heth);
+static void ETH_DMATransmissionEnable(ETH_HandleTypeDef *heth);
+static void ETH_DMATransmissionDisable(ETH_HandleTypeDef *heth);
+static void ETH_DMAReceptionEnable(ETH_HandleTypeDef *heth);
+static void ETH_DMAReceptionDisable(ETH_HandleTypeDef *heth);
+static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth);
+static void ETH_Delay(uint32_t mdelay);
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+static void ETH_InitCallbacksToDefault(ETH_HandleTypeDef *heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+/**
+  * @}
+  */
+/* Private functions ---------------------------------------------------------*/
+
+/** @defgroup ETH_Exported_Functions ETH Exported Functions
+  * @{
+  */
+
+/** @defgroup ETH_Exported_Functions_Group1 Initialization and de-initialization functions
+  *  @brief   Initialization and Configuration functions
+  *
+  @verbatim
+  ===============================================================================
+            ##### Initialization and de-initialization functions #####
+  ===============================================================================
+  [..]  This section provides functions allowing to:
+      (+) Initialize and configure the Ethernet peripheral
+      (+) De-initialize the Ethernet peripheral
+
+  @endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Initializes the Ethernet MAC and DMA according to default
+  *         parameters.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
+{
+  uint32_t tmpreg1 = 0U, phyreg = 0U;
+  uint32_t hclk = 60000000U;
+  uint32_t tickstart = 0U;
+  uint32_t err = ETH_SUCCESS;
+
+  /* Check the ETH peripheral state */
+  if(heth == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check parameters */
+  assert_param(IS_ETH_AUTONEGOTIATION(heth->Init.AutoNegotiation));
+  assert_param(IS_ETH_RX_MODE(heth->Init.RxMode));
+  assert_param(IS_ETH_CHECKSUM_MODE(heth->Init.ChecksumMode));
+  assert_param(IS_ETH_MEDIA_INTERFACE(heth->Init.MediaInterface));
+
+  if(heth->State == HAL_ETH_STATE_RESET)
+  {
+    /* Allocate lock resource and initialize it */
+    heth->Lock = HAL_UNLOCKED;
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    ETH_InitCallbacksToDefault(heth);
+
+    if(heth->MspInitCallback == NULL)
+    {
+      /* Init the low level hardware : GPIO, CLOCK, NVIC. */
+      heth->MspInitCallback = HAL_ETH_MspInit;
+    }
+    heth->MspInitCallback(heth);
+
+#else
+    /* Init the low level hardware : GPIO, CLOCK, NVIC. */
+    HAL_ETH_MspInit(heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+  }
+
+  /* Enable SYSCFG Clock */
+  __HAL_RCC_SYSCFG_CLK_ENABLE();
+
+  /* Select MII or RMII Mode*/
+  SYSCFG->PMC &= ~(SYSCFG_PMC_MII_RMII_SEL);
+  SYSCFG->PMC |= (uint32_t)heth->Init.MediaInterface;
+
+  /* Ethernet Software reset */
+  /* Set the SWR bit: resets all MAC subsystem internal registers and logic */
+  /* After reset all the registers holds their respective reset values */
+  (heth->Instance)->DMABMR |= ETH_DMABMR_SR;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait for software reset */
+  while (((heth->Instance)->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)
+  {
+    /* Check for the Timeout */
+    if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_SWRESET)
+    {
+      heth->State= HAL_ETH_STATE_TIMEOUT;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(heth);
+
+      /* Note: The SWR is not performed if the ETH_RX_CLK or the ETH_TX_CLK are
+         not available, please check your external PHY or the IO configuration */
+      return HAL_TIMEOUT;
+    }
+  }
+
+  /*-------------------------------- MAC Initialization ----------------------*/
+  /* Get the ETHERNET MACMIIAR value */
+  tmpreg1 = (heth->Instance)->MACMIIAR;
+  /* Clear CSR Clock Range CR[2:0] bits */
+  tmpreg1 &= ETH_MACMIIAR_CR_MASK;
+
+  /* Get hclk frequency value */
+  hclk = HAL_RCC_GetHCLKFreq();
+
+  /* Set CR bits depending on hclk value */
+  if((hclk >= 20000000U)&&(hclk < 35000000U))
+  {
+    /* CSR Clock Range between 20-35 MHz */
+    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div16;
+  }
+  else if((hclk >= 35000000U)&&(hclk < 60000000U))
+  {
+    /* CSR Clock Range between 35-60 MHz */
+    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div26;
+  }
+  else if((hclk >= 60000000U)&&(hclk < 100000000U))
+  {
+    /* CSR Clock Range between 60-100 MHz */
+    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div42;
+  }
+  else if((hclk >= 100000000U)&&(hclk < 150000000U))
+  {
+    /* CSR Clock Range between 100-150 MHz */
+    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div62;
+  }
+  else /* ((hclk >= 150000000)&&(hclk <= 183000000)) */
+  {
+    /* CSR Clock Range between 150-183 MHz */
+    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div102;
+  }
+
+  /* Write to ETHERNET MAC MIIAR: Configure the ETHERNET CSR Clock Range */
+  (heth->Instance)->MACMIIAR = (uint32_t)tmpreg1;
+
+  /*-------------------- PHY initialization and configuration ----------------*/
+  /* Put the PHY in reset mode */
+  if((HAL_ETH_WritePHYRegister(heth, PHY_BCR, PHY_RESET)) != HAL_OK)
+  {
+    /* In case of write timeout */
+    err = ETH_ERROR;
+
+    /* Config MAC and DMA */
+    ETH_MACDMAConfig(heth, err);
+
+    /* Set the ETH peripheral state to READY */
+    heth->State = HAL_ETH_STATE_READY;
+
+    /* Return HAL_ERROR */
+    return HAL_ERROR;
+  }
+
+  /* Delay to assure PHY reset */
+  HAL_Delay(PHY_RESET_DELAY);
+
+  if((heth->Init).AutoNegotiation != ETH_AUTONEGOTIATION_DISABLE)
+  {
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* We wait for linked status */
+    do
+    {
+      HAL_ETH_ReadPHYRegister(heth, PHY_BSR, &phyreg);
+
+      /* Check for the Timeout */
+      if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_LINKED_STATE)
+      {
+        /* In case of write timeout */
+        err = ETH_ERROR;
+
+        /* Config MAC and DMA */
+        ETH_MACDMAConfig(heth, err);
+
+        heth->State= HAL_ETH_STATE_READY;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(heth);
+
+        return HAL_TIMEOUT;
+      }
+    } while (((phyreg & PHY_LINKED_STATUS) != PHY_LINKED_STATUS));
+
+
+    /* Enable Auto-Negotiation */
+    if((HAL_ETH_WritePHYRegister(heth, PHY_BCR, PHY_AUTONEGOTIATION)) != HAL_OK)
+    {
+      /* In case of write timeout */
+      err = ETH_ERROR;
+
+      /* Config MAC and DMA */
+      ETH_MACDMAConfig(heth, err);
+
+      /* Set the ETH peripheral state to READY */
+      heth->State = HAL_ETH_STATE_READY;
+
+      /* Return HAL_ERROR */
+      return HAL_ERROR;
+    }
+
+    /* Get tick */
+    tickstart = HAL_GetTick();
+
+    /* Wait until the auto-negotiation will be completed */
+    do
+    {
+      HAL_ETH_ReadPHYRegister(heth, PHY_BSR, &phyreg);
+
+      /* Check for the Timeout */
+      if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_AUTONEGO_COMPLETED)
+      {
+        /* In case of write timeout */
+        err = ETH_ERROR;
+
+        /* Config MAC and DMA */
+        ETH_MACDMAConfig(heth, err);
+
+        heth->State= HAL_ETH_STATE_READY;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(heth);
+
+        return HAL_TIMEOUT;
+      }
+
+    } while (((phyreg & PHY_AUTONEGO_COMPLETE) != PHY_AUTONEGO_COMPLETE));
+
+    /* Read the result of the auto-negotiation */
+    if((HAL_ETH_ReadPHYRegister(heth, PHY_SR, &phyreg)) != HAL_OK)
+    {
+      /* In case of write timeout */
+      err = ETH_ERROR;
+
+      /* Config MAC and DMA */
+      ETH_MACDMAConfig(heth, err);
+
+      /* Set the ETH peripheral state to READY */
+      heth->State = HAL_ETH_STATE_READY;
+
+      /* Return HAL_ERROR */
+      return HAL_ERROR;
+    }
+
+    /* Configure the MAC with the Duplex Mode fixed by the auto-negotiation process */
+    if((phyreg & PHY_DUPLEX_STATUS) != (uint32_t)RESET)
+    {
+      /* Set Ethernet duplex mode to Full-duplex following the auto-negotiation */
+      (heth->Init).DuplexMode = ETH_MODE_FULLDUPLEX;
+    }
+    else
+    {
+      /* Set Ethernet duplex mode to Half-duplex following the auto-negotiation */
+      (heth->Init).DuplexMode = ETH_MODE_HALFDUPLEX;
+    }
+    /* Configure the MAC with the speed fixed by the auto-negotiation process */
+    if((phyreg & PHY_SPEED_STATUS) == PHY_SPEED_STATUS)
+    {
+      /* Set Ethernet speed to 10M following the auto-negotiation */
+      (heth->Init).Speed = ETH_SPEED_10M;
+    }
+    else
+    {
+      /* Set Ethernet speed to 100M following the auto-negotiation */
+      (heth->Init).Speed = ETH_SPEED_100M;
+    }
+  }
+  else /* AutoNegotiation Disable */
+  {
+    /* Check parameters */
+    assert_param(IS_ETH_SPEED(heth->Init.Speed));
+    assert_param(IS_ETH_DUPLEX_MODE(heth->Init.DuplexMode));
+
+    /* Set MAC Speed and Duplex Mode */
+    if(HAL_ETH_WritePHYRegister(heth, PHY_BCR, ((uint16_t)((heth->Init).DuplexMode >> 3U) |
+                                                (uint16_t)((heth->Init).Speed >> 1U))) != HAL_OK)
+    {
+      /* In case of write timeout */
+      err = ETH_ERROR;
+
+      /* Config MAC and DMA */
+      ETH_MACDMAConfig(heth, err);
+
+      /* Set the ETH peripheral state to READY */
+      heth->State = HAL_ETH_STATE_READY;
+
+      /* Return HAL_ERROR */
+      return HAL_ERROR;
+    }
+
+    /* Delay to assure PHY configuration */
+    HAL_Delay(PHY_CONFIG_DELAY);
+  }
+
+  /* Config MAC and DMA */
+  ETH_MACDMAConfig(heth, err);
+
+  /* Set ETH HAL State to Ready */
+  heth->State= HAL_ETH_STATE_READY;
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  De-Initializes the ETH peripheral.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth)
+{
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+  if(heth->MspDeInitCallback == NULL)
+  {
+    heth->MspDeInitCallback = HAL_ETH_MspDeInit;
+  }
+  /* De-Init the low level hardware : GPIO, CLOCK, NVIC. */
+  heth->MspDeInitCallback(heth);
+#else
+  /* De-Init the low level hardware : GPIO, CLOCK, NVIC. */
+  HAL_ETH_MspDeInit(heth);
+#endif
+
+  /* Set ETH HAL state to Disabled */
+  heth->State= HAL_ETH_STATE_RESET;
+
+  /* Release Lock */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Initializes the DMA Tx descriptors in chain mode.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  DMATxDescTab Pointer to the first Tx desc list
+  * @param  TxBuff Pointer to the first TxBuffer list
+  * @param  TxBuffCount Number of the used Tx desc in the list
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount)
+{
+  uint32_t i = 0U;
+  ETH_DMADescTypeDef *dmatxdesc;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
+  heth->TxDesc = DMATxDescTab;
+
+  /* Fill each DMATxDesc descriptor with the right values */
+  for(i=0U; i < TxBuffCount; i++)
+  {
+    /* Get the pointer on the ith member of the Tx Desc list */
+    dmatxdesc = DMATxDescTab + i;
+
+    /* Set Second Address Chained bit */
+    dmatxdesc->Status = ETH_DMATXDESC_TCH;
+
+    /* Set Buffer1 address pointer */
+    dmatxdesc->Buffer1Addr = (uint32_t)(&TxBuff[i*ETH_TX_BUF_SIZE]);
+
+    if ((heth->Init).ChecksumMode == ETH_CHECKSUM_BY_HARDWARE)
+    {
+      /* Set the DMA Tx descriptors checksum insertion */
+      dmatxdesc->Status |= ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL;
+    }
+
+    /* Initialize the next descriptor with the Next Descriptor Polling Enable */
+    if(i < (TxBuffCount-1U))
+    {
+      /* Set next descriptor address register with next descriptor base address */
+      dmatxdesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab+i+1U);
+    }
+    else
+    {
+      /* For last descriptor, set next descriptor address register equal to the first descriptor base address */
+      dmatxdesc->Buffer2NextDescAddr = (uint32_t) DMATxDescTab;
+    }
+  }
+
+  /* Set Transmit Descriptor List Address Register */
+  (heth->Instance)->DMATDLAR = (uint32_t) DMATxDescTab;
+
+  /* Set ETH HAL State to Ready */
+  heth->State= HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Initializes the DMA Rx descriptors in chain mode.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  DMARxDescTab Pointer to the first Rx desc list
+  * @param  RxBuff Pointer to the first RxBuffer list
+  * @param  RxBuffCount Number of the used Rx desc in the list
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount)
+{
+  uint32_t i = 0U;
+  ETH_DMADescTypeDef *DMARxDesc;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Set the Ethernet RxDesc pointer with the first one of the DMARxDescTab list */
+  heth->RxDesc = DMARxDescTab;
+
+  /* Fill each DMARxDesc descriptor with the right values */
+  for(i=0U; i < RxBuffCount; i++)
+  {
+    /* Get the pointer on the ith member of the Rx Desc list */
+    DMARxDesc = DMARxDescTab+i;
+
+    /* Set Own bit of the Rx descriptor Status */
+    DMARxDesc->Status = ETH_DMARXDESC_OWN;
+
+    /* Set Buffer1 size and Second Address Chained bit */
+    DMARxDesc->ControlBufferSize = ETH_DMARXDESC_RCH | ETH_RX_BUF_SIZE;
+
+    /* Set Buffer1 address pointer */
+    DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i*ETH_RX_BUF_SIZE]);
+
+    if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE)
+    {
+      /* Enable Ethernet DMA Rx Descriptor interrupt */
+      DMARxDesc->ControlBufferSize &= ~ETH_DMARXDESC_DIC;
+    }
+
+    /* Initialize the next descriptor with the Next Descriptor Polling Enable */
+    if(i < (RxBuffCount-1U))
+    {
+      /* Set next descriptor address register with next descriptor base address */
+      DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab+i+1U);
+    }
+    else
+    {
+      /* For last descriptor, set next descriptor address register equal to the first descriptor base address */
+      DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab);
+    }
+  }
+
+  /* Set Receive Descriptor List Address Register */
+  (heth->Instance)->DMARDLAR = (uint32_t) DMARxDescTab;
+
+  /* Set ETH HAL State to Ready */
+  heth->State= HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Initializes the ETH MSP.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_MspInit could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  DeInitializes ETH MSP.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_MspDeInit could be implemented in the user file
+  */
+}
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+/**
+  * @brief  Register a User ETH Callback
+  *         To be used instead of the weak predefined callback
+  * @param heth eth handle
+  * @param CallbackID ID of the callback to be registered
+  *        This parameter can be one of the following values:
+  *          @arg @ref HAL_ETH_TX_COMPLETE_CB_ID Tx Complete Callback ID
+  *          @arg @ref HAL_ETH_RX_COMPLETE_CB_ID Rx Complete Callback ID
+  *          @arg @ref HAL_ETH_DMA_ERROR_CB_ID   DMA Error Callback ID
+  *          @arg @ref HAL_ETH_MSPINIT_CB_ID     MspInit callback ID
+  *          @arg @ref HAL_ETH_MSPDEINIT_CB_ID   MspDeInit callback ID
+  * @param pCallback pointer to the Callback function
+  * @retval status
+  */
+HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID, pETH_CallbackTypeDef pCallback)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  if(pCallback == NULL)
+  {
+    return HAL_ERROR;
+  }
+  /* Process locked */
+  __HAL_LOCK(heth);
+
+  if(heth->State == HAL_ETH_STATE_READY)
+  {
+    switch (CallbackID)
+    {
+    case HAL_ETH_TX_COMPLETE_CB_ID :
+      heth->TxCpltCallback = pCallback;
+      break;
+
+    case HAL_ETH_RX_COMPLETE_CB_ID :
+      heth->RxCpltCallback = pCallback;
+      break;
+
+    case HAL_ETH_DMA_ERROR_CB_ID :
+      heth->DMAErrorCallback = pCallback;
+      break;
+
+    case HAL_ETH_MSPINIT_CB_ID :
+      heth->MspInitCallback = pCallback;
+      break;
+
+    case HAL_ETH_MSPDEINIT_CB_ID :
+      heth->MspDeInitCallback = pCallback;
+      break;
+
+    default :
+      /* Return error status */
+      status =  HAL_ERROR;
+      break;
+    }
+  }
+  else if(heth->State == HAL_ETH_STATE_RESET)
+  {
+    switch (CallbackID)
+    {
+    case HAL_ETH_MSPINIT_CB_ID :
+      heth->MspInitCallback = pCallback;
+      break;
+
+    case HAL_ETH_MSPDEINIT_CB_ID :
+      heth->MspDeInitCallback = pCallback;
+      break;
+
+    default :
+      /* Return error status */
+      status =  HAL_ERROR;
+      break;
+    }
+  }
+  else
+  {
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(heth);
+
+  return status;
+}
+
+/**
+  * @brief  Unregister an ETH Callback
+  *         ETH callabck is redirected to the weak predefined callback
+  * @param heth eth handle
+  * @param CallbackID ID of the callback to be unregistered
+  *        This parameter can be one of the following values:
+  *          @arg @ref HAL_ETH_TX_COMPLETE_CB_ID Tx Complete Callback ID
+  *          @arg @ref HAL_ETH_RX_COMPLETE_CB_ID Rx Complete Callback ID
+  *          @arg @ref HAL_ETH_DMA_ERROR_CB_ID      DMA Error Callback ID
+  *          @arg @ref HAL_ETH_MSPINIT_CB_ID     MspInit callback ID
+  *          @arg @ref HAL_ETH_MSPDEINIT_CB_ID   MspDeInit callback ID
+  * @retval status
+  */
+HAL_StatusTypeDef HAL_ETH_UnRegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Process locked */
+  __HAL_LOCK(heth);
+
+  if(heth->State == HAL_ETH_STATE_READY)
+  {
+    switch (CallbackID)
+    {
+    case HAL_ETH_TX_COMPLETE_CB_ID :
+      heth->TxCpltCallback = HAL_ETH_TxCpltCallback;
+      break;
+
+    case HAL_ETH_RX_COMPLETE_CB_ID :
+      heth->RxCpltCallback = HAL_ETH_RxCpltCallback;
+      break;
+
+    case HAL_ETH_DMA_ERROR_CB_ID :
+      heth->DMAErrorCallback = HAL_ETH_ErrorCallback;
+      break;
+
+    case HAL_ETH_MSPINIT_CB_ID :
+      heth->MspInitCallback = HAL_ETH_MspInit;
+      break;
+
+    case HAL_ETH_MSPDEINIT_CB_ID :
+      heth->MspDeInitCallback = HAL_ETH_MspDeInit;
+      break;
+
+    default :
+      /* Return error status */
+      status =  HAL_ERROR;
+      break;
+    }
+  }
+  else if(heth->State == HAL_ETH_STATE_RESET)
+  {
+    switch (CallbackID)
+    {
+    case HAL_ETH_MSPINIT_CB_ID :
+      heth->MspInitCallback = HAL_ETH_MspInit;
+      break;
+
+    case HAL_ETH_MSPDEINIT_CB_ID :
+      heth->MspDeInitCallback = HAL_ETH_MspDeInit;
+      break;
+
+    default :
+      /* Return error status */
+      status =  HAL_ERROR;
+      break;
+    }
+  }
+  else
+  {
+    /* Return error status */
+    status =  HAL_ERROR;
+  }
+
+  /* Release Lock */
+  __HAL_UNLOCK(heth);
+
+  return status;
+}
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Exported_Functions_Group2 IO operation functions
+  *  @brief   Data transfers functions
+  *
+  @verbatim
+  ==============================================================================
+                          ##### IO operation functions #####
+  ==============================================================================
+  [..]  This section provides functions allowing to:
+        (+) Transmit a frame
+            HAL_ETH_TransmitFrame();
+        (+) Receive a frame
+            HAL_ETH_GetReceivedFrame();
+            HAL_ETH_GetReceivedFrame_IT();
+        (+) Read from an External PHY register
+            HAL_ETH_ReadPHYRegister();
+        (+) Write to an External PHY register
+            HAL_ETH_WritePHYRegister();
+
+  @endverbatim
+
+  * @{
+  */
+
+/**
+  * @brief  Sends an Ethernet frame.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  FrameLength Amount of data to be sent
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength)
+{
+  uint32_t bufcount = 0U, size = 0U, i = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  if (FrameLength == 0U)
+  {
+    /* Set ETH HAL state to READY */
+    heth->State = HAL_ETH_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(heth);
+
+    return  HAL_ERROR;
+  }
+
+  /* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
+  if(((heth->TxDesc)->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
+  {
+    /* OWN bit set */
+    heth->State = HAL_ETH_STATE_BUSY_TX;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(heth);
+
+    return HAL_ERROR;
+  }
+
+  /* Get the number of needed Tx buffers for the current frame */
+  if (FrameLength > ETH_TX_BUF_SIZE)
+  {
+    bufcount = FrameLength/ETH_TX_BUF_SIZE;
+    if (FrameLength % ETH_TX_BUF_SIZE)
+    {
+      bufcount++;
+    }
+  }
+  else
+  {
+    bufcount = 1U;
+  }
+  if (bufcount == 1U)
+  {
+    /* Set LAST and FIRST segment */
+    heth->TxDesc->Status |=ETH_DMATXDESC_FS|ETH_DMATXDESC_LS;
+    /* Set frame size */
+    heth->TxDesc->ControlBufferSize = (FrameLength & ETH_DMATXDESC_TBS1);
+    /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
+    heth->TxDesc->Status |= ETH_DMATXDESC_OWN;
+    /* Point to next descriptor */
+    heth->TxDesc= (ETH_DMADescTypeDef *)(heth->TxDesc->Buffer2NextDescAddr);
+  }
+  else
+  {
+    for (i=0U; i< bufcount; i++)
+    {
+      /* Clear FIRST and LAST segment bits */
+      heth->TxDesc->Status &= ~(ETH_DMATXDESC_FS | ETH_DMATXDESC_LS);
+
+      if (i == 0U)
+      {
+        /* Setting the first segment bit */
+        heth->TxDesc->Status |= ETH_DMATXDESC_FS;
+      }
+
+      /* Program size */
+      heth->TxDesc->ControlBufferSize = (ETH_TX_BUF_SIZE & ETH_DMATXDESC_TBS1);
+
+      if (i == (bufcount-1U))
+      {
+        /* Setting the last segment bit */
+        heth->TxDesc->Status |= ETH_DMATXDESC_LS;
+        size = FrameLength - (bufcount-1U)*ETH_TX_BUF_SIZE;
+        heth->TxDesc->ControlBufferSize = (size & ETH_DMATXDESC_TBS1);
+      }
+
+      /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
+      heth->TxDesc->Status |= ETH_DMATXDESC_OWN;
+      /* point to next descriptor */
+      heth->TxDesc = (ETH_DMADescTypeDef *)(heth->TxDesc->Buffer2NextDescAddr);
+    }
+  }
+
+  /* When Tx Buffer unavailable flag is set: clear it and resume transmission */
+  if (((heth->Instance)->DMASR & ETH_DMASR_TBUS) != (uint32_t)RESET)
+  {
+    /* Clear TBUS ETHERNET DMA flag */
+    (heth->Instance)->DMASR = ETH_DMASR_TBUS;
+    /* Resume DMA transmission*/
+    (heth->Instance)->DMATPDR = 0U;
+  }
+
+  /* Set ETH HAL State to Ready */
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Checks for received frames.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth)
+{
+  uint32_t framelength = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Check the ETH state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Check if segment is not owned by DMA */
+  /* (((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET) && ((heth->RxDesc->Status & ETH_DMARXDESC_LS) != (uint32_t)RESET)) */
+  if(((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET))
+  {
+    /* Check if last segment */
+    if(((heth->RxDesc->Status & ETH_DMARXDESC_LS) != (uint32_t)RESET))
+    {
+      /* increment segment count */
+      (heth->RxFrameInfos).SegCount++;
+
+      /* Check if last segment is first segment: one segment contains the frame */
+      if ((heth->RxFrameInfos).SegCount == 1U)
+      {
+        (heth->RxFrameInfos).FSRxDesc =heth->RxDesc;
+      }
+
+      heth->RxFrameInfos.LSRxDesc = heth->RxDesc;
+
+      /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
+      framelength = (((heth->RxDesc)->Status & ETH_DMARXDESC_FL) >> ETH_DMARXDESC_FRAMELENGTHSHIFT) - 4U;
+      heth->RxFrameInfos.length = framelength;
+
+      /* Get the address of the buffer start address */
+      heth->RxFrameInfos.buffer = ((heth->RxFrameInfos).FSRxDesc)->Buffer1Addr;
+      /* point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*) ((heth->RxDesc)->Buffer2NextDescAddr);
+
+      /* Set HAL State to Ready */
+      heth->State = HAL_ETH_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(heth);
+
+      /* Return function status */
+      return HAL_OK;
+    }
+    /* Check if first segment */
+    else if((heth->RxDesc->Status & ETH_DMARXDESC_FS) != (uint32_t)RESET)
+    {
+      (heth->RxFrameInfos).FSRxDesc = heth->RxDesc;
+      (heth->RxFrameInfos).LSRxDesc = NULL;
+      (heth->RxFrameInfos).SegCount = 1U;
+      /* Point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
+    }
+    /* Check if intermediate segment */
+    else
+    {
+      (heth->RxFrameInfos).SegCount++;
+      /* Point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
+    }
+  }
+
+  /* Set ETH HAL State to Ready */
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  Gets the Received frame in interrupt mode.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_GetReceivedFrame_IT(ETH_HandleTypeDef *heth)
+{
+  uint32_t descriptorscancounter = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set ETH HAL State to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Scan descriptors owned by CPU */
+  while (((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET) && (descriptorscancounter < ETH_RXBUFNB))
+  {
+    /* Just for security */
+    descriptorscancounter++;
+
+    /* Check if first segment in frame */
+    /* ((heth->RxDesc->Status & ETH_DMARXDESC_FS) != (uint32_t)RESET) && ((heth->RxDesc->Status & ETH_DMARXDESC_LS) == (uint32_t)RESET)) */
+    if((heth->RxDesc->Status & (ETH_DMARXDESC_FS | ETH_DMARXDESC_LS)) == (uint32_t)ETH_DMARXDESC_FS)
+    {
+      heth->RxFrameInfos.FSRxDesc = heth->RxDesc;
+      heth->RxFrameInfos.SegCount = 1U;
+      /* Point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
+    }
+    /* Check if intermediate segment */
+    /* ((heth->RxDesc->Status & ETH_DMARXDESC_LS) == (uint32_t)RESET)&& ((heth->RxDesc->Status & ETH_DMARXDESC_FS) == (uint32_t)RESET)) */
+    else if ((heth->RxDesc->Status & (ETH_DMARXDESC_LS | ETH_DMARXDESC_FS)) == (uint32_t)RESET)
+    {
+      /* Increment segment count */
+      (heth->RxFrameInfos.SegCount)++;
+      /* Point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*)(heth->RxDesc->Buffer2NextDescAddr);
+    }
+    /* Should be last segment */
+    else
+    {
+      /* Last segment */
+      heth->RxFrameInfos.LSRxDesc = heth->RxDesc;
+
+      /* Increment segment count */
+      (heth->RxFrameInfos.SegCount)++;
+
+      /* Check if last segment is first segment: one segment contains the frame */
+      if ((heth->RxFrameInfos.SegCount) == 1U)
+      {
+        heth->RxFrameInfos.FSRxDesc = heth->RxDesc;
+      }
+
+      /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
+      heth->RxFrameInfos.length = (((heth->RxDesc)->Status & ETH_DMARXDESC_FL) >> ETH_DMARXDESC_FRAMELENGTHSHIFT) - 4U;
+
+      /* Get the address of the buffer start address */
+      heth->RxFrameInfos.buffer =((heth->RxFrameInfos).FSRxDesc)->Buffer1Addr;
+
+      /* Point to next descriptor */
+      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
+
+      /* Set HAL State to Ready */
+      heth->State = HAL_ETH_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(heth);
+
+      /* Return function status */
+      return HAL_OK;
+    }
+  }
+
+  /* Set HAL State to Ready */
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  This function handles ETH interrupt request.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth)
+{
+  /* Frame received */
+  if (__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_R))
+  {
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    /*Call registered Receive complete callback*/
+    heth->RxCpltCallback(heth);
+#else
+    /* Receive complete callback */
+    HAL_ETH_RxCpltCallback(heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+     /* Clear the Eth DMA Rx IT pending bits */
+    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_R);
+
+    /* Set HAL State to Ready */
+    heth->State = HAL_ETH_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(heth);
+
+  }
+  /* Frame transmitted */
+  else if (__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_T))
+  {
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    /*  Call resgistered Transfer complete callback*/
+    heth->TxCpltCallback(heth);
+#else
+    /* Transfer complete callback */
+    HAL_ETH_TxCpltCallback(heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+    /* Clear the Eth DMA Tx IT pending bits */
+    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_T);
+
+    /* Set HAL State to Ready */
+    heth->State = HAL_ETH_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(heth);
+  }
+
+  /* Clear the interrupt flags */
+  __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_NIS);
+
+  /* ETH DMA Error */
+  if(__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_AIS))
+  {
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    heth->DMAErrorCallback(heth);
+#else
+    /* Ethernet Error callback */
+    HAL_ETH_ErrorCallback(heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+    /* Clear the interrupt flags */
+    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_FLAG_AIS);
+
+    /* Set HAL State to Ready */
+    heth->State = HAL_ETH_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(heth);
+  }
+}
+
+/**
+  * @brief  Tx Transfer completed callbacks.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_TxCpltCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Rx Transfer completed callbacks.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_TxCpltCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Ethernet transfer error callbacks
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_TxCpltCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Reads a PHY register
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param PHYReg PHY register address, is the index of one of the 32 PHY register.
+  *                This parameter can be one of the following values:
+  *                   PHY_BCR: Transceiver Basic Control Register,
+  *                   PHY_BSR: Transceiver Basic Status Register.
+  *                   More PHY register could be read depending on the used PHY
+  * @param RegValue PHY register value
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue)
+{
+  uint32_t tmpreg1 = 0U;
+  uint32_t tickstart = 0U;
+
+  /* Check parameters */
+  assert_param(IS_ETH_PHY_ADDRESS(heth->Init.PhyAddress));
+
+  /* Check the ETH peripheral state */
+  if(heth->State == HAL_ETH_STATE_BUSY_RD)
+  {
+    return HAL_BUSY;
+  }
+  /* Set ETH HAL State to BUSY_RD */
+  heth->State = HAL_ETH_STATE_BUSY_RD;
+
+  /* Get the ETHERNET MACMIIAR value */
+  tmpreg1 = heth->Instance->MACMIIAR;
+
+  /* Keep only the CSR Clock Range CR[2:0] bits value */
+  tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
+
+  /* Prepare the MII address register value */
+  tmpreg1 |=(((uint32_t)heth->Init.PhyAddress << 11U) & ETH_MACMIIAR_PA); /* Set the PHY device address   */
+  tmpreg1 |=(((uint32_t)PHYReg<<6U) & ETH_MACMIIAR_MR);                   /* Set the PHY register address */
+  tmpreg1 &= ~ETH_MACMIIAR_MW;                                            /* Set the read mode            */
+  tmpreg1 |= ETH_MACMIIAR_MB;                                             /* Set the MII Busy bit         */
+
+  /* Write the result value into the MII Address register */
+  heth->Instance->MACMIIAR = tmpreg1;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Check for the Busy flag */
+  while((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
+  {
+    /* Check for the Timeout */
+    if((HAL_GetTick() - tickstart ) > PHY_READ_TO)
+    {
+      heth->State= HAL_ETH_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(heth);
+
+      return HAL_TIMEOUT;
+    }
+
+    tmpreg1 = heth->Instance->MACMIIAR;
+  }
+
+  /* Get MACMIIDR value */
+  *RegValue = (uint16_t)(heth->Instance->MACMIIDR);
+
+  /* Set ETH HAL State to READY */
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Writes to a PHY register.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  PHYReg PHY register address, is the index of one of the 32 PHY register.
+  *          This parameter can be one of the following values:
+  *             PHY_BCR: Transceiver Control Register.
+  *             More PHY register could be written depending on the used PHY
+  * @param  RegValue the value to write
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t RegValue)
+{
+  uint32_t tmpreg1 = 0U;
+  uint32_t tickstart = 0U;
+
+  /* Check parameters */
+  assert_param(IS_ETH_PHY_ADDRESS(heth->Init.PhyAddress));
+
+  /* Check the ETH peripheral state */
+  if(heth->State == HAL_ETH_STATE_BUSY_WR)
+  {
+    return HAL_BUSY;
+  }
+  /* Set ETH HAL State to BUSY_WR */
+  heth->State = HAL_ETH_STATE_BUSY_WR;
+
+  /* Get the ETHERNET MACMIIAR value */
+  tmpreg1 = heth->Instance->MACMIIAR;
+
+  /* Keep only the CSR Clock Range CR[2:0] bits value */
+  tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
+
+  /* Prepare the MII register address value */
+  tmpreg1 |=(((uint32_t)heth->Init.PhyAddress<<11U) & ETH_MACMIIAR_PA); /* Set the PHY device address */
+  tmpreg1 |=(((uint32_t)PHYReg<<6U) & ETH_MACMIIAR_MR);                 /* Set the PHY register address */
+  tmpreg1 |= ETH_MACMIIAR_MW;                                           /* Set the write mode */
+  tmpreg1 |= ETH_MACMIIAR_MB;                                           /* Set the MII Busy bit */
+
+  /* Give the value to the MII data register */
+  heth->Instance->MACMIIDR = (uint16_t)RegValue;
+
+  /* Write the result value into the MII Address register */
+  heth->Instance->MACMIIAR = tmpreg1;
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Check for the Busy flag */
+  while((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
+  {
+    /* Check for the Timeout */
+    if((HAL_GetTick() - tickstart ) > PHY_WRITE_TO)
+    {
+      heth->State= HAL_ETH_STATE_READY;
+
+      /* Process Unlocked */
+      __HAL_UNLOCK(heth);
+
+      return HAL_TIMEOUT;
+    }
+
+    tmpreg1 = heth->Instance->MACMIIAR;
+  }
+
+  /* Set ETH HAL State to READY */
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Exported_Functions_Group3 Peripheral Control functions
+ *  @brief    Peripheral Control functions
+ *
+@verbatim
+ ===============================================================================
+                  ##### Peripheral Control functions #####
+ ===============================================================================
+    [..]  This section provides functions allowing to:
+      (+) Enable MAC and DMA transmission and reception.
+          HAL_ETH_Start();
+      (+) Disable MAC and DMA transmission and reception.
+          HAL_ETH_Stop();
+      (+) Set the MAC configuration in runtime mode
+          HAL_ETH_ConfigMAC();
+      (+) Set the DMA configuration in runtime mode
+          HAL_ETH_ConfigDMA();
+
+@endverbatim
+  * @{
+  */
+
+ /**
+  * @brief  Enables Ethernet MAC and DMA reception/transmission
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
+{
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Enable transmit state machine of the MAC for transmission on the MII */
+  ETH_MACTransmissionEnable(heth);
+
+  /* Enable receive state machine of the MAC for reception from the MII */
+  ETH_MACReceptionEnable(heth);
+
+  /* Flush Transmit FIFO */
+  ETH_FlushTransmitFIFO(heth);
+
+  /* Start DMA transmission */
+  ETH_DMATransmissionEnable(heth);
+
+  /* Start DMA reception */
+  ETH_DMAReceptionEnable(heth);
+
+  /* Set the ETH state to READY*/
+  heth->State= HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Stop Ethernet MAC and DMA reception/transmission
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
+{
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State = HAL_ETH_STATE_BUSY;
+
+  /* Stop DMA transmission */
+  ETH_DMATransmissionDisable(heth);
+
+  /* Stop DMA reception */
+  ETH_DMAReceptionDisable(heth);
+
+  /* Disable receive state machine of the MAC for reception from the MII */
+  ETH_MACReceptionDisable(heth);
+
+  /* Flush Transmit FIFO */
+  ETH_FlushTransmitFIFO(heth);
+
+  /* Disable transmit state machine of the MAC for transmission on the MII */
+  ETH_MACTransmissionDisable(heth);
+
+  /* Set the ETH state*/
+  heth->State = HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Set ETH MAC Configuration.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  macconf MAC Configuration structure
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_ConfigMAC(ETH_HandleTypeDef *heth, ETH_MACInitTypeDef *macconf)
+{
+  uint32_t tmpreg1 = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State= HAL_ETH_STATE_BUSY;
+
+  assert_param(IS_ETH_SPEED(heth->Init.Speed));
+  assert_param(IS_ETH_DUPLEX_MODE(heth->Init.DuplexMode));
+
+  if (macconf != NULL)
+  {
+    /* Check the parameters */
+    assert_param(IS_ETH_WATCHDOG(macconf->Watchdog));
+    assert_param(IS_ETH_JABBER(macconf->Jabber));
+    assert_param(IS_ETH_INTER_FRAME_GAP(macconf->InterFrameGap));
+    assert_param(IS_ETH_CARRIER_SENSE(macconf->CarrierSense));
+    assert_param(IS_ETH_RECEIVE_OWN(macconf->ReceiveOwn));
+    assert_param(IS_ETH_LOOPBACK_MODE(macconf->LoopbackMode));
+    assert_param(IS_ETH_CHECKSUM_OFFLOAD(macconf->ChecksumOffload));
+    assert_param(IS_ETH_RETRY_TRANSMISSION(macconf->RetryTransmission));
+    assert_param(IS_ETH_AUTOMATIC_PADCRC_STRIP(macconf->AutomaticPadCRCStrip));
+    assert_param(IS_ETH_BACKOFF_LIMIT(macconf->BackOffLimit));
+    assert_param(IS_ETH_DEFERRAL_CHECK(macconf->DeferralCheck));
+    assert_param(IS_ETH_RECEIVE_ALL(macconf->ReceiveAll));
+    assert_param(IS_ETH_SOURCE_ADDR_FILTER(macconf->SourceAddrFilter));
+    assert_param(IS_ETH_CONTROL_FRAMES(macconf->PassControlFrames));
+    assert_param(IS_ETH_BROADCAST_FRAMES_RECEPTION(macconf->BroadcastFramesReception));
+    assert_param(IS_ETH_DESTINATION_ADDR_FILTER(macconf->DestinationAddrFilter));
+    assert_param(IS_ETH_PROMISCUOUS_MODE(macconf->PromiscuousMode));
+    assert_param(IS_ETH_MULTICAST_FRAMES_FILTER(macconf->MulticastFramesFilter));
+    assert_param(IS_ETH_UNICAST_FRAMES_FILTER(macconf->UnicastFramesFilter));
+    assert_param(IS_ETH_PAUSE_TIME(macconf->PauseTime));
+    assert_param(IS_ETH_ZEROQUANTA_PAUSE(macconf->ZeroQuantaPause));
+    assert_param(IS_ETH_PAUSE_LOW_THRESHOLD(macconf->PauseLowThreshold));
+    assert_param(IS_ETH_UNICAST_PAUSE_FRAME_DETECT(macconf->UnicastPauseFrameDetect));
+    assert_param(IS_ETH_RECEIVE_FLOWCONTROL(macconf->ReceiveFlowControl));
+    assert_param(IS_ETH_TRANSMIT_FLOWCONTROL(macconf->TransmitFlowControl));
+    assert_param(IS_ETH_VLAN_TAG_COMPARISON(macconf->VLANTagComparison));
+    assert_param(IS_ETH_VLAN_TAG_IDENTIFIER(macconf->VLANTagIdentifier));
+
+    /*------------------------ ETHERNET MACCR Configuration --------------------*/
+    /* Get the ETHERNET MACCR value */
+    tmpreg1 = (heth->Instance)->MACCR;
+    /* Clear WD, PCE, PS, TE and RE bits */
+    tmpreg1 &= ETH_MACCR_CLEAR_MASK;
+
+    tmpreg1 |= (uint32_t)(macconf->Watchdog |
+                         macconf->Jabber |
+                         macconf->InterFrameGap |
+                         macconf->CarrierSense |
+                         (heth->Init).Speed |
+                         macconf->ReceiveOwn |
+                         macconf->LoopbackMode |
+                         (heth->Init).DuplexMode |
+                         macconf->ChecksumOffload |
+                         macconf->RetryTransmission |
+                         macconf->AutomaticPadCRCStrip |
+                         macconf->BackOffLimit |
+                         macconf->DeferralCheck);
+
+    /* Write to ETHERNET MACCR */
+    (heth->Instance)->MACCR = (uint32_t)tmpreg1;
+
+    /* Wait until the write operation will be taken into account :
+    at least four TX_CLK/RX_CLK clock cycles */
+    tmpreg1 = (heth->Instance)->MACCR;
+    HAL_Delay(ETH_REG_WRITE_DELAY);
+    (heth->Instance)->MACCR = tmpreg1;
+
+    /*----------------------- ETHERNET MACFFR Configuration --------------------*/
+    /* Write to ETHERNET MACFFR */
+    (heth->Instance)->MACFFR = (uint32_t)(macconf->ReceiveAll |
+                                          macconf->SourceAddrFilter |
+                                          macconf->PassControlFrames |
+                                          macconf->BroadcastFramesReception |
+                                          macconf->DestinationAddrFilter |
+                                          macconf->PromiscuousMode |
+                                          macconf->MulticastFramesFilter |
+                                          macconf->UnicastFramesFilter);
+
+     /* Wait until the write operation will be taken into account :
+     at least four TX_CLK/RX_CLK clock cycles */
+     tmpreg1 = (heth->Instance)->MACFFR;
+     HAL_Delay(ETH_REG_WRITE_DELAY);
+     (heth->Instance)->MACFFR = tmpreg1;
+
+     /*--------------- ETHERNET MACHTHR and MACHTLR Configuration ---------------*/
+     /* Write to ETHERNET MACHTHR */
+     (heth->Instance)->MACHTHR = (uint32_t)macconf->HashTableHigh;
+
+     /* Write to ETHERNET MACHTLR */
+     (heth->Instance)->MACHTLR = (uint32_t)macconf->HashTableLow;
+     /*----------------------- ETHERNET MACFCR Configuration --------------------*/
+
+     /* Get the ETHERNET MACFCR value */
+     tmpreg1 = (heth->Instance)->MACFCR;
+     /* Clear xx bits */
+     tmpreg1 &= ETH_MACFCR_CLEAR_MASK;
+
+     tmpreg1 |= (uint32_t)((macconf->PauseTime << 16U) |
+                          macconf->ZeroQuantaPause |
+                          macconf->PauseLowThreshold |
+                          macconf->UnicastPauseFrameDetect |
+                          macconf->ReceiveFlowControl |
+                          macconf->TransmitFlowControl);
+
+     /* Write to ETHERNET MACFCR */
+     (heth->Instance)->MACFCR = (uint32_t)tmpreg1;
+
+     /* Wait until the write operation will be taken into account :
+     at least four TX_CLK/RX_CLK clock cycles */
+     tmpreg1 = (heth->Instance)->MACFCR;
+     HAL_Delay(ETH_REG_WRITE_DELAY);
+     (heth->Instance)->MACFCR = tmpreg1;
+
+     /*----------------------- ETHERNET MACVLANTR Configuration -----------------*/
+     (heth->Instance)->MACVLANTR = (uint32_t)(macconf->VLANTagComparison |
+                                              macconf->VLANTagIdentifier);
+
+      /* Wait until the write operation will be taken into account :
+      at least four TX_CLK/RX_CLK clock cycles */
+      tmpreg1 = (heth->Instance)->MACVLANTR;
+      HAL_Delay(ETH_REG_WRITE_DELAY);
+      (heth->Instance)->MACVLANTR = tmpreg1;
+  }
+  else /* macconf == NULL : here we just configure Speed and Duplex mode */
+  {
+    /*------------------------ ETHERNET MACCR Configuration --------------------*/
+    /* Get the ETHERNET MACCR value */
+    tmpreg1 = (heth->Instance)->MACCR;
+
+    /* Clear FES and DM bits */
+    tmpreg1 &= ~(0x00004800U);
+
+    tmpreg1 |= (uint32_t)(heth->Init.Speed | heth->Init.DuplexMode);
+
+    /* Write to ETHERNET MACCR */
+    (heth->Instance)->MACCR = (uint32_t)tmpreg1;
+
+    /* Wait until the write operation will be taken into account:
+    at least four TX_CLK/RX_CLK clock cycles */
+    tmpreg1 = (heth->Instance)->MACCR;
+    HAL_Delay(ETH_REG_WRITE_DELAY);
+    (heth->Instance)->MACCR = tmpreg1;
+  }
+
+  /* Set the ETH state to Ready */
+  heth->State= HAL_ETH_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(heth);
+
+  /* Return function status */
+  return HAL_OK;
+}
+
+/**
+  * @brief  Sets ETH DMA Configuration.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  dmaconf DMA Configuration structure
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_ConfigDMA(ETH_HandleTypeDef *heth, ETH_DMAInitTypeDef *dmaconf)
+{
+  uint32_t tmpreg1 = 0U;
+
+  /* Process Locked */
+  __HAL_LOCK(heth);
+
+  /* Set the ETH peripheral state to BUSY */
+  heth->State= HAL_ETH_STATE_BUSY;
+
+  /* Check parameters */
+  assert_param(IS_ETH_DROP_TCPIP_CHECKSUM_FRAME(dmaconf->DropTCPIPChecksumErrorFrame));
+  assert_param(IS_ETH_RECEIVE_STORE_FORWARD(dmaconf->ReceiveStoreForward));
+  assert_param(IS_ETH_FLUSH_RECEIVE_FRAME(dmaconf->FlushReceivedFrame));
+  assert_param(IS_ETH_TRANSMIT_STORE_FORWARD(dmaconf->TransmitStoreForward));
+  assert_param(IS_ETH_TRANSMIT_THRESHOLD_CONTROL(dmaconf->TransmitThresholdControl));
+  assert_param(IS_ETH_FORWARD_ERROR_FRAMES(dmaconf->ForwardErrorFrames));
+  assert_param(IS_ETH_FORWARD_UNDERSIZED_GOOD_FRAMES(dmaconf->ForwardUndersizedGoodFrames));
+  assert_param(IS_ETH_RECEIVE_THRESHOLD_CONTROL(dmaconf->ReceiveThresholdControl));
+  assert_param(IS_ETH_SECOND_FRAME_OPERATE(dmaconf->SecondFrameOperate));
+  assert_param(IS_ETH_ADDRESS_ALIGNED_BEATS(dmaconf->AddressAlignedBeats));
+  assert_param(IS_ETH_FIXED_BURST(dmaconf->FixedBurst));
+  assert_param(IS_ETH_RXDMA_BURST_LENGTH(dmaconf->RxDMABurstLength));
+  assert_param(IS_ETH_TXDMA_BURST_LENGTH(dmaconf->TxDMABurstLength));
+  assert_param(IS_ETH_ENHANCED_DESCRIPTOR_FORMAT(dmaconf->EnhancedDescriptorFormat));
+  assert_param(IS_ETH_DMA_DESC_SKIP_LENGTH(dmaconf->DescriptorSkipLength));
+  assert_param(IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(dmaconf->DMAArbitration));
+
+  /*----------------------- ETHERNET DMAOMR Configuration --------------------*/
+  /* Get the ETHERNET DMAOMR value */
+  tmpreg1 = (heth->Instance)->DMAOMR;
+  /* Clear xx bits */
+  tmpreg1 &= ETH_DMAOMR_CLEAR_MASK;
+
+  tmpreg1 |= (uint32_t)(dmaconf->DropTCPIPChecksumErrorFrame |
+                       dmaconf->ReceiveStoreForward |
+                       dmaconf->FlushReceivedFrame |
+                       dmaconf->TransmitStoreForward |
+                       dmaconf->TransmitThresholdControl |
+                       dmaconf->ForwardErrorFrames |
+                       dmaconf->ForwardUndersizedGoodFrames |
+                       dmaconf->ReceiveThresholdControl |
+                       dmaconf->SecondFrameOperate);
+
+  /* Write to ETHERNET DMAOMR */
+  (heth->Instance)->DMAOMR = (uint32_t)tmpreg1;
+
+  /* Wait until the write operation will be taken into account:
+  at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->DMAOMR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->DMAOMR = tmpreg1;
+
+  /*----------------------- ETHERNET DMABMR Configuration --------------------*/
+  (heth->Instance)->DMABMR = (uint32_t)(dmaconf->AddressAlignedBeats |
+                                         dmaconf->FixedBurst |
+                                         dmaconf->RxDMABurstLength | /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
+                                         dmaconf->TxDMABurstLength |
+                                         dmaconf->EnhancedDescriptorFormat |
+                                         (dmaconf->DescriptorSkipLength << 2U) |
+                                         dmaconf->DMAArbitration |
+                                         ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
+
+   /* Wait until the write operation will be taken into account:
+      at least four TX_CLK/RX_CLK clock cycles */
+   tmpreg1 = (heth->Instance)->DMABMR;
+   HAL_Delay(ETH_REG_WRITE_DELAY);
+   (heth->Instance)->DMABMR = tmpreg1;
+
+   /* Set the ETH state to Ready */
+   heth->State= HAL_ETH_STATE_READY;
+
+   /* Process Unlocked */
+   __HAL_UNLOCK(heth);
+
+   /* Return function status */
+   return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Exported_Functions_Group4 Peripheral State functions
+  *  @brief   Peripheral State functions
+  *
+  @verbatim
+  ===============================================================================
+                         ##### Peripheral State functions #####
+  ===============================================================================
+  [..]
+  This subsection permits to get in run-time the status of the peripheral
+  and the data flow.
+       (+) Get the ETH handle state:
+           HAL_ETH_GetState();
+
+
+  @endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Return the ETH HAL state
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL state
+  */
+HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth)
+{
+  /* Return ETH state */
+  return heth->State;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/** @addtogroup ETH_Private_Functions
+  * @{
+  */
+
+/**
+  * @brief  Configures Ethernet MAC and DMA with default parameters.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  err Ethernet Init error
+  * @retval HAL status
+  */
+static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth, uint32_t err)
+{
+  ETH_MACInitTypeDef macinit;
+  ETH_DMAInitTypeDef dmainit;
+  uint32_t tmpreg1 = 0U;
+
+  if (err != ETH_SUCCESS) /* Auto-negotiation failed */
+  {
+    /* Set Ethernet duplex mode to Full-duplex */
+    (heth->Init).DuplexMode = ETH_MODE_FULLDUPLEX;
+
+    /* Set Ethernet speed to 100M */
+    (heth->Init).Speed = ETH_SPEED_100M;
+  }
+
+  /* Ethernet MAC default initialization **************************************/
+  macinit.Watchdog = ETH_WATCHDOG_ENABLE;
+  macinit.Jabber = ETH_JABBER_ENABLE;
+  macinit.InterFrameGap = ETH_INTERFRAMEGAP_96BIT;
+  macinit.CarrierSense = ETH_CARRIERSENCE_ENABLE;
+  macinit.ReceiveOwn = ETH_RECEIVEOWN_ENABLE;
+  macinit.LoopbackMode = ETH_LOOPBACKMODE_DISABLE;
+  if(heth->Init.ChecksumMode == ETH_CHECKSUM_BY_HARDWARE)
+  {
+    macinit.ChecksumOffload = ETH_CHECKSUMOFFLAOD_ENABLE;
+  }
+  else
+  {
+    macinit.ChecksumOffload = ETH_CHECKSUMOFFLAOD_DISABLE;
+  }
+  macinit.RetryTransmission = ETH_RETRYTRANSMISSION_DISABLE;
+  macinit.AutomaticPadCRCStrip = ETH_AUTOMATICPADCRCSTRIP_DISABLE;
+  macinit.BackOffLimit = ETH_BACKOFFLIMIT_10;
+  macinit.DeferralCheck = ETH_DEFFERRALCHECK_DISABLE;
+  macinit.ReceiveAll = ETH_RECEIVEAll_DISABLE;
+  macinit.SourceAddrFilter = ETH_SOURCEADDRFILTER_DISABLE;
+  macinit.PassControlFrames = ETH_PASSCONTROLFRAMES_BLOCKALL;
+  macinit.BroadcastFramesReception = ETH_BROADCASTFRAMESRECEPTION_ENABLE;
+  macinit.DestinationAddrFilter = ETH_DESTINATIONADDRFILTER_NORMAL;
+  macinit.PromiscuousMode = ETH_PROMISCUOUS_MODE_DISABLE;
+  macinit.MulticastFramesFilter = ETH_MULTICASTFRAMESFILTER_PERFECT;
+  macinit.UnicastFramesFilter = ETH_UNICASTFRAMESFILTER_PERFECT;
+  macinit.HashTableHigh = 0x0U;
+  macinit.HashTableLow = 0x0U;
+  macinit.PauseTime = 0x0U;
+  macinit.ZeroQuantaPause = ETH_ZEROQUANTAPAUSE_DISABLE;
+  macinit.PauseLowThreshold = ETH_PAUSELOWTHRESHOLD_MINUS4;
+  macinit.UnicastPauseFrameDetect = ETH_UNICASTPAUSEFRAMEDETECT_DISABLE;
+  macinit.ReceiveFlowControl = ETH_RECEIVEFLOWCONTROL_DISABLE;
+  macinit.TransmitFlowControl = ETH_TRANSMITFLOWCONTROL_DISABLE;
+  macinit.VLANTagComparison = ETH_VLANTAGCOMPARISON_16BIT;
+  macinit.VLANTagIdentifier = 0x0U;
+
+  /*------------------------ ETHERNET MACCR Configuration --------------------*/
+  /* Get the ETHERNET MACCR value */
+  tmpreg1 = (heth->Instance)->MACCR;
+  /* Clear WD, PCE, PS, TE and RE bits */
+  tmpreg1 &= ETH_MACCR_CLEAR_MASK;
+  /* Set the WD bit according to ETH Watchdog value */
+  /* Set the JD: bit according to ETH Jabber value */
+  /* Set the IFG bit according to ETH InterFrameGap value */
+  /* Set the DCRS bit according to ETH CarrierSense value */
+  /* Set the FES bit according to ETH Speed value */
+  /* Set the DO bit according to ETH ReceiveOwn value */
+  /* Set the LM bit according to ETH LoopbackMode value */
+  /* Set the DM bit according to ETH Mode value */
+  /* Set the IPCO bit according to ETH ChecksumOffload value */
+  /* Set the DR bit according to ETH RetryTransmission value */
+  /* Set the ACS bit according to ETH AutomaticPadCRCStrip value */
+  /* Set the BL bit according to ETH BackOffLimit value */
+  /* Set the DC bit according to ETH DeferralCheck value */
+  tmpreg1 |= (uint32_t)(macinit.Watchdog |
+                       macinit.Jabber |
+                       macinit.InterFrameGap |
+                       macinit.CarrierSense |
+                       (heth->Init).Speed |
+                       macinit.ReceiveOwn |
+                       macinit.LoopbackMode |
+                       (heth->Init).DuplexMode |
+                       macinit.ChecksumOffload |
+                       macinit.RetryTransmission |
+                       macinit.AutomaticPadCRCStrip |
+                       macinit.BackOffLimit |
+                       macinit.DeferralCheck);
+
+  /* Write to ETHERNET MACCR */
+  (heth->Instance)->MACCR = (uint32_t)tmpreg1;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+
+  /*----------------------- ETHERNET MACFFR Configuration --------------------*/
+  /* Set the RA bit according to ETH ReceiveAll value */
+  /* Set the SAF and SAIF bits according to ETH SourceAddrFilter value */
+  /* Set the PCF bit according to ETH PassControlFrames value */
+  /* Set the DBF bit according to ETH BroadcastFramesReception value */
+  /* Set the DAIF bit according to ETH DestinationAddrFilter value */
+  /* Set the PR bit according to ETH PromiscuousMode value */
+  /* Set the PM, HMC and HPF bits according to ETH MulticastFramesFilter value */
+  /* Set the HUC and HPF bits according to ETH UnicastFramesFilter value */
+  /* Write to ETHERNET MACFFR */
+  (heth->Instance)->MACFFR = (uint32_t)(macinit.ReceiveAll |
+                                        macinit.SourceAddrFilter |
+                                        macinit.PassControlFrames |
+                                        macinit.BroadcastFramesReception |
+                                        macinit.DestinationAddrFilter |
+                                        macinit.PromiscuousMode |
+                                        macinit.MulticastFramesFilter |
+                                        macinit.UnicastFramesFilter);
+
+   /* Wait until the write operation will be taken into account:
+      at least four TX_CLK/RX_CLK clock cycles */
+   tmpreg1 = (heth->Instance)->MACFFR;
+   HAL_Delay(ETH_REG_WRITE_DELAY);
+   (heth->Instance)->MACFFR = tmpreg1;
+
+   /*--------------- ETHERNET MACHTHR and MACHTLR Configuration --------------*/
+   /* Write to ETHERNET MACHTHR */
+   (heth->Instance)->MACHTHR = (uint32_t)macinit.HashTableHigh;
+
+   /* Write to ETHERNET MACHTLR */
+   (heth->Instance)->MACHTLR = (uint32_t)macinit.HashTableLow;
+   /*----------------------- ETHERNET MACFCR Configuration -------------------*/
+
+   /* Get the ETHERNET MACFCR value */
+   tmpreg1 = (heth->Instance)->MACFCR;
+   /* Clear xx bits */
+   tmpreg1 &= ETH_MACFCR_CLEAR_MASK;
+
+   /* Set the PT bit according to ETH PauseTime value */
+   /* Set the DZPQ bit according to ETH ZeroQuantaPause value */
+   /* Set the PLT bit according to ETH PauseLowThreshold value */
+   /* Set the UP bit according to ETH UnicastPauseFrameDetect value */
+   /* Set the RFE bit according to ETH ReceiveFlowControl value */
+   /* Set the TFE bit according to ETH TransmitFlowControl value */
+   tmpreg1 |= (uint32_t)((macinit.PauseTime << 16U) |
+                        macinit.ZeroQuantaPause |
+                        macinit.PauseLowThreshold |
+                        macinit.UnicastPauseFrameDetect |
+                        macinit.ReceiveFlowControl |
+                        macinit.TransmitFlowControl);
+
+   /* Write to ETHERNET MACFCR */
+   (heth->Instance)->MACFCR = (uint32_t)tmpreg1;
+
+   /* Wait until the write operation will be taken into account:
+   at least four TX_CLK/RX_CLK clock cycles */
+   tmpreg1 = (heth->Instance)->MACFCR;
+   HAL_Delay(ETH_REG_WRITE_DELAY);
+   (heth->Instance)->MACFCR = tmpreg1;
+
+   /*----------------------- ETHERNET MACVLANTR Configuration ----------------*/
+   /* Set the ETV bit according to ETH VLANTagComparison value */
+   /* Set the VL bit according to ETH VLANTagIdentifier value */
+   (heth->Instance)->MACVLANTR = (uint32_t)(macinit.VLANTagComparison |
+                                            macinit.VLANTagIdentifier);
+
+    /* Wait until the write operation will be taken into account:
+       at least four TX_CLK/RX_CLK clock cycles */
+    tmpreg1 = (heth->Instance)->MACVLANTR;
+    HAL_Delay(ETH_REG_WRITE_DELAY);
+    (heth->Instance)->MACVLANTR = tmpreg1;
+
+    /* Ethernet DMA default initialization ************************************/
+    dmainit.DropTCPIPChecksumErrorFrame = ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE;
+    dmainit.ReceiveStoreForward = ETH_RECEIVESTOREFORWARD_ENABLE;
+    dmainit.FlushReceivedFrame = ETH_FLUSHRECEIVEDFRAME_ENABLE;
+    dmainit.TransmitStoreForward = ETH_TRANSMITSTOREFORWARD_ENABLE;
+    dmainit.TransmitThresholdControl = ETH_TRANSMITTHRESHOLDCONTROL_64BYTES;
+    dmainit.ForwardErrorFrames = ETH_FORWARDERRORFRAMES_DISABLE;
+    dmainit.ForwardUndersizedGoodFrames = ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE;
+    dmainit.ReceiveThresholdControl = ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES;
+    dmainit.SecondFrameOperate = ETH_SECONDFRAMEOPERARTE_ENABLE;
+    dmainit.AddressAlignedBeats = ETH_ADDRESSALIGNEDBEATS_ENABLE;
+    dmainit.FixedBurst = ETH_FIXEDBURST_ENABLE;
+    dmainit.RxDMABurstLength = ETH_RXDMABURSTLENGTH_32BEAT;
+    dmainit.TxDMABurstLength = ETH_TXDMABURSTLENGTH_32BEAT;
+    dmainit.EnhancedDescriptorFormat = ETH_DMAENHANCEDDESCRIPTOR_ENABLE;
+    dmainit.DescriptorSkipLength = 0x0U;
+    dmainit.DMAArbitration = ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1;
+
+    /* Get the ETHERNET DMAOMR value */
+    tmpreg1 = (heth->Instance)->DMAOMR;
+    /* Clear xx bits */
+    tmpreg1 &= ETH_DMAOMR_CLEAR_MASK;
+
+    /* Set the DT bit according to ETH DropTCPIPChecksumErrorFrame value */
+    /* Set the RSF bit according to ETH ReceiveStoreForward value */
+    /* Set the DFF bit according to ETH FlushReceivedFrame value */
+    /* Set the TSF bit according to ETH TransmitStoreForward value */
+    /* Set the TTC bit according to ETH TransmitThresholdControl value */
+    /* Set the FEF bit according to ETH ForwardErrorFrames value */
+    /* Set the FUF bit according to ETH ForwardUndersizedGoodFrames value */
+    /* Set the RTC bit according to ETH ReceiveThresholdControl value */
+    /* Set the OSF bit according to ETH SecondFrameOperate value */
+    tmpreg1 |= (uint32_t)(dmainit.DropTCPIPChecksumErrorFrame |
+                         dmainit.ReceiveStoreForward |
+                         dmainit.FlushReceivedFrame |
+                         dmainit.TransmitStoreForward |
+                         dmainit.TransmitThresholdControl |
+                         dmainit.ForwardErrorFrames |
+                         dmainit.ForwardUndersizedGoodFrames |
+                         dmainit.ReceiveThresholdControl |
+                         dmainit.SecondFrameOperate);
+
+    /* Write to ETHERNET DMAOMR */
+    (heth->Instance)->DMAOMR = (uint32_t)tmpreg1;
+
+    /* Wait until the write operation will be taken into account:
+       at least four TX_CLK/RX_CLK clock cycles */
+    tmpreg1 = (heth->Instance)->DMAOMR;
+    HAL_Delay(ETH_REG_WRITE_DELAY);
+    (heth->Instance)->DMAOMR = tmpreg1;
+
+    /*----------------------- ETHERNET DMABMR Configuration ------------------*/
+    /* Set the AAL bit according to ETH AddressAlignedBeats value */
+    /* Set the FB bit according to ETH FixedBurst value */
+    /* Set the RPBL and 4*PBL bits according to ETH RxDMABurstLength value */
+    /* Set the PBL and 4*PBL bits according to ETH TxDMABurstLength value */
+    /* Set the Enhanced DMA descriptors bit according to ETH EnhancedDescriptorFormat value*/
+    /* Set the DSL bit according to ETH DesciptorSkipLength value */
+    /* Set the PR and DA bits according to ETH DMAArbitration value */
+    (heth->Instance)->DMABMR = (uint32_t)(dmainit.AddressAlignedBeats |
+                                          dmainit.FixedBurst |
+                                          dmainit.RxDMABurstLength |    /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
+                                          dmainit.TxDMABurstLength |
+                                          dmainit.EnhancedDescriptorFormat |
+                                          (dmainit.DescriptorSkipLength << 2U) |
+                                          dmainit.DMAArbitration |
+                                          ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
+
+     /* Wait until the write operation will be taken into account:
+        at least four TX_CLK/RX_CLK clock cycles */
+     tmpreg1 = (heth->Instance)->DMABMR;
+     HAL_Delay(ETH_REG_WRITE_DELAY);
+     (heth->Instance)->DMABMR = tmpreg1;
+
+     if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE)
+     {
+       /* Enable the Ethernet Rx Interrupt */
+       __HAL_ETH_DMA_ENABLE_IT((heth), ETH_DMA_IT_NIS | ETH_DMA_IT_R);
+     }
+
+     /* Initialize MAC address in ethernet MAC */
+     ETH_MACAddressConfig(heth, ETH_MAC_ADDRESS0, heth->Init.MACAddr);
+}
+
+/**
+  * @brief  Configures the selected MAC address.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  MacAddr The MAC address to configure
+  *          This parameter can be one of the following values:
+  *             @arg ETH_MAC_Address0: MAC Address0
+  *             @arg ETH_MAC_Address1: MAC Address1
+  *             @arg ETH_MAC_Address2: MAC Address2
+  *             @arg ETH_MAC_Address3: MAC Address3
+  * @param  Addr Pointer to MAC address buffer data (6 bytes)
+  * @retval HAL status
+  */
+static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr)
+{
+  uint32_t tmpreg1;
+
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+
+  /* Check the parameters */
+  assert_param(IS_ETH_MAC_ADDRESS0123(MacAddr));
+
+  /* Calculate the selected MAC address high register */
+  tmpreg1 = ((uint32_t)Addr[5U] << 8U) | (uint32_t)Addr[4U];
+  /* Load the selected MAC address high register */
+  (*(__IO uint32_t *)((uint32_t)(ETH_MAC_ADDR_HBASE + MacAddr))) = tmpreg1;
+  /* Calculate the selected MAC address low register */
+  tmpreg1 = ((uint32_t)Addr[3U] << 24U) | ((uint32_t)Addr[2U] << 16U) | ((uint32_t)Addr[1U] << 8U) | Addr[0U];
+
+  /* Load the selected MAC address low register */
+  (*(__IO uint32_t *)((uint32_t)(ETH_MAC_ADDR_LBASE + MacAddr))) = tmpreg1;
+}
+
+/**
+  * @brief  Enables the MAC transmission.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_MACTransmissionEnable(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg1 = 0U;
+
+  /* Enable the MAC transmission */
+  (heth->Instance)->MACCR |= ETH_MACCR_TE;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  ETH_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+}
+
+/**
+  * @brief  Disables the MAC transmission.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_MACTransmissionDisable(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg1 = 0U;
+
+  /* Disable the MAC transmission */
+  (heth->Instance)->MACCR &= ~ETH_MACCR_TE;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  ETH_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+}
+
+/**
+  * @brief  Enables the MAC reception.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_MACReceptionEnable(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg1 = 0U;
+
+  /* Enable the MAC reception */
+  (heth->Instance)->MACCR |= ETH_MACCR_RE;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  ETH_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+}
+
+/**
+  * @brief  Disables the MAC reception.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_MACReceptionDisable(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg1 = 0U;
+
+  /* Disable the MAC reception */
+  (heth->Instance)->MACCR &= ~ETH_MACCR_RE;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  ETH_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+}
+
+/**
+  * @brief  Enables the DMA transmission.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_DMATransmissionEnable(ETH_HandleTypeDef *heth)
+{
+  /* Enable the DMA transmission */
+  (heth->Instance)->DMAOMR |= ETH_DMAOMR_ST;
+}
+
+/**
+  * @brief  Disables the DMA transmission.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_DMATransmissionDisable(ETH_HandleTypeDef *heth)
+{
+  /* Disable the DMA transmission */
+  (heth->Instance)->DMAOMR &= ~ETH_DMAOMR_ST;
+}
+
+/**
+  * @brief  Enables the DMA reception.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_DMAReceptionEnable(ETH_HandleTypeDef *heth)
+{
+  /* Enable the DMA reception */
+  (heth->Instance)->DMAOMR |= ETH_DMAOMR_SR;
+}
+
+/**
+  * @brief  Disables the DMA reception.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_DMAReceptionDisable(ETH_HandleTypeDef *heth)
+{
+  /* Disable the DMA reception */
+  (heth->Instance)->DMAOMR &= ~ETH_DMAOMR_SR;
+}
+
+/**
+  * @brief  Clears the ETHERNET transmit FIFO.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg1 = 0U;
+
+  /* Set the Flush Transmit FIFO bit */
+  (heth->Instance)->DMAOMR |= ETH_DMAOMR_FTF;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->DMAOMR;
+  ETH_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->DMAOMR = tmpreg1;
+}
+
+/**
+  * @brief  This function provides delay (in milliseconds) based on CPU cycles method.
+  * @param  mdelay specifies the delay time length, in milliseconds.
+  * @retval None
+  */
+static void ETH_Delay(uint32_t mdelay)
+{
+  __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
+  do
+  {
+    __NOP();
+  }
+  while (Delay --);
+}
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+static void ETH_InitCallbacksToDefault(ETH_HandleTypeDef *heth)
+{
+  /* Init the ETH Callback settings */
+  heth->TxCpltCallback       = HAL_ETH_TxCpltCallback; /* Legacy weak TxCpltCallback   */
+  heth->RxCpltCallback       = HAL_ETH_RxCpltCallback; /* Legacy weak RxCpltCallback   */
+  heth->DMAErrorCallback     = HAL_ETH_ErrorCallback;  /* Legacy weak DMAErrorCallback */
+}
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+/**
+  * @}
+  */
+
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx ||\
+          STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+#endif /* HAL_ETH_LEGACY_MODULE_ENABLED*/
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
diff --git a/Src/stm32f4xx_hal.c b/Src/stm32f4xx_hal.c
index d0afdd3..cb652b8 100644
--- a/Src/stm32f4xx_hal.c
+++ b/Src/stm32f4xx_hal.c
@@ -5,6 +5,17 @@
   * @brief   HAL module driver.
   *          This is the common part of the HAL initialization
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -19,17 +30,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */ 
 
 /* Includes ------------------------------------------------------------------*/
@@ -50,11 +50,11 @@
   * @{
   */
 /**
-  * @brief STM32F4xx HAL Driver version number V1.7.13
+  * @brief STM32F4xx HAL Driver version number V1.8.0
   */
 #define __STM32F4xx_HAL_VERSION_MAIN   (0x01U) /*!< [31:24] main version */
-#define __STM32F4xx_HAL_VERSION_SUB1   (0x07U) /*!< [23:16] sub1 version */
-#define __STM32F4xx_HAL_VERSION_SUB2   (0x0DU) /*!< [15:8]  sub2 version */
+#define __STM32F4xx_HAL_VERSION_SUB1   (0x08U) /*!< [23:16] sub1 version */
+#define __STM32F4xx_HAL_VERSION_SUB2   (0x00U) /*!< [15:8]  sub2 version */
 #define __STM32F4xx_HAL_VERSION_RC     (0x00U) /*!< [7:0]  release candidate */ 
 #define __STM32F4xx_HAL_VERSION         ((__STM32F4xx_HAL_VERSION_MAIN << 24U)\
                                         |(__STM32F4xx_HAL_VERSION_SUB1 << 16U)\
@@ -612,4 +612,4 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_adc.c b/Src/stm32f4xx_hal_adc.c
index cf3df80..9c2ba28 100644
--- a/Src/stm32f4xx_hal_adc.c
+++ b/Src/stm32f4xx_hal_adc.c
@@ -5,9 +5,20 @@
   * @brief   This file provides firmware functions to manage the following 
   *          functionalities of the Analog to Digital Converter (ADC) peripheral:
   *           + Initialization and de-initialization functions
-  *           + IO operation functions
-  *           + State and errors functions
-  *         
+  *           + Peripheral Control functions
+  *           + Peripheral State functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### ADC Peripheral features #####
@@ -231,18 +242,6 @@
      are set to the corresponding weak functions.
 
     @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */ 
 
 /* Includes ------------------------------------------------------------------*/
@@ -1201,13 +1200,16 @@
 {
   uint32_t tmp1 = 0U, tmp2 = 0U;
   
+  uint32_t tmp_sr = hadc->Instance->SR;
+  uint32_t tmp_cr1 = hadc->Instance->CR1;
+
   /* Check the parameters */
   assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode));
   assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion));
   assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection));
   
-  tmp1 = __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC);
-  tmp2 = __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_EOC);
+  tmp1 = tmp_sr & ADC_FLAG_EOC;
+  tmp2 = tmp_cr1 & ADC_IT_EOC;
   /* Check End of conversion flag for regular channels */
   if(tmp1 && tmp2)
   {
@@ -1255,8 +1257,8 @@
     __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC);
   }
   
-  tmp1 = __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_JEOC);
-  tmp2 = __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_JEOC);                               
+  tmp1 = tmp_sr & ADC_FLAG_JEOC;
+  tmp2 = tmp_cr1 & ADC_IT_JEOC;
   /* Check End of conversion flag for injected channels */
   if(tmp1 && tmp2)
   {
@@ -1302,8 +1304,8 @@
     __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JSTRT | ADC_FLAG_JEOC));
   }
   
-  tmp1 = __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_AWD);
-  tmp2 = __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_AWD);                          
+  tmp1 = tmp_sr & ADC_FLAG_AWD;
+  tmp2 = tmp_cr1 & ADC_IT_AWD;
   /* Check Analog watchdog flag */
   if(tmp1 && tmp2)
   {
@@ -1324,8 +1326,8 @@
     }
   }
   
-  tmp1 = __HAL_ADC_GET_FLAG(hadc, ADC_FLAG_OVR);
-  tmp2 = __HAL_ADC_GET_IT_SOURCE(hadc, ADC_IT_OVR);
+  tmp1 = tmp_sr & ADC_FLAG_OVR;
+  tmp2 = tmp_cr1 & ADC_IT_OVR;
   /* Check Overrun flag */
   if(tmp1 && tmp2)
   {
@@ -1617,7 +1619,7 @@
 /**
   * @brief  Error ADC callback.
   * @note   In case of error due to overrun when using ADC with DMA transfer 
-  *         (HAL ADC handle paramater "ErrorCode" to state "HAL_ADC_ERROR_OVR"):
+  *         (HAL ADC handle parameter "ErrorCode" to state "HAL_ADC_ERROR_OVR"):
   *         - Reinitialize the DMA using function "HAL_ADC_Stop_DMA()".
   *         - If needed, restart a new ADC conversion using function
   *           "HAL_ADC_Start_DMA()"
@@ -2106,4 +2108,3 @@
   * @}
   */ 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_adc_ex.c b/Src/stm32f4xx_hal_adc_ex.c
index c548952..c971e22 100644
--- a/Src/stm32f4xx_hal_adc_ex.c
+++ b/Src/stm32f4xx_hal_adc_ex.c
@@ -6,6 +6,17 @@
   *          functionalities of the ADC extension peripheral:
   *           + Extended features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### How to use this driver #####
@@ -69,18 +80,6 @@
 
 
     @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1111,4 +1110,3 @@
   * @}
   */ 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_can.c b/Src/stm32f4xx_hal_can.c
index 3e03475..4abdc60 100644
--- a/Src/stm32f4xx_hal_can.c
+++ b/Src/stm32f4xx_hal_can.c
@@ -12,6 +12,17 @@
   *           + Callbacks functions
   *           + Peripheral State and Error functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -196,17 +207,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -675,7 +675,7 @@
 
 /**
   * @brief  Unregister a CAN CallBack.
-  *         CAN callabck is redirected to the weak predefined callback
+  *         CAN callback is redirected to the weak predefined callback
   * @param  hcan pointer to a CAN_HandleTypeDef structure that contains
   *         the configuration information for CAN module
   * @param  CallbackID ID of the callback to be unregistered
@@ -2460,5 +2460,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_cec.c b/Src/stm32f4xx_hal_cec.c
index c599bcf..56e6e84 100644
--- a/Src/stm32f4xx_hal_cec.c
+++ b/Src/stm32f4xx_hal_cec.c
@@ -11,6 +11,17 @@
   *           + Peripheral Control function
   *
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                         ##### How to use this driver #####
@@ -96,17 +107,6 @@
   are set to the corresponding weak functions.
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -497,7 +497,7 @@
 
 /**
   * @brief  Unregister an CEC Callback
-  *         CEC callabck is redirected to the weak predefined callback
+  *         CEC callback is redirected to the weak predefined callback
   * @param hcec uart handle
   * @param CallbackID ID of the callback to be unregistered
   *         This parameter can be one of the following values:
@@ -994,4 +994,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_cortex.c b/Src/stm32f4xx_hal_cortex.c
index 2efb986..98515c5 100644
--- a/Src/stm32f4xx_hal_cortex.c
+++ b/Src/stm32f4xx_hal_cortex.c
@@ -68,14 +68,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -502,4 +500,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_crc.c b/Src/stm32f4xx_hal_crc.c
index 652eeda..2e86b2b 100644
--- a/Src/stm32f4xx_hal_crc.c
+++ b/Src/stm32f4xx_hal_crc.c
@@ -9,6 +9,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                      ##### How to use this driver #####
@@ -29,17 +40,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -326,5 +326,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_cryp.c b/Src/stm32f4xx_hal_cryp.c
index efb64e5..cce0d46 100644
--- a/Src/stm32f4xx_hal_cryp.c
+++ b/Src/stm32f4xx_hal_cryp.c
@@ -11,6 +11,17 @@
   *           + CRYP IRQ handler management
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -148,10 +159,10 @@
 
   The compilation define  USE_HAL_CRYP_REGISTER_CALLBACKS when set to 1
   allows the user to configure dynamically the driver callbacks.
-  Use Functions @ref HAL_CRYP_RegisterCallback() or HAL_CRYP_RegisterXXXCallback()
+  Use Functions HAL_CRYP_RegisterCallback() or HAL_CRYP_RegisterXXXCallback()
   to register an interrupt callback.
 
-  Function @ref HAL_CRYP_RegisterCallback() allows to register following callbacks:
+  Function HAL_CRYP_RegisterCallback() allows to register following callbacks:
     (+) InCpltCallback     :  Input FIFO transfer completed callback.
     (+) OutCpltCallback    : Output FIFO transfer completed callback.
     (+) ErrorCallback      : callback for error detection.
@@ -160,9 +171,9 @@
   This function takes as parameters the HAL peripheral handle, the Callback ID
   and a pointer to the user callback function.
 
-  Use function @ref HAL_CRYP_UnRegisterCallback() to reset a callback to the default
+  Use function HAL_CRYP_UnRegisterCallback() to reset a callback to the default
   weak function.
-  @ref HAL_CRYP_UnRegisterCallback() takes as parameters the HAL peripheral handle,
+  HAL_CRYP_UnRegisterCallback() takes as parameters the HAL peripheral handle,
   and the Callback ID.
   This function allows to reset following callbacks:
     (+) InCpltCallback     :  Input FIFO transfer completed callback.
@@ -171,13 +182,13 @@
     (+) MspInitCallback    : CRYP MspInit.
     (+) MspDeInitCallback  : CRYP MspDeInit.
 
-  By default, after the @ref HAL_CRYP_Init() and when the state is HAL_CRYP_STATE_RESET
+  By default, after the HAL_CRYP_Init() and when the state is HAL_CRYP_STATE_RESET
   all callbacks are set to the corresponding weak functions :
-  examples @ref HAL_CRYP_InCpltCallback() , @ref HAL_CRYP_OutCpltCallback().
+  examples HAL_CRYP_InCpltCallback() , HAL_CRYP_OutCpltCallback().
   Exception done for MspInit and MspDeInit functions that are
-  reset to the legacy weak function in the @ref HAL_CRYP_Init()/ @ref HAL_CRYP_DeInit() only when
+  reset to the legacy weak function in the HAL_CRYP_Init()/ HAL_CRYP_DeInit() only when
   these callbacks are null (not registered beforehand).
-  if not, MspInit or MspDeInit are not null, the @ref HAL_CRYP_Init() / @ref HAL_CRYP_DeInit()
+  if not, MspInit or MspDeInit are not null, the HAL_CRYP_Init() / HAL_CRYP_DeInit()
   keep and use the user MspInit/MspDeInit functions (registered beforehand)
 
   Callbacks can be registered/unregistered in HAL_CRYP_STATE_READY state only.
@@ -185,8 +196,8 @@
   in HAL_CRYP_STATE_READY or HAL_CRYP_STATE_RESET state,
   thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
   In that case first register the MspInit/MspDeInit user callbacks
-  using @ref HAL_CRYP_RegisterCallback() before calling @ref HAL_CRYP_DeInit()
-  or @ref HAL_CRYP_Init() function.
+  using HAL_CRYP_RegisterCallback() before calling HAL_CRYP_DeInit()
+  or HAL_CRYP_Init() function.
 
   When The compilation define USE_HAL_CRYP_REGISTER_CALLBACKS is set to 0 or
   not defined, the callback registration feature is not available and all callbacks
@@ -241,17 +252,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -470,7 +470,7 @@
   }
 #endif /* (USE_HAL_CRYP_REGISTER_CALLBACKS) */
 
-  /* Set the key size(This bit field is donÂ’t care in the DES or TDES modes) data type and Algorithm */
+  /* Set the key size(This bit field is don't care in the DES or TDES modes) data type and Algorithm */
 #if defined (CRYP)
 
   MODIFY_REG(hcryp->Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE,
@@ -589,7 +589,7 @@
     hcryp->Init.KeyIVConfigSkip = pConf->KeyIVConfigSkip;
     hcryp->Init.HeaderWidthUnit = pConf->HeaderWidthUnit;
 
-    /* Set the key size(This bit field is donÂ’t care in the DES or TDES modes) data type, AlgoMode and operating mode*/
+    /* Set the key size(This bit field is don't care in the DES or TDES modes) data type, AlgoMode and operating mode*/
 #if defined (CRYP)
 
     MODIFY_REG(hcryp->Instance->CR, CRYP_CR_DATATYPE | CRYP_CR_KEYSIZE | CRYP_CR_ALGOMODE,
@@ -7130,4 +7130,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_cryp_ex.c b/Src/stm32f4xx_hal_cryp_ex.c
index 43b238a..3a82847 100644
--- a/Src/stm32f4xx_hal_cryp_ex.c
+++ b/Src/stm32f4xx_hal_cryp_ex.c
@@ -7,6 +7,17 @@
   *          functionalities of CRYP extension peripheral:
   *           + Extended AES processing functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -20,17 +31,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -177,7 +177,7 @@
     /* Select final phase */
     MODIFY_REG(hcryp->Instance->CR, CRYP_CR_GCM_CCMPH, CRYP_PHASE_FINAL);
 
-    /*ALGODIR bit must be set to ‘0’.*/
+    /*ALGODIR bit must be set to '0'.*/
     hcryp->Instance->CR &=  ~CRYP_CR_ALGODIR;
 
     /* Enable the CRYP peripheral */
@@ -395,7 +395,7 @@
     /* Disable CRYP to start the final phase */
     __HAL_CRYP_DISABLE(hcryp);
 
-    /* Select final phase & ALGODIR bit must be set to ‘0’. */
+    /* Select final phase & ALGODIR bit must be set to '0'. */
     MODIFY_REG(hcryp->Instance->CR, CRYP_CR_GCM_CCMPH | CRYP_CR_ALGODIR, CRYP_PHASE_FINAL | CRYP_OPERATINGMODE_ENCRYPT);
 
     /* Enable the CRYP peripheral */
@@ -678,4 +678,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dac.c b/Src/stm32f4xx_hal_dac.c
index 939adaf..9023e3e 100644
--- a/Src/stm32f4xx_hal_dac.c
+++ b/Src/stm32f4xx_hal_dac.c
@@ -11,6 +11,17 @@
   *           + Peripheral State and Errors functions
   *
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                       ##### DAC Peripheral features #####
@@ -206,17 +217,6 @@
 
 @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -522,7 +522,7 @@
 HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t *pData, uint32_t Length,
                                     uint32_t Alignment)
 {
-  HAL_StatusTypeDef status;
+  HAL_StatusTypeDef status = HAL_OK;
   uint32_t tmpreg = 0U;
 
   /* Check the parameters */
@@ -895,7 +895,7 @@
   */
 uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef *hdac, uint32_t Channel)
 {
-  uint32_t result;
+  uint32_t result = 0;
 
   /* Check the parameters */
   assert_param(IS_DAC_CHANNEL(Channel));
@@ -1339,4 +1339,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dac_ex.c b/Src/stm32f4xx_hal_dac_ex.c
index 4a05998..343dd98 100644
--- a/Src/stm32f4xx_hal_dac_ex.c
+++ b/Src/stm32f4xx_hal_dac_ex.c
@@ -7,6 +7,17 @@
   *          functionalities of the DAC peripheral.
   *
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                       ##### How to use this driver #####
@@ -29,17 +40,6 @@
 
  @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 
@@ -493,4 +493,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dcmi.c b/Src/stm32f4xx_hal_dcmi.c
index aa237c6..d117c0e 100644
--- a/Src/stm32f4xx_hal_dcmi.c
+++ b/Src/stm32f4xx_hal_dcmi.c
@@ -9,7 +9,17 @@
   *           + IO operation functions
   *           + Peripheral Control functions
   *           + Peripheral State and Error functions
-  *           
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  ******************************************************************************  
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -109,17 +119,6 @@
 	
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1160,5 +1159,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dcmi_ex.c b/Src/stm32f4xx_hal_dcmi_ex.c
index b21454c..bbc64c6 100644
--- a/Src/stm32f4xx_hal_dcmi_ex.c
+++ b/Src/stm32f4xx_hal_dcmi_ex.c
@@ -7,6 +7,16 @@
   *          functionalities of DCMI extension peripheral:
   *           + Extension features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  ******************************************************************************
   @verbatim
   ==============================================================================
                ##### DCMI peripheral extension features  #####
@@ -23,17 +33,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -181,5 +180,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dfsdm.c b/Src/stm32f4xx_hal_dfsdm.c
index c57ebeb..79b94b1 100644
--- a/Src/stm32f4xx_hal_dfsdm.c
+++ b/Src/stm32f4xx_hal_dfsdm.c
@@ -15,7 +15,18 @@
   *           + Extremes detector feature
   *           + Clock absence detector feature
   *           + Break generation on analog watchdog or short-circuit event
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************  
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -251,17 +262,6 @@
 
     @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -4421,5 +4421,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dma.c b/Src/stm32f4xx_hal_dma.c
index 9b4f8d8..3dbb477 100644
--- a/Src/stm32f4xx_hal_dma.c
+++ b/Src/stm32f4xx_hal_dma.c
@@ -83,13 +83,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -602,7 +601,7 @@
   * @param  hdma          pointer to a DMA_HandleTypeDef structure that contains
   *                        the configuration information for the specified DMA Stream.
   * @param  CompleteLevel Specifies the DMA level complete.
-  * @note   The polling mode is kept in this version for legacy. it is recommanded to use the IT model instead.
+  * @note   The polling mode is kept in this version for legacy. it is recommended to use the IT model instead.
   *         This model could be used for debug purpose.
   * @note   The HAL_DMA_PollForTransfer API cannot be used in circular and double buffering mode (automatic circular mode). 
   * @param  Timeout       Timeout duration.
@@ -959,9 +958,9 @@
   * @brief  Register callbacks
   * @param  hdma                 pointer to a DMA_HandleTypeDef structure that contains
   *                               the configuration information for the specified DMA Stream.
-  * @param  CallbackID           User Callback identifer
+  * @param  CallbackID           User Callback identifier
   *                               a DMA_HandleTypeDef structure as parameter.
-  * @param  pCallback            pointer to private callbacsk function which has pointer to 
+  * @param  pCallback            pointer to private callback function which has pointer to 
   *                               a DMA_HandleTypeDef structure as parameter.
   * @retval HAL status
   */                      
@@ -1002,6 +1001,8 @@
       break;
 
     default:
+      /* Return error status */
+      status =  HAL_ERROR;
       break;
     }
   }
@@ -1021,7 +1022,7 @@
   * @brief  UnRegister callbacks
   * @param  hdma                 pointer to a DMA_HandleTypeDef structure that contains
   *                               the configuration information for the specified DMA Stream.
-  * @param  CallbackID           User Callback identifer
+  * @param  CallbackID           User Callback identifier
   *                               a HAL_DMA_CallbackIDTypeDef ENUM as parameter.
   * @retval HAL status
   */              
@@ -1302,4 +1303,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dma2d.c b/Src/stm32f4xx_hal_dma2d.c
index f3582b6..4cfac40 100644
--- a/Src/stm32f4xx_hal_dma2d.c
+++ b/Src/stm32f4xx_hal_dma2d.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -94,9 +105,9 @@
      [..]
       (#) The compilation define  USE_HAL_DMA2D_REGISTER_CALLBACKS when set to 1
           allows the user to configure dynamically the driver callbacks.
-          Use function HAL_DMA2D_RegisterCallback() to register a user callback.
+          Use function @ref HAL_DMA2D_RegisterCallback() to register a user callback.
 
-      (#) Function HAL_DMA2D_RegisterCallback() allows to register following callbacks:
+      (#) Function @ref HAL_DMA2D_RegisterCallback() allows to register following callbacks:
             (+) XferCpltCallback : callback for transfer complete.
             (+) XferErrorCallback : callback for transfer error.
             (+) LineEventCallback : callback for line event.
@@ -106,9 +117,9 @@
           This function takes as parameters the HAL peripheral handle, the Callback ID
           and a pointer to the user callback function.
 
-      (#) Use function HAL_DMA2D_UnRegisterCallback() to reset a callback to the default
+      (#) Use function @ref HAL_DMA2D_UnRegisterCallback() to reset a callback to the default
           weak (surcharged) function.
-          HAL_DMA2D_UnRegisterCallback() takes as parameters the HAL peripheral handle,
+          @ref HAL_DMA2D_UnRegisterCallback() takes as parameters the HAL peripheral handle,
           and the Callback ID.
           This function allows to reset following callbacks:
             (+) XferCpltCallback : callback for transfer complete.
@@ -118,13 +129,13 @@
             (+) MspInitCallback    : DMA2D MspInit.
             (+) MspDeInitCallback  : DMA2D MspDeInit.
 
-      (#) By default, after the HAL_DMA2D_Init and if the state is HAL_DMA2D_STATE_RESET
+      (#) By default, after the @ref HAL_DMA2D_Init and if the state is HAL_DMA2D_STATE_RESET
           all callbacks are reset to the corresponding legacy weak (surcharged) functions:
-          examples HAL_DMA2D_LineEventCallback(), HAL_DMA2D_CLUTLoadingCpltCallback()
+          examples @ref HAL_DMA2D_LineEventCallback(), @ref HAL_DMA2D_CLUTLoadingCpltCallback()
           Exception done for MspInit and MspDeInit callbacks that are respectively
-          reset to the legacy weak (surcharged) functions in the HAL_DMA2D_Init
-          and HAL_DMA2D_DeInit only when these callbacks are null (not registered beforehand)
-          If not, MspInit or MspDeInit are not null, the HAL_DMA2D_Init and HAL_DMA2D_DeInit
+          reset to the legacy weak (surcharged) functions in the @ref HAL_DMA2D_Init
+          and @ref HAL_DMA2D_DeInit only when these callbacks are null (not registered beforehand)
+          If not, MspInit or MspDeInit are not null, the @ref HAL_DMA2D_Init and @ref HAL_DMA2D_DeInit
           keep and use the user MspInit/MspDeInit callbacks (registered beforehand).
 
           Exception as well for Transfer Completion and Transfer Error callbacks that are not defined
@@ -135,8 +146,8 @@
           in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
           during the Init/DeInit.
           In that case first register the MspInit/MspDeInit user callbacks
-          using HAL_DMA2D_RegisterCallback before calling HAL_DMA2D_DeInit
-          or HAL_DMA2D_Init function.
+          using @ref HAL_DMA2D_RegisterCallback before calling @ref HAL_DMA2D_DeInit
+          or @ref HAL_DMA2D_Init function.
 
           When The compilation define USE_HAL_DMA2D_REGISTER_CALLBACKS is set to 0 or
           not defined, the callback registering feature is not available
@@ -147,17 +158,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -2124,5 +2124,3 @@
   */
 #endif /* DMA2D */
 #endif /* HAL_DMA2D_MODULE_ENABLED */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dma_ex.c b/Src/stm32f4xx_hal_dma_ex.c
index 6e07376..7167e77 100644
--- a/Src/stm32f4xx_hal_dma_ex.c
+++ b/Src/stm32f4xx_hal_dma_ex.c
@@ -25,13 +25,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -312,4 +311,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_dsi.c b/Src/stm32f4xx_hal_dsi.c
index da57a8f..bde6861 100644
--- a/Src/stm32f4xx_hal_dsi.c
+++ b/Src/stm32f4xx_hal_dsi.c
@@ -9,6 +9,17 @@
   *           + IO operation functions
   *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -140,17 +151,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -200,12 +200,14 @@
                                    uint32_t Data1);
 
 static HAL_StatusTypeDef DSI_ShortWrite(DSI_HandleTypeDef *hdsi,
-                                     uint32_t ChannelID,
-                                     uint32_t Mode,
-                                     uint32_t Param1,
-                                     uint32_t Param2);
-
+                                        uint32_t ChannelID,
+                                        uint32_t Mode,
+                                        uint32_t Param1,
+                                        uint32_t Param2);
 /* Private functions ---------------------------------------------------------*/
+/** @defgroup DSI_Private_Functions DSI Private Functions
+  * @{
+  */
 /**
   * @brief  Generic DSI packet header configuration
   * @param  DSIx  Pointer to DSI register base
@@ -255,10 +257,10 @@
   tickstart = HAL_GetTick();
 
   /* Wait for Command FIFO Empty */
-  while((hdsi->Instance->GPSR & DSI_GPSR_CMDFE) == 0U)
+  while ((hdsi->Instance->GPSR & DSI_GPSR_CMDFE) == 0U)
   {
     /* Check for the Timeout */
-    if((HAL_GetTick() - tickstart ) > DSI_TIMEOUT_VALUE)
+    if ((HAL_GetTick() - tickstart) > DSI_TIMEOUT_VALUE)
     {
       return HAL_TIMEOUT;
     }
@@ -271,6 +273,10 @@
   return HAL_OK;
 }
 
+/**
+  * @}
+  */
+
 /* Exported functions --------------------------------------------------------*/
 /** @addtogroup DSI_Exported_Functions
   * @{
@@ -365,11 +371,17 @@
 
   /* Set the PLL division factors */
   hdsi->Instance->WRPCR &= ~(DSI_WRPCR_PLL_NDIV | DSI_WRPCR_PLL_IDF | DSI_WRPCR_PLL_ODF);
-  hdsi->Instance->WRPCR |= (((PLLInit->PLLNDIV) << 2U) | ((PLLInit->PLLIDF) << 11U) | ((PLLInit->PLLODF) << 16U));
+  hdsi->Instance->WRPCR |= (((PLLInit->PLLNDIV) << DSI_WRPCR_PLL_NDIV_Pos) | \
+                            ((PLLInit->PLLIDF) << DSI_WRPCR_PLL_IDF_Pos) | \
+                            ((PLLInit->PLLODF) << DSI_WRPCR_PLL_ODF_Pos));
 
   /* Enable the DSI PLL */
   __HAL_DSI_PLL_ENABLE(hdsi);
 
+  /* Requires min of 400us delay before reading the PLLLS flag */
+  /* 1ms delay is inserted that is the minimum HAL delay granularity */
+  HAL_Delay(1);
+
   /* Get tick */
   tickstart = HAL_GetTick();
 
@@ -419,7 +431,7 @@
   hdsi->Instance->IER[1U] = 0U;
   hdsi->ErrorMsk = 0U;
 
-  /* Initialise the error code */
+  /* Initialize the error code */
   hdsi->ErrorCode = HAL_DSI_ERROR_NONE;
 
   /* Initialize the DSI state*/
@@ -473,7 +485,7 @@
   HAL_DSI_MspDeInit(hdsi);
 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
 
-  /* Initialise the error code */
+  /* Initialize the error code */
   hdsi->ErrorCode = HAL_DSI_ERROR_NONE;
 
   /* Initialize the DSI state*/
@@ -698,7 +710,7 @@
 
 /**
   * @brief  Unregister a DSI Callback
-  *         DSI callabck is redirected to the weak predefined callback
+  *         DSI callback is redirected to the weak predefined callback
   * @param hdsi dsi handle
   * @param CallbackID ID of the callback to be unregistered
   *        This parameter can be one of the following values:
@@ -733,11 +745,11 @@
         break;
 
       case HAL_DSI_MSPINIT_CB_ID :
-        hdsi->MspInitCallback = HAL_DSI_MspInit;                     /* Legcay weak MspInit Callback     */
+        hdsi->MspInitCallback = HAL_DSI_MspInit;                     /* Legacy weak MspInit Callback     */
         break;
 
       case HAL_DSI_MSPDEINIT_CB_ID :
-        hdsi->MspDeInitCallback = HAL_DSI_MspDeInit;                 /* Legcay weak MspDeInit Callback   */
+        hdsi->MspDeInitCallback = HAL_DSI_MspDeInit;                 /* Legacy weak MspDeInit Callback   */
         break;
 
       default :
@@ -753,11 +765,11 @@
     switch (CallbackID)
     {
       case HAL_DSI_MSPINIT_CB_ID :
-        hdsi->MspInitCallback = HAL_DSI_MspInit;                  /* Legcay weak MspInit Callback   */
+        hdsi->MspInitCallback = HAL_DSI_MspInit;                  /* Legacy weak MspInit Callback   */
         break;
 
       case HAL_DSI_MSPDEINIT_CB_ID :
-        hdsi->MspDeInitCallback = HAL_DSI_MspDeInit;              /* Legcay weak MspDeInit Callback */
+        hdsi->MspDeInitCallback = HAL_DSI_MspDeInit;              /* Legacy weak MspDeInit Callback */
         break;
 
       default :
@@ -808,7 +820,8 @@
   */
 void HAL_DSI_IRQHandler(DSI_HandleTypeDef *hdsi)
 {
-  uint32_t ErrorStatus0, ErrorStatus1;
+  uint32_t ErrorStatus0;
+  uint32_t ErrorStatus1;
 
   /* Tearing Effect Interrupt management ***************************************/
   if (__HAL_DSI_GET_FLAG(hdsi, DSI_FLAG_TE) != 0U)
@@ -1365,7 +1378,8 @@
      High-Speed transmission.
      To do so, the DSI Host calculates the time required for the clock lane to change from HighSpeed
      to Low-Power and from Low-Power to High-Speed.
-     This timings are configured by the HS2LP_TIME and LP2HS_TIME in the DSI Host Clock Lane Timer Configuration Register (DSI_CLTCR).
+     This timings are configured by the HS2LP_TIME and LP2HS_TIME in the DSI Host Clock Lane Timer Configuration
+     Register (DSI_CLTCR).
      But the DSI Host is not calculating LP2HS_TIME + HS2LP_TIME but 2 x HS2LP_TIME.
 
      Workaround : Configure HS2LP_TIME and LP2HS_TIME with the same value being the max of HS2LP_TIME or LP2HS_TIME.
@@ -1587,7 +1601,7 @@
   /* Process locked */
   __HAL_LOCK(hdsi);
 
-   status = DSI_ShortWrite(hdsi, ChannelID, Mode, Param1, Param2);
+  status = DSI_ShortWrite(hdsi, ChannelID, Mode, Param1, Param2);
 
   /* Process unlocked */
   __HAL_UNLOCK(hdsi);
@@ -1616,7 +1630,9 @@
                                     uint32_t Param1,
                                     uint8_t *ParametersTable)
 {
-  uint32_t uicounter, nbBytes, count;
+  uint32_t uicounter;
+  uint32_t nbBytes;
+  uint32_t count;
   uint32_t tickstart;
   uint32_t fifoword;
   uint8_t *pparams = ParametersTable;
@@ -1721,7 +1737,7 @@
   {
     /* set max return packet size */
     if (DSI_ShortWrite(hdsi, ChannelNbr, DSI_MAX_RETURN_PKT_SIZE, ((datasize) & 0xFFU),
-                           (((datasize) >> 8U) & 0xFFU)) != HAL_OK)
+                       (((datasize) >> 8U) & 0xFFU)) != HAL_OK)
     {
       /* Process Unlocked */
       __HAL_UNLOCK(hdsi);
@@ -1782,6 +1798,21 @@
 
       return HAL_TIMEOUT;
     }
+
+    /* Software workaround to avoid HAL_TIMEOUT when a DSI read command is   */
+    /* issued to the panel and the read data is not captured by the DSI Host */
+    /* which returns Packet Size Error.                                      */
+    /* Need to ensure that the Read command has finished before checking PSE */
+    if ((hdsi->Instance->GPSR & DSI_GPSR_RCB) == 0U)
+    {
+      if ((hdsi->Instance->ISR[1U] & DSI_ISR1_PSE) == DSI_ISR1_PSE)
+      {
+        /* Process Unlocked */
+        __HAL_UNLOCK(hdsi);
+
+        return HAL_ERROR;
+      }
+    }
   }
 
   /* Process unlocked */
@@ -2077,7 +2108,7 @@
   /* De-assert the ULPM requests and the ULPM exit bits */
   hdsi->Instance->PUCR = 0U;
 
-  /* Switch the lanbyteclock source in the RCC from system PLL to D-PHY */
+  /* Switch the lane byte clock source in the RCC from system PLL to D-PHY */
   __HAL_RCC_DSI_CONFIG(RCC_DSICLKSOURCE_DSIPHY);
 
   /* Restore clock lane configuration to HS */
@@ -2727,5 +2758,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_eth.c b/Src/stm32f4xx_hal_eth.c
index dbaeb3e..9cf3e6c 100644
--- a/Src/stm32f4xx_hal_eth.c
+++ b/Src/stm32f4xx_hal_eth.c
@@ -3,102 +3,159 @@
   * @file    stm32f4xx_hal_eth.c
   * @author  MCD Application Team
   * @brief   ETH HAL module driver.
-  *          This file provides firmware functions to manage the following 
+  *          This file provides firmware functions to manage the following
   *          functionalities of the Ethernet (ETH) peripheral:
-  *           + Initialization and de-initialization functions
+  *           + Initialization and deinitialization functions
   *           + IO operation functions
-  *           + Peripheral Control functions 
+  *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### How to use this driver #####
   ==============================================================================
-    [..]
+     [..]
+     The ETH HAL driver can be used as follows:
+
       (#)Declare a ETH_HandleTypeDef handle structure, for example:
          ETH_HandleTypeDef  heth;
-        
+
       (#)Fill parameters of Init structure in heth handle
-  
-      (#)Call HAL_ETH_Init() API to initialize the Ethernet peripheral (MAC, DMA, ...) 
+
+      (#)Call HAL_ETH_Init() API to initialize the Ethernet peripheral (MAC, DMA, ...)
 
       (#)Initialize the ETH low level resources through the HAL_ETH_MspInit() API:
-          (##) Enable the Ethernet interface clock using 
-               (+++) __HAL_RCC_ETHMAC_CLK_ENABLE();
-               (+++) __HAL_RCC_ETHMACTX_CLK_ENABLE();
-               (+++) __HAL_RCC_ETHMACRX_CLK_ENABLE();
-           
+          (##) Enable the Ethernet interface clock using
+                (+++)  __HAL_RCC_ETH1MAC_CLK_ENABLE()
+                (+++)  __HAL_RCC_ETH1TX_CLK_ENABLE()
+                (+++)  __HAL_RCC_ETH1RX_CLK_ENABLE()
+
           (##) Initialize the related GPIO clocks
-          (##) Configure Ethernet pin-out
-          (##) Configure Ethernet NVIC interrupt (IT mode)   
-    
-      (#)Initialize Ethernet DMA Descriptors in chain mode and point to allocated buffers:
-          (##) HAL_ETH_DMATxDescListInit(); for Transmission process
-          (##) HAL_ETH_DMARxDescListInit(); for Reception process
+          (##) Configure Ethernet pinout
+          (##) Configure Ethernet NVIC interrupt (in Interrupt mode)
 
-      (#)Enable MAC and DMA transmission and reception:
-          (##) HAL_ETH_Start();
+      (#) Ethernet data reception is asynchronous, so call the following API
+          to start the listening mode:
+          (##) HAL_ETH_Start():
+               This API starts the MAC and DMA transmission and reception process,
+               without enabling end of transfer interrupts, in this mode user
+               has to poll for data reception by calling HAL_ETH_ReadData()
+          (##) HAL_ETH_Start_IT():
+               This API starts the MAC and DMA transmission and reception process,
+               end of transfer interrupts are enabled in this mode,
+               HAL_ETH_RxCpltCallback() will be executed when an Ethernet packet is received
 
-      (#)Prepare ETH DMA TX Descriptors and give the hand to ETH DMA to transfer 
-         the frame to MAC TX FIFO:
-         (##) HAL_ETH_TransmitFrame();
+      (#) When data is received user can call the following API to get received data:
+          (##) HAL_ETH_ReadData(): Read a received packet
 
-      (#)Poll for a received frame in ETH RX DMA Descriptors and get received 
-         frame parameters
-         (##) HAL_ETH_GetReceivedFrame(); (should be called into an infinite loop)
+      (#) For transmission path, two APIs are available:
+         (##) HAL_ETH_Transmit(): Transmit an ETH frame in blocking mode
+         (##) HAL_ETH_Transmit_IT(): Transmit an ETH frame in interrupt mode,
+              HAL_ETH_TxCpltCallback() will be executed when end of transfer occur
 
-      (#) Get a received frame when an ETH RX interrupt occurs:
-         (##) HAL_ETH_GetReceivedFrame_IT(); (called in IT mode only)
-
-      (#) Communicate with external PHY device:
-         (##) Read a specific register from the PHY  
-              HAL_ETH_ReadPHYRegister();
-         (##) Write data to a specific RHY register:
-              HAL_ETH_WritePHYRegister();
+      (#) Communication with an external PHY device:
+         (##) HAL_ETH_ReadPHYRegister(): Read a register from an external PHY
+         (##) HAL_ETH_WritePHYRegister(): Write data to an external RHY register
 
       (#) Configure the Ethernet MAC after ETH peripheral initialization
-          HAL_ETH_ConfigMAC(); all MAC parameters should be filled.
-      
+          (##) HAL_ETH_GetMACConfig(): Get MAC actual configuration into ETH_MACConfigTypeDef
+          (##) HAL_ETH_SetMACConfig(): Set MAC configuration based on ETH_MACConfigTypeDef
+
       (#) Configure the Ethernet DMA after ETH peripheral initialization
-          HAL_ETH_ConfigDMA(); all DMA parameters should be filled.
-      
-      -@- The PTP protocol and the DMA descriptors ring mode are not supported 
-          in this driver
-*** Callback registration ***
+          (##) HAL_ETH_GetDMAConfig(): Get DMA actual configuration into ETH_DMAConfigTypeDef
+          (##) HAL_ETH_SetDMAConfig(): Set DMA configuration based on ETH_DMAConfigTypeDef
+
+      (#) Configure the Ethernet PTP after ETH peripheral initialization
+          (##) Define HAL_ETH_USE_PTP to use PTP APIs.
+          (##) HAL_ETH_PTP_GetConfig(): Get PTP actual configuration into ETH_PTP_ConfigTypeDef
+          (##) HAL_ETH_PTP_SetConfig(): Set PTP configuration based on ETH_PTP_ConfigTypeDef
+          (##) HAL_ETH_PTP_GetTime(): Get Seconds and Nanoseconds for the Ethernet PTP registers
+          (##) HAL_ETH_PTP_SetTime(): Set Seconds and Nanoseconds for the Ethernet PTP registers
+          (##) HAL_ETH_PTP_AddTimeOffset(): Add Seconds and Nanoseconds offset for the Ethernet PTP registers
+          (##) HAL_ETH_PTP_InsertTxTimestamp(): Insert Timestamp in transmission
+          (##) HAL_ETH_PTP_GetTxTimestamp(): Get transmission timestamp
+          (##) HAL_ETH_PTP_GetRxTimestamp(): Get reception timestamp
+
+      -@- The ARP offload feature is not supported in this driver.
+
+      -@- The PTP offload feature is not supported in this driver.
+
+  *** Callback registration ***
   =============================================
 
   The compilation define  USE_HAL_ETH_REGISTER_CALLBACKS when set to 1
   allows the user to configure dynamically the driver callbacks.
-  Use Function @ref HAL_ETH_RegisterCallback() to register an interrupt callback.
+  Use Function HAL_ETH_RegisterCallback() to register an interrupt callback.
 
-  Function @ref HAL_ETH_RegisterCallback() allows to register following callbacks:
+  Function HAL_ETH_RegisterCallback() allows to register following callbacks:
     (+) TxCpltCallback   : Tx Complete Callback.
     (+) RxCpltCallback   : Rx Complete Callback.
-    (+) DMAErrorCallback : DMA Error Callback.
+    (+) ErrorCallback    : Error Callback.
+    (+) PMTCallback      : Power Management Callback
+    (+) EEECallback      : EEE Callback.
+    (+) WakeUpCallback   : Wake UP Callback
     (+) MspInitCallback  : MspInit Callback.
     (+) MspDeInitCallback: MspDeInit Callback.
 
   This function takes as parameters the HAL peripheral handle, the Callback ID
   and a pointer to the user callback function.
 
-  Use function @ref HAL_ETH_UnRegisterCallback() to reset a callback to the default
+  For specific callbacks RxAllocateCallback use dedicated register callbacks:
+  respectively HAL_ETH_RegisterRxAllocateCallback().
+
+  For specific callbacks RxLinkCallback use dedicated register callbacks:
+  respectively HAL_ETH_RegisterRxLinkCallback().
+
+  For specific callbacks TxFreeCallback use dedicated register callbacks:
+  respectively HAL_ETH_RegisterTxFreeCallback().
+
+  For specific callbacks TxPtpCallback use dedicated register callbacks:
+  respectively HAL_ETH_RegisterTxPtpCallback().
+
+  Use function HAL_ETH_UnRegisterCallback() to reset a callback to the default
   weak function.
-  @ref HAL_ETH_UnRegisterCallback takes as parameters the HAL peripheral handle,
+  HAL_ETH_UnRegisterCallback takes as parameters the HAL peripheral handle,
   and the Callback ID.
   This function allows to reset following callbacks:
     (+) TxCpltCallback   : Tx Complete Callback.
     (+) RxCpltCallback   : Rx Complete Callback.
-    (+) DMAErrorCallback : DMA Error Callback.
+    (+) ErrorCallback    : Error Callback.
+    (+) PMTCallback      : Power Management Callback
+    (+) EEECallback      : EEE Callback.
+    (+) WakeUpCallback   : Wake UP Callback
     (+) MspInitCallback  : MspInit Callback.
     (+) MspDeInitCallback: MspDeInit Callback.
 
+  For specific callbacks RxAllocateCallback use dedicated unregister callbacks:
+  respectively HAL_ETH_UnRegisterRxAllocateCallback().
+
+  For specific callbacks RxLinkCallback use dedicated unregister callbacks:
+  respectively HAL_ETH_UnRegisterRxLinkCallback().
+
+  For specific callbacks TxFreeCallback use dedicated unregister callbacks:
+  respectively HAL_ETH_UnRegisterTxFreeCallback().
+
+  For specific callbacks TxPtpCallback use dedicated unregister callbacks:
+  respectively HAL_ETH_UnRegisterTxPtpCallback().
+
   By default, after the HAL_ETH_Init and when the state is HAL_ETH_STATE_RESET
   all callbacks are set to the corresponding weak functions:
-  examples @ref HAL_ETH_TxCpltCallback(), @ref HAL_ETH_RxCpltCallback().
+  examples HAL_ETH_TxCpltCallback(), HAL_ETH_RxCpltCallback().
   Exception done for MspInit and MspDeInit functions that are
-  reset to the legacy weak function in the HAL_ETH_Init/ @ref HAL_ETH_DeInit only when
+  reset to the legacy weak function in the HAL_ETH_Init/ HAL_ETH_DeInit only when
   these callbacks are null (not registered beforehand).
-  if not, MspInit or MspDeInit are not null, the HAL_ETH_Init/ @ref HAL_ETH_DeInit
+  if not, MspInit or MspDeInit are not null, the HAL_ETH_Init/ HAL_ETH_DeInit
   keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
   Callbacks can be registered/unregistered in HAL_ETH_STATE_READY state only.
@@ -106,7 +163,7 @@
   in HAL_ETH_STATE_READY or HAL_ETH_STATE_RESET state,
   thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
   In that case first register the MspInit/MspDeInit user callbacks
-  using @ref HAL_ETH_RegisterCallback() before calling @ref HAL_ETH_DeInit
+  using HAL_ETH_RegisterCallback() before calling HAL_ETH_DeInit
   or HAL_ETH_Init function.
 
   When The compilation define USE_HAL_ETH_REGISTER_CALLBACKS is set to 0 or
@@ -115,17 +172,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -134,533 +180,274 @@
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
+#ifdef HAL_ETH_MODULE_ENABLED
 
-/** @defgroup ETH ETH 
+#if defined(ETH)
+
+/** @defgroup ETH ETH
   * @brief ETH HAL module driver
   * @{
   */
 
-#ifdef HAL_ETH_MODULE_ENABLED
-
-#if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
-    defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx)
-
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-/** @defgroup ETH_Private_Constants ETH Private Constants
+/** @addtogroup ETH_Private_Constants ETH Private Constants
   * @{
   */
-#define ETH_TIMEOUT_SWRESET               500U  
-#define ETH_TIMEOUT_LINKED_STATE          5000U
-#define ETH_TIMEOUT_AUTONEGO_COMPLETED    5000U
+#define ETH_MACCR_MASK       ((uint32_t)0xFFFB7F7CU)
+#define ETH_MACECR_MASK      ((uint32_t)0x3F077FFFU)
+#define ETH_MACFFR_MASK      ((uint32_t)0x800007FFU)
+#define ETH_MACWTR_MASK      ((uint32_t)0x0000010FU)
+#define ETH_MACTFCR_MASK     ((uint32_t)0xFFFF00F2U)
+#define ETH_MACRFCR_MASK     ((uint32_t)0x00000003U)
+#define ETH_MTLTQOMR_MASK    ((uint32_t)0x00000072U)
+#define ETH_MTLRQOMR_MASK    ((uint32_t)0x0000007BU)
 
+#define ETH_DMAMR_MASK       ((uint32_t)0x00007802U)
+#define ETH_DMASBMR_MASK     ((uint32_t)0x0000D001U)
+#define ETH_DMACCR_MASK      ((uint32_t)0x00013FFFU)
+#define ETH_DMACTCR_MASK     ((uint32_t)0x003F1010U)
+#define ETH_DMACRCR_MASK     ((uint32_t)0x803F0000U)
+#define ETH_MACPMTCSR_MASK   (ETH_MACPMTCSR_PD | ETH_MACPMTCSR_WFE | \
+                              ETH_MACPMTCSR_MPE | ETH_MACPMTCSR_GU)
+
+/* Timeout values */
+#define ETH_SWRESET_TIMEOUT                 ((uint32_t)500U)
+#define ETH_MDIO_BUS_TIMEOUT                ((uint32_t)1000U)
+
+#define ETH_DMARXDESC_ERRORS_MASK ((uint32_t)(ETH_DMARXDESC_DBE | ETH_DMARXDESC_RE | \
+                                              ETH_DMARXDESC_OE  | ETH_DMARXDESC_RWT |\
+                                              ETH_DMARXDESC_LC | ETH_DMARXDESC_CE |\
+                                              ETH_DMARXDESC_DE | ETH_DMARXDESC_IPV4HCE))
+
+#define ETH_MAC_US_TICK               ((uint32_t)1000000U)
+
+#define ETH_MACTSCR_MASK              ((uint32_t)0x0087FF2FU)
+
+#define ETH_PTPTSHR_VALUE            ((uint32_t)0xFFFFFFFFU)
+#define ETH_PTPTSLR_VALUE            ((uint32_t)0xBB9ACA00U)
+
+/* Ethernet MACMIIAR register Mask */
+#define ETH_MACMIIAR_CR_MASK    ((uint32_t)0xFFFFFFE3U)
+
+/* Delay to wait when writing to some Ethernet registers */
+#define ETH_REG_WRITE_DELAY ((uint32_t)0x00000001U)
+
+/* ETHERNET MACCR register Mask */
+#define ETH_MACCR_CLEAR_MASK    0xFF20810FU
+
+/* ETHERNET MACFCR register Mask */
+#define ETH_MACFCR_CLEAR_MASK   0x0000FF41U
+
+/* ETHERNET DMAOMR register Mask */
+#define ETH_DMAOMR_CLEAR_MASK   0xF8DE3F23U
+
+/* ETHERNET MAC address offsets */
+#define ETH_MAC_ADDR_HBASE    (uint32_t)(ETH_MAC_BASE + 0x40U)  /* ETHERNET MAC address high offset */
+#define ETH_MAC_ADDR_LBASE    (uint32_t)(ETH_MAC_BASE + 0x44U)  /* ETHERNET MAC address low offset */
+
+/* ETHERNET DMA Rx descriptors Frame length Shift */
+#define  ETH_DMARXDESC_FRAMELENGTHSHIFT            16U
 /**
   * @}
   */
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/** @defgroup ETH_Private_Functions ETH Private Functions
+
+/* Private macros ------------------------------------------------------------*/
+/** @defgroup ETH_Private_Macros ETH Private Macros
   * @{
   */
-static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth, uint32_t err);
-static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr);
-static void ETH_MACReceptionEnable(ETH_HandleTypeDef *heth);
-static void ETH_MACReceptionDisable(ETH_HandleTypeDef *heth);
-static void ETH_MACTransmissionEnable(ETH_HandleTypeDef *heth);
-static void ETH_MACTransmissionDisable(ETH_HandleTypeDef *heth);
-static void ETH_DMATransmissionEnable(ETH_HandleTypeDef *heth);
-static void ETH_DMATransmissionDisable(ETH_HandleTypeDef *heth);
-static void ETH_DMAReceptionEnable(ETH_HandleTypeDef *heth);
-static void ETH_DMAReceptionDisable(ETH_HandleTypeDef *heth);
+/* Helper macros for TX descriptor handling */
+#define INCR_TX_DESC_INDEX(inx, offset) do {\
+                                             (inx) += (offset);\
+                                             if ((inx) >= (uint32_t)ETH_TX_DESC_CNT){\
+                                             (inx) = ((inx) - (uint32_t)ETH_TX_DESC_CNT);}\
+                                           } while (0)
+
+/* Helper macros for RX descriptor handling */
+#define INCR_RX_DESC_INDEX(inx, offset) do {\
+                                             (inx) += (offset);\
+                                             if ((inx) >= (uint32_t)ETH_RX_DESC_CNT){\
+                                             (inx) = ((inx) - (uint32_t)ETH_RX_DESC_CNT);}\
+                                           } while (0)
+/**
+  * @}
+  */
+/* Private function prototypes -----------------------------------------------*/
+/** @defgroup ETH_Private_Functions   ETH Private Functions
+  * @{
+  */
+static void ETH_SetMACConfig(ETH_HandleTypeDef *heth,  ETH_MACConfigTypeDef *macconf);
+static void ETH_SetDMAConfig(ETH_HandleTypeDef *heth,  ETH_DMAConfigTypeDef *dmaconf);
+static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth);
+static void ETH_DMATxDescListInit(ETH_HandleTypeDef *heth);
+static void ETH_DMARxDescListInit(ETH_HandleTypeDef *heth);
+static uint32_t ETH_Prepare_Tx_Descriptors(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig, uint32_t ItMode);
+static void ETH_UpdateDescriptor(ETH_HandleTypeDef *heth);
 static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth);
-static void ETH_Delay(uint32_t mdelay);
+static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr);
+
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
 static void ETH_InitCallbacksToDefault(ETH_HandleTypeDef *heth);
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
-
 /**
   * @}
   */
-/* Private functions ---------------------------------------------------------*/
 
+/* Exported functions ---------------------------------------------------------*/
 /** @defgroup ETH_Exported_Functions ETH Exported Functions
   * @{
   */
 
-/** @defgroup ETH_Exported_Functions_Group1 Initialization and de-initialization functions 
-  *  @brief   Initialization and Configuration functions 
+/** @defgroup ETH_Exported_Functions_Group1 Initialization and deinitialization functions
+  *  @brief    Initialization and Configuration functions
   *
-  @verbatim    
-  ===============================================================================
-            ##### Initialization and de-initialization functions #####
-  ===============================================================================
-  [..]  This section provides functions allowing to:
-      (+) Initialize and configure the Ethernet peripheral
-      (+) De-initialize the Ethernet peripheral
+@verbatim
+===============================================================================
+            ##### Initialization and Configuration functions #####
+ ===============================================================================
+    [..]  This subsection provides a set of functions allowing to initialize and
+          deinitialize the ETH peripheral:
 
-  @endverbatim
+      (+) User must Implement HAL_ETH_MspInit() function in which he configures
+          all related peripherals resources (CLOCK, GPIO and NVIC ).
+
+      (+) Call the function HAL_ETH_Init() to configure the selected device with
+          the selected configuration:
+        (++) MAC address
+        (++) Media interface (MII or RMII)
+        (++) Rx DMA Descriptors Tab
+        (++) Tx DMA Descriptors Tab
+        (++) Length of Rx Buffers
+
+      (+) Call the function HAL_ETH_DeInit() to restore the default configuration
+          of the selected ETH peripheral.
+
+@endverbatim
   * @{
   */
 
 /**
-  * @brief  Initializes the Ethernet MAC and DMA according to default
-  *         parameters.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Initialize the Ethernet peripheral registers.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
 {
-  uint32_t tmpreg1 = 0U, phyreg = 0U;
-  uint32_t hclk = 60000000U;
-  uint32_t tickstart = 0U;
-  uint32_t err = ETH_SUCCESS;
-  
-  /* Check the ETH peripheral state */
-  if(heth == NULL)
+  uint32_t tickstart;
+
+  if (heth == NULL)
   {
     return HAL_ERROR;
   }
-  
-  /* Check parameters */
-  assert_param(IS_ETH_AUTONEGOTIATION(heth->Init.AutoNegotiation));
-  assert_param(IS_ETH_RX_MODE(heth->Init.RxMode));
-  assert_param(IS_ETH_CHECKSUM_MODE(heth->Init.ChecksumMode));
-  assert_param(IS_ETH_MEDIA_INTERFACE(heth->Init.MediaInterface));  
-  
-  if(heth->State == HAL_ETH_STATE_RESET)
+  if (heth->gState == HAL_ETH_STATE_RESET)
   {
-    /* Allocate lock resource and initialize it */
-    heth->Lock = HAL_UNLOCKED;
+    heth->gState = HAL_ETH_STATE_BUSY;
+
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+
     ETH_InitCallbacksToDefault(heth);
 
-    if(heth->MspInitCallback == NULL)
+    if (heth->MspInitCallback == NULL)
     {
-      /* Init the low level hardware : GPIO, CLOCK, NVIC. */
       heth->MspInitCallback = HAL_ETH_MspInit;
     }
-    heth->MspInitCallback(heth);
 
+    /* Init the low level hardware */
+    heth->MspInitCallback(heth);
 #else
     /* Init the low level hardware : GPIO, CLOCK, NVIC. */
     HAL_ETH_MspInit(heth);
-#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+#endif /* (USE_HAL_ETH_REGISTER_CALLBACKS) */
   }
-  
-  /* Enable SYSCFG Clock */
+
   __HAL_RCC_SYSCFG_CLK_ENABLE();
-  
+
   /* Select MII or RMII Mode*/
   SYSCFG->PMC &= ~(SYSCFG_PMC_MII_RMII_SEL);
   SYSCFG->PMC |= (uint32_t)heth->Init.MediaInterface;
-  
+  /* Dummy read to sync SYSCFG with ETH */
+  (void)SYSCFG->PMC;
+
   /* Ethernet Software reset */
   /* Set the SWR bit: resets all MAC subsystem internal registers and logic */
   /* After reset all the registers holds their respective reset values */
-  (heth->Instance)->DMABMR |= ETH_DMABMR_SR;
-  
+  SET_BIT(heth->Instance->DMABMR, ETH_DMABMR_SR);
+
   /* Get tick */
   tickstart = HAL_GetTick();
-  
-  /* Wait for software reset */
-  while (((heth->Instance)->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)
-  {
-    /* Check for the Timeout */
-    if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_SWRESET)
-    {     
-      heth->State= HAL_ETH_STATE_TIMEOUT;
-  
-      /* Process Unlocked */
-      __HAL_UNLOCK(heth);
-    
-      /* Note: The SWR is not performed if the ETH_RX_CLK or the ETH_TX_CLK are  
-         not available, please check your external PHY or the IO configuration */
-      return HAL_TIMEOUT;
-    }
-  }
-  
-  /*-------------------------------- MAC Initialization ----------------------*/
-  /* Get the ETHERNET MACMIIAR value */
-  tmpreg1 = (heth->Instance)->MACMIIAR;
-  /* Clear CSR Clock Range CR[2:0] bits */
-  tmpreg1 &= ETH_MACMIIAR_CR_MASK;
-  
-  /* Get hclk frequency value */
-  hclk = HAL_RCC_GetHCLKFreq();
-  
-  /* Set CR bits depending on hclk value */
-  if((hclk >= 20000000U)&&(hclk < 35000000U))
-  {
-    /* CSR Clock Range between 20-35 MHz */
-    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div16;
-  }
-  else if((hclk >= 35000000U)&&(hclk < 60000000U))
-  {
-    /* CSR Clock Range between 35-60 MHz */ 
-    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div26;
-  }  
-  else if((hclk >= 60000000U)&&(hclk < 100000000U))
-  {
-    /* CSR Clock Range between 60-100 MHz */ 
-    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div42;
-  }  
-  else if((hclk >= 100000000U)&&(hclk < 150000000U))
-  {
-    /* CSR Clock Range between 100-150 MHz */ 
-    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div62;
-  }
-  else /* ((hclk >= 150000000)&&(hclk <= 183000000)) */
-  {
-    /* CSR Clock Range between 150-183 MHz */ 
-    tmpreg1 |= (uint32_t)ETH_MACMIIAR_CR_Div102;    
-  }
-  
-  /* Write to ETHERNET MAC MIIAR: Configure the ETHERNET CSR Clock Range */
-  (heth->Instance)->MACMIIAR = (uint32_t)tmpreg1;
-  
-  /*-------------------- PHY initialization and configuration ----------------*/
-  /* Put the PHY in reset mode */
-  if((HAL_ETH_WritePHYRegister(heth, PHY_BCR, PHY_RESET)) != HAL_OK)
-  {
-    /* In case of write timeout */
-    err = ETH_ERROR;
-    
-    /* Config MAC and DMA */
-    ETH_MACDMAConfig(heth, err);
-    
-    /* Set the ETH peripheral state to READY */
-    heth->State = HAL_ETH_STATE_READY;
-    
-    /* Return HAL_ERROR */
-    return HAL_ERROR;
-  }
-  
-  /* Delay to assure PHY reset */
-  HAL_Delay(PHY_RESET_DELAY);
-  
-  if((heth->Init).AutoNegotiation != ETH_AUTONEGOTIATION_DISABLE)
-  {
-    /* Get tick */
-    tickstart = HAL_GetTick();
-    
-    /* We wait for linked status */
-    do
-    {
-      HAL_ETH_ReadPHYRegister(heth, PHY_BSR, &phyreg);
-      
-      /* Check for the Timeout */
-      if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_LINKED_STATE)
-      {
-        /* In case of write timeout */
-        err = ETH_ERROR;
-      
-        /* Config MAC and DMA */
-        ETH_MACDMAConfig(heth, err);
-        
-        heth->State= HAL_ETH_STATE_READY;
-  
-        /* Process Unlocked */
-        __HAL_UNLOCK(heth);
-    
-        return HAL_TIMEOUT;
-      }
-    } while (((phyreg & PHY_LINKED_STATUS) != PHY_LINKED_STATUS));
 
-    
-    /* Enable Auto-Negotiation */
-    if((HAL_ETH_WritePHYRegister(heth, PHY_BCR, PHY_AUTONEGOTIATION)) != HAL_OK)
-    {
-      /* In case of write timeout */
-      err = ETH_ERROR;
-      
-      /* Config MAC and DMA */
-      ETH_MACDMAConfig(heth, err);
-      
-      /* Set the ETH peripheral state to READY */
-      heth->State = HAL_ETH_STATE_READY;
-      
-      /* Return HAL_ERROR */
-      return HAL_ERROR;   
-    }
-    
-    /* Get tick */
-    tickstart = HAL_GetTick();
-    
-    /* Wait until the auto-negotiation will be completed */
-    do
-    {
-      HAL_ETH_ReadPHYRegister(heth, PHY_BSR, &phyreg);
-      
-      /* Check for the Timeout */
-      if((HAL_GetTick() - tickstart ) > ETH_TIMEOUT_AUTONEGO_COMPLETED)
-      {
-        /* In case of write timeout */
-        err = ETH_ERROR;
-      
-        /* Config MAC and DMA */
-        ETH_MACDMAConfig(heth, err);
-        
-        heth->State= HAL_ETH_STATE_READY;
-  
-        /* Process Unlocked */
-        __HAL_UNLOCK(heth);
-    
-        return HAL_TIMEOUT;
-      }
-      
-    } while (((phyreg & PHY_AUTONEGO_COMPLETE) != PHY_AUTONEGO_COMPLETE));
-    
-    /* Read the result of the auto-negotiation */
-    if((HAL_ETH_ReadPHYRegister(heth, PHY_SR, &phyreg)) != HAL_OK)
-    {
-      /* In case of write timeout */
-      err = ETH_ERROR;
-      
-      /* Config MAC and DMA */
-      ETH_MACDMAConfig(heth, err);
-      
-      /* Set the ETH peripheral state to READY */
-      heth->State = HAL_ETH_STATE_READY;
-      
-      /* Return HAL_ERROR */
-      return HAL_ERROR;   
-    }
-    
-    /* Configure the MAC with the Duplex Mode fixed by the auto-negotiation process */
-    if((phyreg & PHY_DUPLEX_STATUS) != (uint32_t)RESET)
-    {
-      /* Set Ethernet duplex mode to Full-duplex following the auto-negotiation */
-      (heth->Init).DuplexMode = ETH_MODE_FULLDUPLEX;  
-    }
-    else
-    {
-      /* Set Ethernet duplex mode to Half-duplex following the auto-negotiation */
-      (heth->Init).DuplexMode = ETH_MODE_HALFDUPLEX;           
-    }
-    /* Configure the MAC with the speed fixed by the auto-negotiation process */
-    if((phyreg & PHY_SPEED_STATUS) == PHY_SPEED_STATUS)
-    {  
-      /* Set Ethernet speed to 10M following the auto-negotiation */
-      (heth->Init).Speed = ETH_SPEED_10M; 
-    }
-    else
-    {   
-      /* Set Ethernet speed to 100M following the auto-negotiation */ 
-      (heth->Init).Speed = ETH_SPEED_100M;
-    }
-  }
-  else /* AutoNegotiation Disable */
+  /* Wait for software reset */
+  while (READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_SR) > 0U)
   {
-    /* Check parameters */
-    assert_param(IS_ETH_SPEED(heth->Init.Speed));
-    assert_param(IS_ETH_DUPLEX_MODE(heth->Init.DuplexMode));
-    
-    /* Set MAC Speed and Duplex Mode */
-    if(HAL_ETH_WritePHYRegister(heth, PHY_BCR, ((uint16_t)((heth->Init).DuplexMode >> 3U) |
-                                                (uint16_t)((heth->Init).Speed >> 1U))) != HAL_OK)
+    if (((HAL_GetTick() - tickstart) > ETH_SWRESET_TIMEOUT))
     {
-      /* In case of write timeout */
-      err = ETH_ERROR;
-      
-      /* Config MAC and DMA */
-      ETH_MACDMAConfig(heth, err);
-      
-      /* Set the ETH peripheral state to READY */
-      heth->State = HAL_ETH_STATE_READY;
-      
-      /* Return HAL_ERROR */
+      /* Set Error Code */
+      heth->ErrorCode = HAL_ETH_ERROR_TIMEOUT;
+      /* Set State as Error */
+      heth->gState = HAL_ETH_STATE_ERROR;
+      /* Return Error */
       return HAL_ERROR;
-    }  
-    
-    /* Delay to assure PHY configuration */
-    HAL_Delay(PHY_CONFIG_DELAY);
+    }
   }
-  
-  /* Config MAC and DMA */
-  ETH_MACDMAConfig(heth, err);
-  
-  /* Set ETH HAL State to Ready */
-  heth->State= HAL_ETH_STATE_READY;
-  
-  /* Return function status */
+
+
+  /*------------------ MAC, MTL and DMA default Configuration ----------------*/
+  ETH_MACDMAConfig(heth);
+
+
+  /*------------------ DMA Tx Descriptors Configuration ----------------------*/
+  ETH_DMATxDescListInit(heth);
+
+  /*------------------ DMA Rx Descriptors Configuration ----------------------*/
+  ETH_DMARxDescListInit(heth);
+
+  /*--------------------- ETHERNET MAC Address Configuration ------------------*/
+  ETH_MACAddressConfig(heth, ETH_MAC_ADDRESS0, heth->Init.MACAddr);
+
+  heth->ErrorCode = HAL_ETH_ERROR_NONE;
+  heth->gState = HAL_ETH_STATE_READY;
+
   return HAL_OK;
 }
 
 /**
-  * @brief  De-Initializes the ETH peripheral. 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  DeInitializes the ETH peripheral.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth)
 {
   /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
+  heth->gState = HAL_ETH_STATE_BUSY;
+
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-  if(heth->MspDeInitCallback == NULL)
+
+  if (heth->MspDeInitCallback == NULL)
   {
     heth->MspDeInitCallback = HAL_ETH_MspDeInit;
   }
-  /* De-Init the low level hardware : GPIO, CLOCK, NVIC. */
+  /* DeInit the low level hardware */
   heth->MspDeInitCallback(heth);
 #else
+
   /* De-Init the low level hardware : GPIO, CLOCK, NVIC. */
   HAL_ETH_MspDeInit(heth);
-#endif
-  
+
+#endif /* (USE_HAL_ETH_REGISTER_CALLBACKS) */
+
   /* Set ETH HAL state to Disabled */
-  heth->State= HAL_ETH_STATE_RESET;
+  heth->gState = HAL_ETH_STATE_RESET;
 
-  /* Release Lock */
-  __HAL_UNLOCK(heth);
-
-  /* Return function status */
-  return HAL_OK;
-}
-
-/**
-  * @brief  Initializes the DMA Tx descriptors in chain mode.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module  
-  * @param  DMATxDescTab Pointer to the first Tx desc list 
-  * @param  TxBuff Pointer to the first TxBuffer list
-  * @param  TxBuffCount Number of the used Tx desc in the list
-  * @retval HAL status
-  */
-HAL_StatusTypeDef HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount)
-{
-  uint32_t i = 0U;
-  ETH_DMADescTypeDef *dmatxdesc;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Set the DMATxDescToSet pointer with the first one of the DMATxDescTab list */
-  heth->TxDesc = DMATxDescTab;
-  
-  /* Fill each DMATxDesc descriptor with the right values */   
-  for(i=0U; i < TxBuffCount; i++)
-  {
-    /* Get the pointer on the ith member of the Tx Desc list */
-    dmatxdesc = DMATxDescTab + i;
-    
-    /* Set Second Address Chained bit */
-    dmatxdesc->Status = ETH_DMATXDESC_TCH;  
-    
-    /* Set Buffer1 address pointer */
-    dmatxdesc->Buffer1Addr = (uint32_t)(&TxBuff[i*ETH_TX_BUF_SIZE]);
-    
-    if ((heth->Init).ChecksumMode == ETH_CHECKSUM_BY_HARDWARE)
-    {
-      /* Set the DMA Tx descriptors checksum insertion */
-      dmatxdesc->Status |= ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL;
-    }
-    
-    /* Initialize the next descriptor with the Next Descriptor Polling Enable */
-    if(i < (TxBuffCount-1U))
-    {
-      /* Set next descriptor address register with next descriptor base address */
-      dmatxdesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab+i+1U);
-    }
-    else
-    {
-      /* For last descriptor, set next descriptor address register equal to the first descriptor base address */ 
-      dmatxdesc->Buffer2NextDescAddr = (uint32_t) DMATxDescTab;  
-    }
-  }
-  
-  /* Set Transmit Descriptor List Address Register */
-  (heth->Instance)->DMATDLAR = (uint32_t) DMATxDescTab;
-  
-  /* Set ETH HAL State to Ready */
-  heth->State= HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
-  /* Return function status */
-  return HAL_OK;
-}
-
-/**
-  * @brief  Initializes the DMA Rx descriptors in chain mode.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module  
-  * @param  DMARxDescTab Pointer to the first Rx desc list 
-  * @param  RxBuff Pointer to the first RxBuffer list
-  * @param  RxBuffCount Number of the used Rx desc in the list
-  * @retval HAL status
-  */
-HAL_StatusTypeDef HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount)
-{
-  uint32_t i = 0U;
-  ETH_DMADescTypeDef *DMARxDesc;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Set the Ethernet RxDesc pointer with the first one of the DMARxDescTab list */
-  heth->RxDesc = DMARxDescTab; 
-  
-  /* Fill each DMARxDesc descriptor with the right values */
-  for(i=0U; i < RxBuffCount; i++)
-  {
-    /* Get the pointer on the ith member of the Rx Desc list */
-    DMARxDesc = DMARxDescTab+i;
-    
-    /* Set Own bit of the Rx descriptor Status */
-    DMARxDesc->Status = ETH_DMARXDESC_OWN;
-    
-    /* Set Buffer1 size and Second Address Chained bit */
-    DMARxDesc->ControlBufferSize = ETH_DMARXDESC_RCH | ETH_RX_BUF_SIZE;  
-    
-    /* Set Buffer1 address pointer */
-    DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i*ETH_RX_BUF_SIZE]);
-    
-    if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE)
-    {
-      /* Enable Ethernet DMA Rx Descriptor interrupt */
-      DMARxDesc->ControlBufferSize &= ~ETH_DMARXDESC_DIC;
-    }
-    
-    /* Initialize the next descriptor with the Next Descriptor Polling Enable */
-    if(i < (RxBuffCount-1U))
-    {
-      /* Set next descriptor address register with next descriptor base address */
-      DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab+i+1U); 
-    }
-    else
-    {
-      /* For last descriptor, set next descriptor address register equal to the first descriptor base address */ 
-      DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab); 
-    }
-  }
-  
-  /* Set Receive Descriptor List Address Register */
-  (heth->Instance)->DMARDLAR = (uint32_t) DMARxDescTab;
-  
-  /* Set ETH HAL State to Ready */
-  heth->State= HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
   /* Return function status */
   return HAL_OK;
 }
 
 /**
   * @brief  Initializes the ETH MSP.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
@@ -675,7 +462,7 @@
 
 /**
   * @brief  DeInitializes ETH MSP.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
@@ -697,80 +484,96 @@
   *        This parameter can be one of the following values:
   *          @arg @ref HAL_ETH_TX_COMPLETE_CB_ID Tx Complete Callback ID
   *          @arg @ref HAL_ETH_RX_COMPLETE_CB_ID Rx Complete Callback ID
-  *          @arg @ref HAL_ETH_DMA_ERROR_CB_ID   DMA Error Callback ID
+  *          @arg @ref HAL_ETH_ERROR_CB_ID       Error Callback ID
+  *          @arg @ref HAL_ETH_PMT_CB_ID         Power Management Callback ID
+  *          @arg @ref HAL_ETH_WAKEUP_CB_ID      Wake UP Callback ID
   *          @arg @ref HAL_ETH_MSPINIT_CB_ID     MspInit callback ID
   *          @arg @ref HAL_ETH_MSPDEINIT_CB_ID   MspDeInit callback ID
   * @param pCallback pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID, pETH_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID,
+                                           pETH_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
+    /* Update the error code */
+    heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
+
     return HAL_ERROR;
   }
-  /* Process locked */
-  __HAL_LOCK(heth);
 
-  if(heth->State == HAL_ETH_STATE_READY)
+  if (heth->gState == HAL_ETH_STATE_READY)
   {
     switch (CallbackID)
     {
-    case HAL_ETH_TX_COMPLETE_CB_ID :
-      heth->TxCpltCallback = pCallback;
-      break;
+      case HAL_ETH_TX_COMPLETE_CB_ID :
+        heth->TxCpltCallback = pCallback;
+        break;
 
-    case HAL_ETH_RX_COMPLETE_CB_ID :
-      heth->RxCpltCallback = pCallback;
-      break;
+      case HAL_ETH_RX_COMPLETE_CB_ID :
+        heth->RxCpltCallback = pCallback;
+        break;
 
-    case HAL_ETH_DMA_ERROR_CB_ID :
-      heth->DMAErrorCallback = pCallback;
-      break;
+      case HAL_ETH_ERROR_CB_ID :
+        heth->ErrorCallback = pCallback;
+        break;
 
-    case HAL_ETH_MSPINIT_CB_ID :
-      heth->MspInitCallback = pCallback;
-      break;
+      case HAL_ETH_PMT_CB_ID :
+        heth->PMTCallback = pCallback;
+        break;
 
-    case HAL_ETH_MSPDEINIT_CB_ID :
-      heth->MspDeInitCallback = pCallback;
-      break;
 
-    default :
-      /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_ETH_WAKEUP_CB_ID :
+        heth->WakeUpCallback = pCallback;
+        break;
+
+      case HAL_ETH_MSPINIT_CB_ID :
+        heth->MspInitCallback = pCallback;
+        break;
+
+      case HAL_ETH_MSPDEINIT_CB_ID :
+        heth->MspDeInitCallback = pCallback;
+        break;
+
+      default :
+        /* Update the error code */
+        heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(heth->State == HAL_ETH_STATE_RESET)
+  else if (heth->gState == HAL_ETH_STATE_RESET)
   {
     switch (CallbackID)
     {
-    case HAL_ETH_MSPINIT_CB_ID :
-      heth->MspInitCallback = pCallback;
-      break;
+      case HAL_ETH_MSPINIT_CB_ID :
+        heth->MspInitCallback = pCallback;
+        break;
 
-    case HAL_ETH_MSPDEINIT_CB_ID :
-      heth->MspDeInitCallback = pCallback;
-      break;
+      case HAL_ETH_MSPDEINIT_CB_ID :
+        heth->MspDeInitCallback = pCallback;
+        break;
 
-    default :
-      /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Update the error code */
+        heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
   {
+    /* Update the error code */
+    heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
     /* Return error status */
     status =  HAL_ERROR;
   }
 
-  /* Release Lock */
-  __HAL_UNLOCK(heth);
-
   return status;
 }
 
@@ -782,7 +585,9 @@
   *        This parameter can be one of the following values:
   *          @arg @ref HAL_ETH_TX_COMPLETE_CB_ID Tx Complete Callback ID
   *          @arg @ref HAL_ETH_RX_COMPLETE_CB_ID Rx Complete Callback ID
-  *          @arg @ref HAL_ETH_DMA_ERROR_CB_ID      DMA Error Callback ID
+  *          @arg @ref HAL_ETH_ERROR_CB_ID       Error Callback ID
+  *          @arg @ref HAL_ETH_PMT_CB_ID         Power Management Callback ID
+  *          @arg @ref HAL_ETH_WAKEUP_CB_ID      Wake UP Callback ID
   *          @arg @ref HAL_ETH_MSPINIT_CB_ID     MspInit callback ID
   *          @arg @ref HAL_ETH_MSPDEINIT_CB_ID   MspDeInit callback ID
   * @retval status
@@ -791,66 +596,75 @@
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  /* Process locked */
-  __HAL_LOCK(heth);
-
-  if(heth->State == HAL_ETH_STATE_READY)
+  if (heth->gState == HAL_ETH_STATE_READY)
   {
     switch (CallbackID)
     {
-    case HAL_ETH_TX_COMPLETE_CB_ID :
-      heth->TxCpltCallback = HAL_ETH_TxCpltCallback;
-      break;
+      case HAL_ETH_TX_COMPLETE_CB_ID :
+        heth->TxCpltCallback = HAL_ETH_TxCpltCallback;
+        break;
 
-    case HAL_ETH_RX_COMPLETE_CB_ID :
-      heth->RxCpltCallback = HAL_ETH_RxCpltCallback;
-      break;
+      case HAL_ETH_RX_COMPLETE_CB_ID :
+        heth->RxCpltCallback = HAL_ETH_RxCpltCallback;
+        break;
 
-    case HAL_ETH_DMA_ERROR_CB_ID :
-      heth->DMAErrorCallback = HAL_ETH_ErrorCallback;
-      break;
+      case HAL_ETH_ERROR_CB_ID :
+        heth->ErrorCallback = HAL_ETH_ErrorCallback;
+        break;
 
-    case HAL_ETH_MSPINIT_CB_ID :
-      heth->MspInitCallback = HAL_ETH_MspInit;
-      break;
+      case HAL_ETH_PMT_CB_ID :
+        heth->PMTCallback = HAL_ETH_PMTCallback;
+        break;
 
-    case HAL_ETH_MSPDEINIT_CB_ID :
-      heth->MspDeInitCallback = HAL_ETH_MspDeInit;
-      break;
 
-    default :
-      /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_ETH_WAKEUP_CB_ID :
+        heth->WakeUpCallback = HAL_ETH_WakeUpCallback;
+        break;
+
+      case HAL_ETH_MSPINIT_CB_ID :
+        heth->MspInitCallback = HAL_ETH_MspInit;
+        break;
+
+      case HAL_ETH_MSPDEINIT_CB_ID :
+        heth->MspDeInitCallback = HAL_ETH_MspDeInit;
+        break;
+
+      default :
+        /* Update the error code */
+        heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(heth->State == HAL_ETH_STATE_RESET)
+  else if (heth->gState == HAL_ETH_STATE_RESET)
   {
     switch (CallbackID)
     {
-    case HAL_ETH_MSPINIT_CB_ID :
-      heth->MspInitCallback = HAL_ETH_MspInit;
-      break;
+      case HAL_ETH_MSPINIT_CB_ID :
+        heth->MspInitCallback = HAL_ETH_MspInit;
+        break;
 
-    case HAL_ETH_MSPDEINIT_CB_ID :
-      heth->MspDeInitCallback = HAL_ETH_MspDeInit;
-      break;
+      case HAL_ETH_MSPDEINIT_CB_ID :
+        heth->MspDeInitCallback = HAL_ETH_MspDeInit;
+        break;
 
-    default :
-      /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Update the error code */
+        heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
   {
+    /* Update the error code */
+    heth->ErrorCode |= HAL_ETH_ERROR_INVALID_CALLBACK;
     /* Return error status */
     status =  HAL_ERROR;
   }
 
-  /* Release Lock */
-  __HAL_UNLOCK(heth);
-
   return status;
 }
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
@@ -859,385 +673,1256 @@
   * @}
   */
 
-/** @defgroup ETH_Exported_Functions_Group2 IO operation functions 
-  *  @brief   Data transfers functions 
+/** @defgroup ETH_Exported_Functions_Group2 IO operation functions
+  *  @brief ETH Transmit and Receive functions
   *
-  @verbatim   
+@verbatim
   ==============================================================================
-                          ##### IO operation functions #####
-  ==============================================================================  
-  [..]  This section provides functions allowing to:
-        (+) Transmit a frame
-            HAL_ETH_TransmitFrame();
-        (+) Receive a frame
-            HAL_ETH_GetReceivedFrame();
-            HAL_ETH_GetReceivedFrame_IT();
-        (+) Read from an External PHY register
-            HAL_ETH_ReadPHYRegister();
-        (+) Write to an External PHY register
-            HAL_ETH_WritePHYRegister();
+                      ##### IO operation functions #####
+  ==============================================================================
+  [..]
+    This subsection provides a set of functions allowing to manage the ETH
+    data transfer.
 
-  @endverbatim
-  
+@endverbatim
   * @{
   */
 
 /**
-  * @brief  Sends an Ethernet frame. 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Enables Ethernet MAC and DMA reception and transmission
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
-  * @param  FrameLength Amount of data to be sent
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength)
+HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
 {
-  uint32_t bufcount = 0U, size = 0U, i = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  if (FrameLength == 0U) 
+  if (heth->gState == HAL_ETH_STATE_READY)
   {
-    /* Set ETH HAL state to READY */
-    heth->State = HAL_ETH_STATE_READY;
-    
-    /* Process Unlocked */
-    __HAL_UNLOCK(heth);
-    
-    return  HAL_ERROR;                                    
-  }  
-  
-  /* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
-  if(((heth->TxDesc)->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
-  {  
-    /* OWN bit set */
-    heth->State = HAL_ETH_STATE_BUSY_TX;
-    
-    /* Process Unlocked */
-    __HAL_UNLOCK(heth);
-    
-    return HAL_ERROR;
-  }
-  
-  /* Get the number of needed Tx buffers for the current frame */
-  if (FrameLength > ETH_TX_BUF_SIZE)
-  {
-    bufcount = FrameLength/ETH_TX_BUF_SIZE;
-    if (FrameLength % ETH_TX_BUF_SIZE) 
-    {
-      bufcount++;
-    }
-  }
-  else 
-  {  
-    bufcount = 1U;
-  }
-  if (bufcount == 1U)
-  {
-    /* Set LAST and FIRST segment */
-    heth->TxDesc->Status |=ETH_DMATXDESC_FS|ETH_DMATXDESC_LS;
-    /* Set frame size */
-    heth->TxDesc->ControlBufferSize = (FrameLength & ETH_DMATXDESC_TBS1);
-    /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
-    heth->TxDesc->Status |= ETH_DMATXDESC_OWN;
-    /* Point to next descriptor */
-    heth->TxDesc= (ETH_DMADescTypeDef *)(heth->TxDesc->Buffer2NextDescAddr);
+    heth->gState = HAL_ETH_STATE_BUSY;
+
+    /* Set nombre of descriptors to build */
+    heth->RxDescList.RxBuildDescCnt = ETH_RX_DESC_CNT;
+
+    /* Build all descriptors */
+    ETH_UpdateDescriptor(heth);
+
+    /* Enable the MAC transmission */
+    SET_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    /* Enable the MAC reception */
+    SET_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+
+    /* Flush Transmit FIFO */
+    ETH_FlushTransmitFIFO(heth);
+
+    /* Enable the DMA transmission */
+    SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_ST);
+
+    /* Enable the DMA reception */
+    SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+
+    heth->gState = HAL_ETH_STATE_STARTED;
+
+    return HAL_OK;
   }
   else
   {
-    for (i=0U; i< bufcount; i++)
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Enables Ethernet MAC and DMA reception/transmission in Interrupt mode
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Start_IT(ETH_HandleTypeDef *heth)
+{
+  if (heth->gState == HAL_ETH_STATE_READY)
+  {
+    heth->gState = HAL_ETH_STATE_BUSY;
+
+    /* save IT mode to ETH Handle */
+    heth->RxDescList.ItMode = 1U;
+    /* Disable MMC Interrupts */
+    SET_BIT(heth->Instance->MACIMR, ETH_MACIMR_TSTIM | ETH_MACIMR_PMTIM);
+
+    /* Disable Rx MMC Interrupts */
+    SET_BIT(heth->Instance->MMCRIMR, ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFAEM | \
+            ETH_MMCRIMR_RFCEM);
+
+    /* Disable Tx MMC Interrupts */
+    SET_BIT(heth->Instance->MMCTIMR, ETH_MMCTIMR_TGFM | ETH_MMCTIMR_TGFMSCM | \
+            ETH_MMCTIMR_TGFSCM);
+
+    /* Set nombre of descriptors to build */
+    heth->RxDescList.RxBuildDescCnt = ETH_RX_DESC_CNT;
+
+    /* Build all descriptors */
+    ETH_UpdateDescriptor(heth);
+
+    /* Enable the MAC transmission */
+    SET_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    /* Enable the MAC reception */
+    SET_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+
+    /* Flush Transmit FIFO */
+    ETH_FlushTransmitFIFO(heth);
+
+    /* Enable the DMA transmission */
+    SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_ST);
+
+    /* Enable the DMA reception */
+    SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+
+    /* Enable ETH DMA interrupts:
+    - Tx complete interrupt
+    - Rx complete interrupt
+    - Fatal bus interrupt
+    */
+    __HAL_ETH_DMA_ENABLE_IT(heth, (ETH_DMAIER_NISE | ETH_DMAIER_RIE | ETH_DMAIER_TIE  |
+                                   ETH_DMAIER_FBEIE | ETH_DMAIER_AISE | ETH_DMAIER_RBUIE));
+
+    heth->gState = HAL_ETH_STATE_STARTED;
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Stop Ethernet MAC and DMA reception/transmission
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
+{
+  if (heth->gState == HAL_ETH_STATE_STARTED)
+  {
+    /* Set the ETH peripheral state to BUSY */
+    heth->gState = HAL_ETH_STATE_BUSY;
+    /* Disable the DMA transmission */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    /* Disable the DMA reception */
+    CLEAR_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+
+    /* Disable the MAC reception */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+
+    /* Flush Transmit FIFO */
+    ETH_FlushTransmitFIFO(heth);
+
+    /* Disable the MAC transmission */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    heth->gState = HAL_ETH_STATE_READY;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Stop Ethernet MAC and DMA reception/transmission in Interrupt mode
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Stop_IT(ETH_HandleTypeDef *heth)
+{
+  ETH_DMADescTypeDef *dmarxdesc;
+  uint32_t descindex;
+
+  if (heth->gState == HAL_ETH_STATE_STARTED)
+  {
+    /* Set the ETH peripheral state to BUSY */
+    heth->gState = HAL_ETH_STATE_BUSY;
+
+    __HAL_ETH_DMA_DISABLE_IT(heth, (ETH_DMAIER_NISE | ETH_DMAIER_RIE | ETH_DMAIER_TIE  |
+                                    ETH_DMAIER_FBEIE | ETH_DMAIER_AISE | ETH_DMAIER_RBUIE));
+
+    /* Disable the DMA transmission */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    /* Disable the DMA reception */
+    CLEAR_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+
+    /* Disable the MAC reception */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+    /* Flush Transmit FIFO */
+    ETH_FlushTransmitFIFO(heth);
+
+    /* Disable the MAC transmission */
+    CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+
+    /* Clear IOC bit to all Rx descriptors */
+    for (descindex = 0; descindex < (uint32_t)ETH_RX_DESC_CNT; descindex++)
     {
-      /* Clear FIRST and LAST segment bits */
-      heth->TxDesc->Status &= ~(ETH_DMATXDESC_FS | ETH_DMATXDESC_LS);
-      
-      if (i == 0U) 
+      dmarxdesc = (ETH_DMADescTypeDef *)heth->RxDescList.RxDesc[descindex];
+      SET_BIT(dmarxdesc->DESC1, ETH_DMARXDESC_DIC);
+    }
+
+    heth->RxDescList.ItMode = 0U;
+
+    heth->gState = HAL_ETH_STATE_READY;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Sends an Ethernet Packet in polling mode.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pTxConfig: Hold the configuration of packet to be transmitted
+  * @param  Timeout: timeout value
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig, uint32_t Timeout)
+{
+  uint32_t tickstart;
+  ETH_DMADescTypeDef *dmatxdesc;
+
+  if (pTxConfig == NULL)
+  {
+    heth->ErrorCode |= HAL_ETH_ERROR_PARAM;
+    return HAL_ERROR;
+  }
+
+  if (heth->gState == HAL_ETH_STATE_STARTED)
+  {
+    /* Config DMA Tx descriptor by Tx Packet info */
+    if (ETH_Prepare_Tx_Descriptors(heth, pTxConfig, 0) != HAL_ETH_ERROR_NONE)
+    {
+      /* Set the ETH error code */
+      heth->ErrorCode |= HAL_ETH_ERROR_BUSY;
+      return HAL_ERROR;
+    }
+
+    /* Ensure completion of descriptor preparation before transmission start */
+    __DSB();
+
+    dmatxdesc = (ETH_DMADescTypeDef *)(&heth->TxDescList)->TxDesc[heth->TxDescList.CurTxDesc];
+
+    /* Incr current tx desc index */
+    INCR_TX_DESC_INDEX(heth->TxDescList.CurTxDesc, 1U);
+
+    /* Start transmission */
+    /* issue a poll command to Tx DMA by writing address of next immediate free descriptor */
+    WRITE_REG(heth->Instance->DMATPDR, (uint32_t)(heth->TxDescList.TxDesc[heth->TxDescList.CurTxDesc]));
+
+    tickstart = HAL_GetTick();
+
+    /* Wait for data to be transmitted or timeout occurred */
+    while ((dmatxdesc->DESC0 & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
+    {
+      if ((heth->Instance->DMASR & ETH_DMASR_FBES) != (uint32_t)RESET)
       {
-        /* Setting the first segment bit */
-        heth->TxDesc->Status |= ETH_DMATXDESC_FS;  
+        heth->ErrorCode |= HAL_ETH_ERROR_DMA;
+        heth->DMAErrorCode = heth->Instance->DMASR;
+        /* Return function status */
+        return HAL_ERROR;
       }
-      
-      /* Program size */
-      heth->TxDesc->ControlBufferSize = (ETH_TX_BUF_SIZE & ETH_DMATXDESC_TBS1);
-      
-      if (i == (bufcount-1U))
+
+      /* Check for the Timeout */
+      if (Timeout != HAL_MAX_DELAY)
       {
-        /* Setting the last segment bit */
-        heth->TxDesc->Status |= ETH_DMATXDESC_LS;
-        size = FrameLength - (bufcount-1U)*ETH_TX_BUF_SIZE;
-        heth->TxDesc->ControlBufferSize = (size & ETH_DMATXDESC_TBS1);
+        if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
+        {
+          heth->ErrorCode |= HAL_ETH_ERROR_TIMEOUT;
+          /* Clear TX descriptor so that we can proceed */
+          dmatxdesc->DESC0 = (ETH_DMATXDESC_FS | ETH_DMATXDESC_LS);
+          return HAL_ERROR;
+        }
       }
-      
-      /* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
-      heth->TxDesc->Status |= ETH_DMATXDESC_OWN;
-      /* point to next descriptor */
-      heth->TxDesc = (ETH_DMADescTypeDef *)(heth->TxDesc->Buffer2NextDescAddr);
+    }
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Sends an Ethernet Packet in interrupt mode.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pTxConfig: Hold the configuration of packet to be transmitted
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig)
+{
+  if (pTxConfig == NULL)
+  {
+    heth->ErrorCode |= HAL_ETH_ERROR_PARAM;
+    return HAL_ERROR;
+  }
+
+  if (heth->gState == HAL_ETH_STATE_STARTED)
+  {
+    /* Save the packet pointer to release.  */
+    heth->TxDescList.CurrentPacketAddress = (uint32_t *)pTxConfig->pData;
+
+    /* Config DMA Tx descriptor by Tx Packet info */
+    if (ETH_Prepare_Tx_Descriptors(heth, pTxConfig, 1) != HAL_ETH_ERROR_NONE)
+    {
+      heth->ErrorCode |= HAL_ETH_ERROR_BUSY;
+      return HAL_ERROR;
+    }
+
+    /* Ensure completion of descriptor preparation before transmission start */
+    __DSB();
+
+    /* Incr current tx desc index */
+    INCR_TX_DESC_INDEX(heth->TxDescList.CurTxDesc, 1U);
+
+    /* Start transmission */
+    /* issue a poll command to Tx DMA by writing address of next immediate free descriptor */
+    if (((heth->Instance)->DMASR & ETH_DMASR_TBUS) != (uint32_t)RESET)
+    {
+      /* Clear TBUS ETHERNET DMA flag */
+      (heth->Instance)->DMASR = ETH_DMASR_TBUS;
+      /* Resume DMA transmission*/
+      (heth->Instance)->DMATPDR = 0U;
+    }
+
+    return HAL_OK;
+
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Read a received packet.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pAppBuff: Pointer to an application buffer to receive the packet.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_ReadData(ETH_HandleTypeDef *heth, void **pAppBuff)
+{
+  uint32_t descidx;
+  ETH_DMADescTypeDef *dmarxdesc;
+  uint32_t desccnt = 0U;
+  uint32_t desccntmax;
+  uint32_t bufflength;
+  uint8_t rxdataready = 0U;
+
+
+  if (pAppBuff == NULL)
+  {
+    heth->ErrorCode |= HAL_ETH_ERROR_PARAM;
+    return HAL_ERROR;
+  }
+
+  if (heth->gState != HAL_ETH_STATE_STARTED)
+  {
+    return HAL_ERROR;
+  }
+
+  descidx = heth->RxDescList.RxDescIdx;
+  dmarxdesc = (ETH_DMADescTypeDef *)heth->RxDescList.RxDesc[descidx];
+  desccntmax = ETH_RX_DESC_CNT - heth->RxDescList.RxBuildDescCnt;
+
+  /* Check if descriptor is not owned by DMA */
+  while ((READ_BIT(dmarxdesc->DESC0, ETH_DMARXDESC_OWN) == (uint32_t)RESET) && (desccnt < desccntmax)
+         && (rxdataready == 0U))
+  {
+    if (READ_BIT(dmarxdesc->DESC0,  ETH_DMARXDESC_LS)  != (uint32_t)RESET)
+    {
+      /* Get timestamp high */
+      heth->RxDescList.TimeStamp.TimeStampHigh = dmarxdesc->DESC6;
+      /* Get timestamp low */
+      heth->RxDescList.TimeStamp.TimeStampLow  = dmarxdesc->DESC7;
+    }
+    if ((READ_BIT(dmarxdesc->DESC0, ETH_DMARXDESC_FS) != (uint32_t)RESET) || (heth->RxDescList.pRxStart != NULL))
+    {
+      /* Check first descriptor */
+      if (READ_BIT(dmarxdesc->DESC0, ETH_DMARXDESC_FS) != (uint32_t)RESET)
+      {
+        heth->RxDescList.RxDescCnt = 0;
+        heth->RxDescList.RxDataLength = 0;
+      }
+
+      /* Check if last descriptor */
+      bufflength = heth->Init.RxBuffLen;
+      if (READ_BIT(dmarxdesc->DESC0, ETH_DMARXDESC_LS) != (uint32_t)RESET)
+      {
+        /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
+        bufflength = ((dmarxdesc->DESC0 & ETH_DMARXDESC_FL) >> ETH_DMARXDESC_FRAMELENGTHSHIFT) - 4U;
+
+        /* Save Last descriptor index */
+        heth->RxDescList.pRxLastRxDesc = dmarxdesc->DESC0;
+
+        /* Packet ready */
+        rxdataready = 1;
+      }
+
+      /* Link data */
+      WRITE_REG(dmarxdesc->BackupAddr0, dmarxdesc->DESC2);
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+      /*Call registered Link callback*/
+      heth->rxLinkCallback(&heth->RxDescList.pRxStart, &heth->RxDescList.pRxEnd,
+                           (uint8_t *)dmarxdesc->BackupAddr0, bufflength);
+#else
+      /* Link callback */
+      HAL_ETH_RxLinkCallback(&heth->RxDescList.pRxStart, &heth->RxDescList.pRxEnd,
+                             (uint8_t *)dmarxdesc->BackupAddr0, (uint16_t) bufflength);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+      heth->RxDescList.RxDescCnt++;
+      heth->RxDescList.RxDataLength += bufflength;
+
+      /* Clear buffer pointer */
+      dmarxdesc->BackupAddr0 = 0;
+    }
+
+    /* Increment current rx descriptor index */
+    INCR_RX_DESC_INDEX(descidx, 1U);
+    /* Get current descriptor address */
+    dmarxdesc = (ETH_DMADescTypeDef *)heth->RxDescList.RxDesc[descidx];
+    desccnt++;
+  }
+
+  heth->RxDescList.RxBuildDescCnt += desccnt;
+  if ((heth->RxDescList.RxBuildDescCnt) != 0U)
+  {
+    /* Update Descriptors */
+    ETH_UpdateDescriptor(heth);
+  }
+
+  heth->RxDescList.RxDescIdx = descidx;
+
+  if (rxdataready == 1U)
+  {
+    /* Return received packet */
+    *pAppBuff = heth->RxDescList.pRxStart;
+    /* Reset first element */
+    heth->RxDescList.pRxStart = NULL;
+
+    return HAL_OK;
+  }
+
+  /* Packet not ready */
+  return HAL_ERROR;
+}
+
+/**
+  * @brief  This function gives back Rx Desc of the last received Packet
+  *         to the DMA, so ETH DMA will be able to use these descriptors
+  *         to receive next Packets.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+static void ETH_UpdateDescriptor(ETH_HandleTypeDef *heth)
+{
+  uint32_t descidx;
+  uint32_t desccount;
+  ETH_DMADescTypeDef *dmarxdesc;
+  uint8_t *buff = NULL;
+  uint8_t allocStatus = 1U;
+
+  descidx = heth->RxDescList.RxBuildDescIdx;
+  dmarxdesc = (ETH_DMADescTypeDef *)heth->RxDescList.RxDesc[descidx];
+  desccount = heth->RxDescList.RxBuildDescCnt;
+
+  while ((desccount > 0U) && (allocStatus != 0U))
+  {
+    /* Check if a buffer's attached the descriptor */
+    if (READ_REG(dmarxdesc->BackupAddr0) == 0U)
+    {
+      /* Get a new buffer. */
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+      /*Call registered Allocate callback*/
+      heth->rxAllocateCallback(&buff);
+#else
+      /* Allocate callback */
+      HAL_ETH_RxAllocateCallback(&buff);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+      if (buff == NULL)
+      {
+        allocStatus = 0U;
+      }
+      else
+      {
+        WRITE_REG(dmarxdesc->BackupAddr0, (uint32_t)buff);
+        WRITE_REG(dmarxdesc->DESC2, (uint32_t)buff);
+      }
+    }
+
+    if (allocStatus != 0U)
+    {
+      /* Ensure rest of descriptor is written to RAM before the OWN bit */
+      __DMB();
+
+      WRITE_REG(dmarxdesc->DESC0, ETH_DMARXDESC_OWN);
+
+      if (heth->RxDescList.ItMode == 0U)
+      {
+        WRITE_REG(dmarxdesc->DESC1, ETH_DMARXDESC_DIC | 1000U | ETH_DMARXDESC_RCH);
+      }
+      else
+      {
+        WRITE_REG(dmarxdesc->DESC1, 1000U | ETH_DMARXDESC_RCH);
+      }
+
+      /* Increment current rx descriptor index */
+      INCR_RX_DESC_INDEX(descidx, 1U);
+      /* Get current descriptor address */
+      dmarxdesc = (ETH_DMADescTypeDef *)heth->RxDescList.RxDesc[descidx];
+      desccount--;
     }
   }
-  
-  /* When Tx Buffer unavailable flag is set: clear it and resume transmission */
-  if (((heth->Instance)->DMASR & ETH_DMASR_TBUS) != (uint32_t)RESET)
+
+  if (heth->RxDescList.RxBuildDescCnt != desccount)
   {
-    /* Clear TBUS ETHERNET DMA flag */
-    (heth->Instance)->DMASR = ETH_DMASR_TBUS;
-    /* Resume DMA transmission*/
-    (heth->Instance)->DMATPDR = 0U;
+    /* Set the Tail pointer address */
+    WRITE_REG(heth->Instance->DMARPDR, 0);
+
+    heth->RxDescList.RxBuildDescIdx = descidx;
+    heth->RxDescList.RxBuildDescCnt = desccount;
   }
-  
-  /* Set ETH HAL State to Ready */
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
+}
+
+/**
+  * @brief  Register the Rx alloc callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  rxAllocateCallback: pointer to function to alloc buffer
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_RegisterRxAllocateCallback(ETH_HandleTypeDef *heth,
+                                                     pETH_rxAllocateCallbackTypeDef rxAllocateCallback)
+{
+  if (rxAllocateCallback == NULL)
+  {
+    /* No buffer to save */
+    return HAL_ERROR;
+  }
+
+  /* Set function to allocate buffer */
+  heth->rxAllocateCallback = rxAllocateCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Unregister the Rx alloc callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_UnRegisterRxAllocateCallback(ETH_HandleTypeDef *heth)
+{
+  /* Set function to allocate buffer */
+  heth->rxAllocateCallback = HAL_ETH_RxAllocateCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Rx Allocate callback.
+  * @param  buff: pointer to allocated buffer
+  * @retval None
+  */
+__weak void HAL_ETH_RxAllocateCallback(uint8_t **buff)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(buff);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_RxAllocateCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Rx Link callback.
+  * @param  pStart: pointer to packet start
+  * @param  pStart: pointer to packet end
+  * @param  buff: pointer to received data
+  * @param  Length: received data length
+  * @retval None
+  */
+__weak void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(pStart);
+  UNUSED(pEnd);
+  UNUSED(buff);
+  UNUSED(Length);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_RxLinkCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Set the Rx link data function.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  rxLinkCallback: pointer to function to link data
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback)
+{
+  if (rxLinkCallback == NULL)
+  {
+    /* No buffer to save */
+    return HAL_ERROR;
+  }
+
+  /* Set function to link data */
+  heth->rxLinkCallback = rxLinkCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Unregister the Rx link callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_UnRegisterRxLinkCallback(ETH_HandleTypeDef *heth)
+{
+  /* Set function to allocate buffer */
+  heth->rxLinkCallback = HAL_ETH_RxLinkCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Get the error state of the last received packet.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pErrorCode: pointer to uint32_t to hold the error code
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(ETH_HandleTypeDef *heth, uint32_t *pErrorCode)
+{
+  /* Get error bits. */
+  *pErrorCode = READ_BIT(heth->RxDescList.pRxLastRxDesc, ETH_DMARXDESC_ERRORS_MASK);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Set the Tx free function.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  txFreeCallback: pointer to function to release the packet
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback)
+{
+  if (txFreeCallback == NULL)
+  {
+    /* No buffer to save */
+    return HAL_ERROR;
+  }
+
+  /* Set function to free transmmitted packet */
+  heth->txFreeCallback = txFreeCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Unregister the Tx free callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_UnRegisterTxFreeCallback(ETH_HandleTypeDef *heth)
+{
+  /* Set function to allocate buffer */
+  heth->txFreeCallback = HAL_ETH_TxFreeCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Tx Free callback.
+  * @param  buff: pointer to buffer to free
+  * @retval None
+  */
+__weak void HAL_ETH_TxFreeCallback(uint32_t *buff)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(buff);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_TxFreeCallback could be implemented in the user file
+  */
+}
+
+/**
+  * @brief  Release transmitted Tx packets.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_ReleaseTxPacket(ETH_HandleTypeDef *heth)
+{
+  ETH_TxDescListTypeDef *dmatxdesclist = &heth->TxDescList;
+  uint32_t numOfBuf =  dmatxdesclist->BuffersInUse;
+  uint32_t idx =       dmatxdesclist->releaseIndex;
+  uint8_t pktTxStatus = 1U;
+  uint8_t pktInUse;
+#ifdef HAL_ETH_USE_PTP
+  ETH_TimeStampTypeDef *timestamp = &heth->TxTimestamp;
+#endif /* HAL_ETH_USE_PTP */
+
+  /* Loop through buffers in use.  */
+  while ((numOfBuf != 0U) && (pktTxStatus != 0U))
+  {
+    pktInUse = 1U;
+    numOfBuf--;
+    /* If no packet, just examine the next packet.  */
+    if (dmatxdesclist->PacketAddress[idx] == NULL)
+    {
+      /* No packet in use, skip to next.  */
+      idx = (idx + 1U) & (ETH_TX_DESC_CNT - 1U);
+      pktInUse = 0U;
+    }
+
+    if (pktInUse != 0U)
+    {
+      /* Determine if the packet has been transmitted.  */
+      if ((heth->Init.TxDesc[idx].DESC0 & ETH_DMATXDESC_OWN) == 0U)
+      {
+#ifdef HAL_ETH_USE_PTP
+        /* Get timestamp low */
+        timestamp->TimeStampLow = heth->Init.TxDesc[idx].DESC6;
+        /* Get timestamp high */
+        timestamp->TimeStampHigh = heth->Init.TxDesc[idx].DESC7;
+#endif /* HAL_ETH_USE_PTP */
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+        /*Call registered callbacks*/
+#ifdef HAL_ETH_USE_PTP
+        /* Handle Ptp  */
+        heth->txPtpCallback(dmatxdesclist->PacketAddress[idx], timestamp);
+#endif  /* HAL_ETH_USE_PTP */
+        /* Release the packet.  */
+        heth->txFreeCallback(dmatxdesclist->PacketAddress[idx]);
+#else
+        /* Call callbacks */
+#ifdef HAL_ETH_USE_PTP
+        /* Handle Ptp  */
+        HAL_ETH_TxPtpCallback(dmatxdesclist->PacketAddress[idx], timestamp);
+#endif  /* HAL_ETH_USE_PTP */
+        /* Release the packet.  */
+        HAL_ETH_TxFreeCallback(dmatxdesclist->PacketAddress[idx]);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+        /* Clear the entry in the in-use array.  */
+        dmatxdesclist->PacketAddress[idx] = NULL;
+
+        /* Update the transmit relesae index and number of buffers in use.  */
+        idx = (idx + 1U) & (ETH_TX_DESC_CNT - 1U);
+        dmatxdesclist->BuffersInUse = numOfBuf;
+        dmatxdesclist->releaseIndex = idx;
+      }
+      else
+      {
+        /* Get out of the loop!  */
+        pktTxStatus = 0U;
+      }
+    }
+  }
+  return HAL_OK;
+}
+
+#ifdef HAL_ETH_USE_PTP
+/**
+  * @brief  Set the Ethernet PTP configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  ptpconfig: pointer to a ETH_PTP_ConfigTypeDef structure that contains
+  *         the configuration information for PTP
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_SetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig)
+{
+  uint32_t tmpTSCR;
+  ETH_TimeTypeDef time;
+
+  if (ptpconfig == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  tmpTSCR = ptpconfig->Timestamp |
+            ((uint32_t)ptpconfig->TimestampUpdate << ETH_PTPTSCR_TSFCU_Pos) |
+            ((uint32_t)ptpconfig->TimestampAll << ETH_PTPTSCR_TSSARFE_Pos) |
+            ((uint32_t)ptpconfig->TimestampRolloverMode << ETH_PTPTSCR_TSSSR_Pos) |
+            ((uint32_t)ptpconfig->TimestampV2 << ETH_PTPTSCR_TSPTPPSV2E_Pos) |
+            ((uint32_t)ptpconfig->TimestampEthernet << ETH_PTPTSCR_TSSPTPOEFE_Pos) |
+            ((uint32_t)ptpconfig->TimestampIPv6 << ETH_PTPTSCR_TSSIPV6FE_Pos) |
+            ((uint32_t)ptpconfig->TimestampIPv4 << ETH_PTPTSCR_TSSIPV4FE_Pos) |
+            ((uint32_t)ptpconfig->TimestampEvent << ETH_PTPTSCR_TSSEME_Pos) |
+            ((uint32_t)ptpconfig->TimestampMaster << ETH_PTPTSCR_TSSMRME_Pos) |
+            ((uint32_t)ptpconfig->TimestampFilter << ETH_PTPTSCR_TSPFFMAE_Pos) |
+            ((uint32_t)ptpconfig->TimestampClockType << ETH_PTPTSCR_TSCNT_Pos);
+
+  /* Write to MACTSCR */
+  MODIFY_REG(heth->Instance->PTPTSCR, ETH_MACTSCR_MASK, tmpTSCR);
+
+  /* Enable Timestamp */
+  SET_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSE);
+  WRITE_REG(heth->Instance->PTPSSIR, ptpconfig->TimestampSubsecondInc);
+  WRITE_REG(heth->Instance->PTPTSAR, ptpconfig->TimestampAddend);
+
+  /* Enable Timestamp */
+  if (ptpconfig->TimestampAddendUpdate == ENABLE)
+  {
+    SET_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSARU);
+    while ((heth->Instance->PTPTSCR & ETH_PTPTSCR_TSARU) != 0) {}
+  }
+
+  /* Enable Update mode */
+  if (ptpconfig->TimestampUpdateMode == ENABLE)
+  {
+    SET_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSFCU);
+  }
+
+  /* Initialize Time */
+  time.Seconds = 0;
+  time.NanoSeconds = 0;
+  HAL_ETH_PTP_SetTime(heth, &time);
+
+  /* Ptp Init */
+  SET_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSSTI);
+
+  /* Set PTP Configuration done */
+  heth->IsPtpConfigured = HAL_ETH_PTP_CONFIGURATED;
+
   /* Return function status */
   return HAL_OK;
 }
 
 /**
-  * @brief  Checks for received frames. 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Get the Ethernet PTP configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
+  * @param  ptpconfig: pointer to a ETH_PTP_ConfigTypeDef structure that contains
+  *         the configuration information for PTP
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth)
+HAL_StatusTypeDef HAL_ETH_PTP_GetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig)
 {
-  uint32_t framelength = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Check the ETH state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Check if segment is not owned by DMA */
-  /* (((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET) && ((heth->RxDesc->Status & ETH_DMARXDESC_LS) != (uint32_t)RESET)) */
-  if(((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET))
+  if (ptpconfig == NULL)
   {
-    /* Check if last segment */
-    if(((heth->RxDesc->Status & ETH_DMARXDESC_LS) != (uint32_t)RESET)) 
-    {
-      /* increment segment count */
-      (heth->RxFrameInfos).SegCount++;
-      
-      /* Check if last segment is first segment: one segment contains the frame */
-      if ((heth->RxFrameInfos).SegCount == 1U)
-      {
-        (heth->RxFrameInfos).FSRxDesc =heth->RxDesc;
-      }
-      
-      heth->RxFrameInfos.LSRxDesc = heth->RxDesc;
-      
-      /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
-      framelength = (((heth->RxDesc)->Status & ETH_DMARXDESC_FL) >> ETH_DMARXDESC_FRAMELENGTHSHIFT) - 4U;
-      heth->RxFrameInfos.length = framelength;
-      
-      /* Get the address of the buffer start address */
-      heth->RxFrameInfos.buffer = ((heth->RxFrameInfos).FSRxDesc)->Buffer1Addr;
-      /* point to next descriptor */
-      heth->RxDesc = (ETH_DMADescTypeDef*) ((heth->RxDesc)->Buffer2NextDescAddr);
-      
-      /* Set HAL State to Ready */
-      heth->State = HAL_ETH_STATE_READY;
-      
-      /* Process Unlocked */
-      __HAL_UNLOCK(heth);
-      
-      /* Return function status */
-      return HAL_OK;
-    }
-    /* Check if first segment */
-    else if((heth->RxDesc->Status & ETH_DMARXDESC_FS) != (uint32_t)RESET)
-    {
-      (heth->RxFrameInfos).FSRxDesc = heth->RxDesc;
-      (heth->RxFrameInfos).LSRxDesc = NULL;
-      (heth->RxFrameInfos).SegCount = 1U;
-      /* Point to next descriptor */
-      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
-    }
-    /* Check if intermediate segment */ 
-    else
-    {
-      (heth->RxFrameInfos).SegCount++;
-      /* Point to next descriptor */
-      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
-    } 
+    return HAL_ERROR;
   }
-  
-  /* Set ETH HAL State to Ready */
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
+  ptpconfig->Timestamp = READ_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSE);
+  ptpconfig->TimestampUpdate = ((READ_BIT(heth->Instance->PTPTSCR,
+                                          ETH_PTPTSCR_TSFCU) >> ETH_PTPTSCR_TSFCU_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampAll = ((READ_BIT(heth->Instance->PTPTSCR,
+                                       ETH_PTPTSCR_TSSARFE) >> ETH_PTPTSCR_TSSARFE_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampRolloverMode = ((READ_BIT(heth->Instance->PTPTSCR,
+                                                ETH_PTPTSCR_TSSSR) >> ETH_PTPTSCR_TSSSR_Pos) > 0U)
+                                     ? ENABLE : DISABLE;
+  ptpconfig->TimestampV2 = ((READ_BIT(heth->Instance->PTPTSCR,
+                                      ETH_PTPTSCR_TSPTPPSV2E) >> ETH_PTPTSCR_TSPTPPSV2E_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampEthernet = ((READ_BIT(heth->Instance->PTPTSCR,
+                                            ETH_PTPTSCR_TSSPTPOEFE) >> ETH_PTPTSCR_TSSPTPOEFE_Pos) > 0U)
+                                 ? ENABLE : DISABLE;
+  ptpconfig->TimestampIPv6 = ((READ_BIT(heth->Instance->PTPTSCR,
+                                        ETH_PTPTSCR_TSSIPV6FE) >> ETH_PTPTSCR_TSSIPV6FE_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampIPv4 = ((READ_BIT(heth->Instance->PTPTSCR,
+                                        ETH_PTPTSCR_TSSIPV4FE) >> ETH_PTPTSCR_TSSIPV4FE_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampEvent = ((READ_BIT(heth->Instance->PTPTSCR,
+                                         ETH_PTPTSCR_TSSEME) >> ETH_PTPTSCR_TSSEME_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampMaster = ((READ_BIT(heth->Instance->PTPTSCR,
+                                          ETH_PTPTSCR_TSSMRME) >> ETH_PTPTSCR_TSSMRME_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampFilter = ((READ_BIT(heth->Instance->PTPTSCR,
+                                          ETH_PTPTSCR_TSPFFMAE) >> ETH_PTPTSCR_TSPFFMAE_Pos) > 0U) ? ENABLE : DISABLE;
+  ptpconfig->TimestampClockType = ((READ_BIT(heth->Instance->PTPTSCR,
+                                             ETH_PTPTSCR_TSCNT) >> ETH_PTPTSCR_TSCNT_Pos) > 0U) ? ENABLE : DISABLE;
+
   /* Return function status */
-  return HAL_ERROR;
+  return HAL_OK;
 }
 
 /**
-  * @brief  Gets the Received frame in interrupt mode. 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Set Seconds and Nanoseconds for the Ethernet PTP registers.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  heth: pointer to a ETH_TimeTypeDef structure that contains
+  *         time to set
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_SetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time)
+{
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    /* Set Seconds */
+    heth->Instance->PTPTSHUR = time->Seconds;
+
+    /* Set NanoSeconds */
+    heth->Instance->PTPTSLUR = time->NanoSeconds;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Get Seconds and Nanoseconds for the Ethernet PTP registers.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  heth: pointer to a ETH_TimeTypeDef structure that contains
+  *         time to get
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_GetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time)
+{
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    /* Get Seconds */
+    time->Seconds = heth->Instance->PTPTSHR;
+
+    /* Get NanoSeconds */
+    time->NanoSeconds = heth->Instance->PTPTSLR;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Update time for the Ethernet PTP registers.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  timeupdate: pointer to a ETH_TIMEUPDATETypeDef structure that contains
+  *         the time update information
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_AddTimeOffset(ETH_HandleTypeDef *heth, ETH_PtpUpdateTypeDef ptpoffsettype,
+                                            ETH_TimeTypeDef *timeoffset)
+{
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    if (ptpoffsettype ==  HAL_ETH_PTP_NEGATIVE_UPDATE)
+    {
+      /* Set Seconds update */
+      heth->Instance->PTPTSHUR = ETH_PTPTSHR_VALUE - timeoffset->Seconds + 1U;
+
+      if (READ_BIT(heth->Instance->PTPTSCR, ETH_PTPTSCR_TSSSR) == ETH_PTPTSCR_TSSSR)
+      {
+        /* Set nanoSeconds update */
+        heth->Instance->PTPTSLUR = ETH_PTPTSLR_VALUE - timeoffset->NanoSeconds;
+      }
+      else
+      {
+        heth->Instance->PTPTSLUR = ETH_PTPTSHR_VALUE - timeoffset->NanoSeconds + 1U;
+      }
+    }
+    else
+    {
+      /* Set Seconds update */
+      heth->Instance->PTPTSHUR = timeoffset->Seconds;
+      /* Set nanoSeconds update */
+      heth->Instance->PTPTSLUR = timeoffset->NanoSeconds;
+    }
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Insert Timestamp in transmission.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  txtimestampconf: Enable or Disable timestamp in transmission
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_InsertTxTimestamp(ETH_HandleTypeDef *heth)
+{
+  ETH_TxDescListTypeDef *dmatxdesclist = &heth->TxDescList;
+  uint32_t descidx = dmatxdesclist->CurTxDesc;
+  ETH_DMADescTypeDef *dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];
+
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    /* Enable Time Stamp transmission */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_TTSE);
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Get transmission timestamp.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  timestamp: pointer to ETH_TIMESTAMPTypeDef structure that contains
+  *         transmission timestamp
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_GetTxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp)
+{
+  ETH_TxDescListTypeDef *dmatxdesclist = &heth->TxDescList;
+  uint32_t idx =       dmatxdesclist->releaseIndex;
+  ETH_DMADescTypeDef *dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[idx];
+
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    /* Get timestamp low */
+    timestamp->TimeStampLow = dmatxdesc->DESC0;
+    /* Get timestamp high */
+    timestamp->TimeStampHigh = dmatxdesc->DESC1;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Get receive timestamp.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  timestamp: pointer to ETH_TIMESTAMPTypeDef structure that contains
+  *         receive timestamp
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_PTP_GetRxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp)
+{
+  if (heth->IsPtpConfigured == HAL_ETH_PTP_CONFIGURATED)
+  {
+    /* Get timestamp low */
+    timestamp->TimeStampLow = heth->RxDescList.TimeStamp.TimeStampLow;
+    /* Get timestamp high */
+    timestamp->TimeStampHigh = heth->RxDescList.TimeStamp.TimeStampHigh;
+
+    /* Return function status */
+    return HAL_OK;
+  }
+  else
+  {
+    /* Return function status */
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Register the Tx Ptp callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  txPtpCallback: Function to handle Ptp transmission
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_RegisterTxPtpCallback(ETH_HandleTypeDef *heth, pETH_txPtpCallbackTypeDef txPtpCallback)
+{
+  if (txPtpCallback == NULL)
+  {
+    /* No buffer to save */
+    return HAL_ERROR;
+  }
+  /* Set Function to handle Tx Ptp */
+  heth->txPtpCallback = txPtpCallback;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Unregister the Tx Ptp callback.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_GetReceivedFrame_IT(ETH_HandleTypeDef *heth)
+HAL_StatusTypeDef HAL_ETH_UnRegisterTxPtpCallback(ETH_HandleTypeDef *heth)
 {
-  uint32_t descriptorscancounter = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set ETH HAL State to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Scan descriptors owned by CPU */
-  while (((heth->RxDesc->Status & ETH_DMARXDESC_OWN) == (uint32_t)RESET) && (descriptorscancounter < ETH_RXBUFNB))
-  {
-    /* Just for security */
-    descriptorscancounter++;
-    
-    /* Check if first segment in frame */
-    /* ((heth->RxDesc->Status & ETH_DMARXDESC_FS) != (uint32_t)RESET) && ((heth->RxDesc->Status & ETH_DMARXDESC_LS) == (uint32_t)RESET)) */  
-    if((heth->RxDesc->Status & (ETH_DMARXDESC_FS | ETH_DMARXDESC_LS)) == (uint32_t)ETH_DMARXDESC_FS)
-    { 
-      heth->RxFrameInfos.FSRxDesc = heth->RxDesc;
-      heth->RxFrameInfos.SegCount = 1U;   
-      /* Point to next descriptor */
-      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
-    }
-    /* Check if intermediate segment */
-    /* ((heth->RxDesc->Status & ETH_DMARXDESC_LS) == (uint32_t)RESET)&& ((heth->RxDesc->Status & ETH_DMARXDESC_FS) == (uint32_t)RESET)) */
-    else if ((heth->RxDesc->Status & (ETH_DMARXDESC_LS | ETH_DMARXDESC_FS)) == (uint32_t)RESET)
-    {
-      /* Increment segment count */
-      (heth->RxFrameInfos.SegCount)++;
-      /* Point to next descriptor */
-      heth->RxDesc = (ETH_DMADescTypeDef*)(heth->RxDesc->Buffer2NextDescAddr);
-    }
-    /* Should be last segment */
-    else
-    { 
-      /* Last segment */
-      heth->RxFrameInfos.LSRxDesc = heth->RxDesc;
-      
-      /* Increment segment count */
-      (heth->RxFrameInfos.SegCount)++;
-      
-      /* Check if last segment is first segment: one segment contains the frame */
-      if ((heth->RxFrameInfos.SegCount) == 1U)
-      {
-        heth->RxFrameInfos.FSRxDesc = heth->RxDesc;
-      }
-      
-      /* Get the Frame Length of the received packet: substruct 4 bytes of the CRC */
-      heth->RxFrameInfos.length = (((heth->RxDesc)->Status & ETH_DMARXDESC_FL) >> ETH_DMARXDESC_FRAMELENGTHSHIFT) - 4U;
-      
-      /* Get the address of the buffer start address */ 
-      heth->RxFrameInfos.buffer =((heth->RxFrameInfos).FSRxDesc)->Buffer1Addr;
-      
-      /* Point to next descriptor */      
-      heth->RxDesc = (ETH_DMADescTypeDef*) (heth->RxDesc->Buffer2NextDescAddr);
-      
-      /* Set HAL State to Ready */
-      heth->State = HAL_ETH_STATE_READY;
-      
-      /* Process Unlocked */
-      __HAL_UNLOCK(heth);
-  
-      /* Return function status */
-      return HAL_OK;
-    }
-  }
+  /* Set function to allocate buffer */
+  heth->txPtpCallback = HAL_ETH_TxPtpCallback;
 
-  /* Set HAL State to Ready */
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
-  /* Return function status */
-  return HAL_ERROR;
+  return HAL_OK;
 }
 
 /**
+  * @brief  Tx Ptp callback.
+  * @param  buff: pointer to application buffer
+  * @retval None
+  */
+__weak void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(buff);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_TxPtpCallback could be implemented in the user file
+  */
+}
+#endif  /* HAL_ETH_USE_PTP */
+
+/**
   * @brief  This function handles ETH interrupt request.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval HAL status
   */
 void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth)
 {
-  /* Frame received */
-  if (__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_R)) 
+  /* Packet received */
+  if (__HAL_ETH_DMA_GET_IT(heth, ETH_DMASR_RS))
   {
+    if (__HAL_ETH_DMA_GET_IT_SOURCE(heth, ETH_DMAIER_RIE))
+    {
+      /* Clear the Eth DMA Rx IT pending bits */
+      __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMASR_RS | ETH_DMASR_NIS);
+
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-    /*Call registered Receive complete callback*/
-    heth->RxCpltCallback(heth);
+      /*Call registered Receive complete callback*/
+      heth->RxCpltCallback(heth);
 #else
-    /* Receive complete callback */
-    HAL_ETH_RxCpltCallback(heth);
-#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
-
-     /* Clear the Eth DMA Rx IT pending bits */
-    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_R);
-
-    /* Set HAL State to Ready */
-    heth->State = HAL_ETH_STATE_READY;
-    
-    /* Process Unlocked */
-    __HAL_UNLOCK(heth);
-
+      /* Receive complete callback */
+      HAL_ETH_RxCpltCallback(heth);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+    }
   }
-  /* Frame transmitted */
-  else if (__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_T)) 
+
+  /* Packet transmitted */
+  if (__HAL_ETH_DMA_GET_IT(heth, ETH_DMASR_TS))
   {
+    if (__HAL_ETH_DMA_GET_IT_SOURCE(heth, ETH_DMAIER_TIE))
+    {
+      /* Clear the Eth DMA Tx IT pending bits */
+      __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMASR_TS | ETH_DMASR_NIS);
+
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-    /*  Call resgistered Transfer complete callback*/
-    heth->TxCpltCallback(heth);
+      /*Call registered Transmit complete callback*/
+      heth->TxCpltCallback(heth);
 #else
-    /* Transfer complete callback */
-    HAL_ETH_TxCpltCallback(heth);
-#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
-
-    /* Clear the Eth DMA Tx IT pending bits */
-    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_T);
-
-    /* Set HAL State to Ready */
-    heth->State = HAL_ETH_STATE_READY;
-    
-    /* Process Unlocked */
-    __HAL_UNLOCK(heth);
+      /* Transfer complete callback */
+      HAL_ETH_TxCpltCallback(heth);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+    }
   }
-  
-  /* Clear the interrupt flags */
-  __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_IT_NIS);
-  
+
+
   /* ETH DMA Error */
-  if(__HAL_ETH_DMA_GET_FLAG(heth, ETH_DMA_FLAG_AIS))
+  if (__HAL_ETH_DMA_GET_IT(heth, ETH_DMASR_AIS))
   {
-#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
-    heth->DMAErrorCallback(heth);
-#else
-    /* Ethernet Error callback */
-    HAL_ETH_ErrorCallback(heth);
-#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
+    if (__HAL_ETH_DMA_GET_IT_SOURCE(heth, ETH_DMAIER_AISE))
+    {
+      heth->ErrorCode |= HAL_ETH_ERROR_DMA;
 
-    /* Clear the interrupt flags */
-    __HAL_ETH_DMA_CLEAR_IT(heth, ETH_DMA_FLAG_AIS);
-  
-    /* Set HAL State to Ready */
-    heth->State = HAL_ETH_STATE_READY;
-    
-    /* Process Unlocked */
-    __HAL_UNLOCK(heth);
+      /* if fatal bus error occurred */
+      if (__HAL_ETH_DMA_GET_IT(heth, ETH_DMASR_FBES))
+      {
+        /* Get DMA error code  */
+        heth->DMAErrorCode = READ_BIT(heth->Instance->DMASR, (ETH_DMASR_FBES | ETH_DMASR_TPS | ETH_DMASR_RPS));
+
+        /* Disable all interrupts */
+        __HAL_ETH_DMA_DISABLE_IT(heth, ETH_DMAIER_NISE | ETH_DMAIER_AISE);
+
+        /* Set HAL state to ERROR */
+        heth->gState = HAL_ETH_STATE_ERROR;
+      }
+      else
+      {
+        /* Get DMA error status  */
+        heth->DMAErrorCode = READ_BIT(heth->Instance->DMASR, (ETH_DMASR_ETS | ETH_DMASR_RWTS |
+                                                              ETH_DMASR_RBUS | ETH_DMASR_AIS));
+
+        /* Clear the interrupt summary flag */
+        __HAL_ETH_DMA_CLEAR_IT(heth, (ETH_DMASR_ETS | ETH_DMASR_RWTS |
+                                      ETH_DMASR_RBUS | ETH_DMASR_AIS));
+      }
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+      /* Call registered Error callback*/
+      heth->ErrorCallback(heth);
+#else
+      /* Ethernet DMA Error callback */
+      HAL_ETH_ErrorCallback(heth);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+    }
+  }
+
+
+  /* ETH PMT IT */
+  if (__HAL_ETH_MAC_GET_IT(heth, ETH_MAC_PMT_IT))
+  {
+    /* Get MAC Wake-up source and clear the status register pending bit */
+    heth->MACWakeUpEvent = READ_BIT(heth->Instance->MACPMTCSR, (ETH_MACPMTCSR_WFR | ETH_MACPMTCSR_MPR));
+
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    /* Call registered PMT callback*/
+    heth->PMTCallback(heth);
+#else
+    /* Ethernet PMT callback */
+    HAL_ETH_PMTCallback(heth);
+#endif  /* USE_HAL_ETH_REGISTER_CALLBACKS */
+
+    heth->MACWakeUpEvent = (uint32_t)(0x0U);
+  }
+
+
+  /* check ETH WAKEUP exti flag */
+  if (__HAL_ETH_WAKEUP_EXTI_GET_FLAG(ETH_WAKEUP_EXTI_LINE) != (uint32_t)RESET)
+  {
+    /* Clear ETH WAKEUP Exti pending bit */
+    __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(ETH_WAKEUP_EXTI_LINE);
+#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
+    /* Call registered WakeUp callback*/
+    heth->WakeUpCallback(heth);
+#else
+    /* ETH WAKEUP callback */
+    HAL_ETH_WakeUpCallback(heth);
+#endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
   }
 }
 
 /**
   * @brief  Tx Transfer completed callbacks.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
@@ -1247,12 +1932,12 @@
   UNUSED(heth);
   /* NOTE : This function Should not be modified, when the callback is needed,
   the HAL_ETH_TxCpltCallback could be implemented in the user file
-  */ 
+  */
 }
 
 /**
   * @brief  Rx Transfer completed callbacks.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
@@ -1261,13 +1946,13 @@
   /* Prevent unused argument(s) compilation warning */
   UNUSED(heth);
   /* NOTE : This function Should not be modified, when the callback is needed,
-  the HAL_ETH_TxCpltCallback could be implemented in the user file
-  */ 
+  the HAL_ETH_RxCpltCallback could be implemented in the user file
+  */
 }
 
 /**
   * @brief  Ethernet transfer error callbacks
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
@@ -1276,153 +1961,142 @@
   /* Prevent unused argument(s) compilation warning */
   UNUSED(heth);
   /* NOTE : This function Should not be modified, when the callback is needed,
-  the HAL_ETH_TxCpltCallback could be implemented in the user file
-  */ 
+  the HAL_ETH_ErrorCallback could be implemented in the user file
+  */
 }
 
 /**
-  * @brief  Reads a PHY register
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module                  
-  * @param PHYReg PHY register address, is the index of one of the 32 PHY register. 
-  *                This parameter can be one of the following values: 
-  *                   PHY_BCR: Transceiver Basic Control Register, 
-  *                   PHY_BSR: Transceiver Basic Status Register.   
-  *                   More PHY register could be read depending on the used PHY
-  * @param RegValue PHY register value                  
+  * @brief  Ethernet Power Management module IT callback
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+  the HAL_ETH_PMTCallback could be implemented in the user file
+  */
+}
+
+
+/**
+  * @brief  ETH WAKEUP interrupt callback
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+__weak void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth)
+{
+  /* Prevent unused argument(s) compilation warning */
+  UNUSED(heth);
+  /* NOTE : This function Should not be modified, when the callback is needed,
+            the HAL_ETH_WakeUpCallback could be implemented in the user file
+   */
+}
+
+/**
+  * @brief  Read a PHY register
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  PHYAddr: PHY port address, must be a value from 0 to 31
+  * @param  PHYReg: PHY register address, must be a value from 0 to 31
+  * @param pRegValue: parameter to hold read value
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue)
+HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
+                                          uint32_t *pRegValue)
 {
-  uint32_t tmpreg1 = 0U;     
-  uint32_t tickstart = 0U;
-  
-  /* Check parameters */
-  assert_param(IS_ETH_PHY_ADDRESS(heth->Init.PhyAddress));
-  
-  /* Check the ETH peripheral state */
-  if(heth->State == HAL_ETH_STATE_BUSY_RD)
-  {
-    return HAL_BUSY;
-  }
-  /* Set ETH HAL State to BUSY_RD */
-  heth->State = HAL_ETH_STATE_BUSY_RD;
-  
+  uint32_t tmpreg1;
+  uint32_t tickstart;
+
   /* Get the ETHERNET MACMIIAR value */
   tmpreg1 = heth->Instance->MACMIIAR;
-  
+
   /* Keep only the CSR Clock Range CR[2:0] bits value */
   tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
-  
+
   /* Prepare the MII address register value */
-  tmpreg1 |=(((uint32_t)heth->Init.PhyAddress << 11U) & ETH_MACMIIAR_PA); /* Set the PHY device address   */
-  tmpreg1 |=(((uint32_t)PHYReg<<6U) & ETH_MACMIIAR_MR);                   /* Set the PHY register address */
+  tmpreg1 |= ((PHYAddr << 11U) & ETH_MACMIIAR_PA);                        /* Set the PHY device address   */
+  tmpreg1 |= (((uint32_t)PHYReg << 6U) & ETH_MACMIIAR_MR);                /* Set the PHY register address */
   tmpreg1 &= ~ETH_MACMIIAR_MW;                                            /* Set the read mode            */
   tmpreg1 |= ETH_MACMIIAR_MB;                                             /* Set the MII Busy bit         */
-  
+
   /* Write the result value into the MII Address register */
   heth->Instance->MACMIIAR = tmpreg1;
-  
-  /* Get tick */
+
+
   tickstart = HAL_GetTick();
-  
+
   /* Check for the Busy flag */
-  while((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
+  while ((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
   {
     /* Check for the Timeout */
-    if((HAL_GetTick() - tickstart ) > PHY_READ_TO)
+    if ((HAL_GetTick() - tickstart) > PHY_READ_TO)
     {
-      heth->State= HAL_ETH_STATE_READY;
-  
-      /* Process Unlocked */
-      __HAL_UNLOCK(heth);
-    
-      return HAL_TIMEOUT;
+      return HAL_ERROR;
     }
-    
+
     tmpreg1 = heth->Instance->MACMIIAR;
   }
-  
+
   /* Get MACMIIDR value */
-  *RegValue = (uint16_t)(heth->Instance->MACMIIDR);
-  
-  /* Set ETH HAL State to READY */
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Return function status */
+  *pRegValue = (uint16_t)(heth->Instance->MACMIIDR);
+
   return HAL_OK;
 }
 
+
 /**
   * @brief  Writes to a PHY register.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module  
-  * @param  PHYReg PHY register address, is the index of one of the 32 PHY register. 
-  *          This parameter can be one of the following values: 
-  *             PHY_BCR: Transceiver Control Register.  
-  *             More PHY register could be written depending on the used PHY
-  * @param  RegValue the value to write
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  PHYAddr: PHY port address, must be a value from 0 to 31
+  * @param  PHYReg: PHY register address, must be a value from 0 to 31
+  * @param  RegValue: the value to write
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t RegValue)
+HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
+                                           uint32_t RegValue)
 {
-  uint32_t tmpreg1 = 0U;
-  uint32_t tickstart = 0U;
-  
-  /* Check parameters */
-  assert_param(IS_ETH_PHY_ADDRESS(heth->Init.PhyAddress));
-  
-  /* Check the ETH peripheral state */
-  if(heth->State == HAL_ETH_STATE_BUSY_WR)
-  {
-    return HAL_BUSY;
-  }
-  /* Set ETH HAL State to BUSY_WR */
-  heth->State = HAL_ETH_STATE_BUSY_WR;
-  
+  uint32_t tmpreg1;
+  uint32_t tickstart;
+
   /* Get the ETHERNET MACMIIAR value */
   tmpreg1 = heth->Instance->MACMIIAR;
-  
+
   /* Keep only the CSR Clock Range CR[2:0] bits value */
   tmpreg1 &= ~ETH_MACMIIAR_CR_MASK;
-  
+
   /* Prepare the MII register address value */
-  tmpreg1 |=(((uint32_t)heth->Init.PhyAddress<<11U) & ETH_MACMIIAR_PA); /* Set the PHY device address */
-  tmpreg1 |=(((uint32_t)PHYReg<<6U) & ETH_MACMIIAR_MR);                 /* Set the PHY register address */
+  tmpreg1 |= ((PHYAddr << 11U) & ETH_MACMIIAR_PA);                      /* Set the PHY device address */
+  tmpreg1 |= (((uint32_t)PHYReg << 6U) & ETH_MACMIIAR_MR);              /* Set the PHY register address */
   tmpreg1 |= ETH_MACMIIAR_MW;                                           /* Set the write mode */
   tmpreg1 |= ETH_MACMIIAR_MB;                                           /* Set the MII Busy bit */
-  
+
   /* Give the value to the MII data register */
   heth->Instance->MACMIIDR = (uint16_t)RegValue;
-  
+
   /* Write the result value into the MII Address register */
   heth->Instance->MACMIIAR = tmpreg1;
-  
+
   /* Get tick */
   tickstart = HAL_GetTick();
-  
+
   /* Check for the Busy flag */
-  while((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
+  while ((tmpreg1 & ETH_MACMIIAR_MB) == ETH_MACMIIAR_MB)
   {
     /* Check for the Timeout */
-    if((HAL_GetTick() - tickstart ) > PHY_WRITE_TO)
+    if ((HAL_GetTick() - tickstart) > PHY_WRITE_TO)
     {
-      heth->State= HAL_ETH_STATE_READY;
-  
-      /* Process Unlocked */
-      __HAL_UNLOCK(heth);
-    
-      return HAL_TIMEOUT;
+      return HAL_ERROR;
     }
-    
+
     tmpreg1 = heth->Instance->MACMIIAR;
   }
-  
-  /* Set ETH HAL State to READY */
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Return function status */
-  return HAL_OK; 
+
+  return HAL_OK;
 }
 
 /**
@@ -1430,321 +2104,607 @@
   */
 
 /** @defgroup ETH_Exported_Functions_Group3 Peripheral Control functions
- *  @brief    Peripheral Control functions 
- *
-@verbatim   
- ===============================================================================
-                  ##### Peripheral Control functions #####
- ===============================================================================  
-    [..]  This section provides functions allowing to:
-      (+) Enable MAC and DMA transmission and reception.
-          HAL_ETH_Start();
-      (+) Disable MAC and DMA transmission and reception. 
-          HAL_ETH_Stop();
-      (+) Set the MAC configuration in runtime mode
-          HAL_ETH_ConfigMAC();
-      (+) Set the DMA configuration in runtime mode
-          HAL_ETH_ConfigDMA();
+  *  @brief   ETH control functions
+  *
+@verbatim
+  ==============================================================================
+                      ##### Peripheral Control functions #####
+  ==============================================================================
+  [..]
+    This subsection provides a set of functions allowing to control the ETH
+    peripheral.
 
 @endverbatim
   * @{
-  */ 
-
- /**
-  * @brief  Enables Ethernet MAC and DMA reception/transmission 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module
-  * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
-{  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Enable transmit state machine of the MAC for transmission on the MII */
-  ETH_MACTransmissionEnable(heth);
-  
-  /* Enable receive state machine of the MAC for reception from the MII */
-  ETH_MACReceptionEnable(heth);
-  
-  /* Flush Transmit FIFO */
-  ETH_FlushTransmitFIFO(heth);
-  
-  /* Start DMA transmission */
-  ETH_DMATransmissionEnable(heth);
-  
-  /* Start DMA reception */
-  ETH_DMAReceptionEnable(heth);
-  
-  /* Set the ETH state to READY*/
-  heth->State= HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
-  /* Return function status */
+/**
+  * @brief  Get the configuration of the MAC and MTL subsystems.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  macconf: pointer to a ETH_MACConfigTypeDef structure that will hold
+  *         the configuration of the MAC.
+  * @retval HAL Status
+  */
+HAL_StatusTypeDef HAL_ETH_GetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf)
+{
+  if (macconf == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Get MAC parameters */
+  macconf->DeferralCheck = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_DC) >> 4) > 0U) ? ENABLE : DISABLE;
+  macconf->BackOffLimit = READ_BIT(heth->Instance->MACCR, ETH_MACCR_BL);
+  macconf->RetryTransmission = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_RD) >> 9) == 0U) ? ENABLE : DISABLE;
+  macconf->CarrierSenseDuringTransmit = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_CSD) >> 16) > 0U)
+                                        ? ENABLE : DISABLE;
+  macconf->ReceiveOwn = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_ROD) >> 13) == 0U) ? ENABLE : DISABLE;
+  macconf->LoopbackMode = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_LM) >> 12) > 0U) ? ENABLE : DISABLE;
+  macconf->DuplexMode = READ_BIT(heth->Instance->MACCR, ETH_MACCR_DM);
+  macconf->Speed = READ_BIT(heth->Instance->MACCR, ETH_MACCR_FES);
+  macconf->Jabber = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_JD) >> 22) == 0U) ? ENABLE : DISABLE;
+  macconf->Watchdog = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_WD) >> 23) == 0U) ? ENABLE : DISABLE;
+  macconf->AutomaticPadCRCStrip = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_APCS) >> 7) > 0U) ? ENABLE : DISABLE;
+  macconf->InterPacketGapVal = READ_BIT(heth->Instance->MACCR, ETH_MACCR_IFG);
+  macconf->ChecksumOffload = ((READ_BIT(heth->Instance->MACCR, ETH_MACCR_IPCO) >> 27) > 0U) ? ENABLE : DISABLE;
+
+
+  macconf->TransmitFlowControl = ((READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_TFCE) >> 1) > 0U) ? ENABLE : DISABLE;
+  macconf->ZeroQuantaPause = ((READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_ZQPD) >> 7) == 0U) ? ENABLE : DISABLE;
+  macconf->PauseLowThreshold = READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_PLT);
+  macconf->PauseTime = (READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_PT) >> 16);
+  macconf->ReceiveFlowControl = (READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_RFCE) > 0U) ? ENABLE : DISABLE;
+  macconf->UnicastPausePacketDetect = ((READ_BIT(heth->Instance->MACFCR, ETH_MACFCR_UPFD) >> 1) > 0U)
+                                      ? ENABLE : DISABLE;
+
   return HAL_OK;
 }
 
 /**
-  * @brief  Stop Ethernet MAC and DMA reception/transmission 
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Get the configuration of the DMA.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
-  * @retval HAL status
+  * @param  dmaconf: pointer to a ETH_DMAConfigTypeDef structure that will hold
+  *         the configuration of the ETH DMA.
+  * @retval HAL Status
   */
-HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
-{  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State = HAL_ETH_STATE_BUSY;
-  
-  /* Stop DMA transmission */
-  ETH_DMATransmissionDisable(heth);
-  
-  /* Stop DMA reception */
-  ETH_DMAReceptionDisable(heth);
-  
-  /* Disable receive state machine of the MAC for reception from the MII */
-  ETH_MACReceptionDisable(heth);
-  
-  /* Flush Transmit FIFO */
-  ETH_FlushTransmitFIFO(heth);
-  
-  /* Disable transmit state machine of the MAC for transmission on the MII */
-  ETH_MACTransmissionDisable(heth);
-  
-  /* Set the ETH state*/
-  heth->State = HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
-  /* Return function status */
+HAL_StatusTypeDef HAL_ETH_GetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf)
+{
+  if (dmaconf == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  dmaconf->DMAArbitration = READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_DSL) >> 2;
+  dmaconf->AddressAlignedBeats = ((READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_AAB) >> 12) > 0U) ? ENABLE : DISABLE;
+  dmaconf->BurstMode = READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_FB | ETH_DMABMR_MB);
+  dmaconf->RxDMABurstLength = READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_RDP);
+  dmaconf->TxDMABurstLength = READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_PBL);
+  dmaconf->EnhancedDescriptorFormat = ((READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_EDE) >> 7) > 0U) ? ENABLE : DISABLE;
+  dmaconf->DescriptorSkipLength = READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_DSL) >> 2;
+
+  dmaconf->DropTCPIPChecksumErrorFrame = ((READ_BIT(heth->Instance->DMAOMR,
+                                                    ETH_DMAOMR_DTCEFD) >> 26) > 0U) ? DISABLE : ENABLE;
+  dmaconf->ReceiveStoreForward = ((READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_RSF) >> 25) > 0U) ? ENABLE : DISABLE;
+  dmaconf->FlushRxPacket = ((READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_FTF) >> 20) > 0U) ? DISABLE : ENABLE;
+  dmaconf->TransmitStoreForward = ((READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_TSF) >> 21) > 0U) ? ENABLE : DISABLE;
+  dmaconf->TransmitThresholdControl = READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_TTC);
+  dmaconf->ForwardErrorFrames = ((READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_FEF) >> 7) > 0U) ? ENABLE : DISABLE;
+  dmaconf->ForwardUndersizedGoodFrames = ((READ_BIT(heth->Instance->DMAOMR,
+                                                    ETH_DMAOMR_FUGF) >> 6) > 0U) ? ENABLE : DISABLE;
+  dmaconf->ReceiveThresholdControl = READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_RTC);
+  dmaconf->SecondFrameOperate = ((READ_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_OSF) >> 2) > 0U) ? ENABLE : DISABLE;
   return HAL_OK;
 }
 
 /**
-  * @brief  Set ETH MAC Configuration.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Set the MAC configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
-  * @param  macconf MAC Configuration structure  
+  * @param  macconf: pointer to a ETH_MACConfigTypeDef structure that contains
+  *         the configuration of the MAC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_ConfigMAC(ETH_HandleTypeDef *heth, ETH_MACInitTypeDef *macconf)
+HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth,  ETH_MACConfigTypeDef *macconf)
 {
-  uint32_t tmpreg1 = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State= HAL_ETH_STATE_BUSY;
-  
-  assert_param(IS_ETH_SPEED(heth->Init.Speed));
-  assert_param(IS_ETH_DUPLEX_MODE(heth->Init.DuplexMode)); 
-  
-  if (macconf != NULL)
+  if (macconf == NULL)
   {
-    /* Check the parameters */
-    assert_param(IS_ETH_WATCHDOG(macconf->Watchdog));
-    assert_param(IS_ETH_JABBER(macconf->Jabber));
-    assert_param(IS_ETH_INTER_FRAME_GAP(macconf->InterFrameGap));
-    assert_param(IS_ETH_CARRIER_SENSE(macconf->CarrierSense));
-    assert_param(IS_ETH_RECEIVE_OWN(macconf->ReceiveOwn));
-    assert_param(IS_ETH_LOOPBACK_MODE(macconf->LoopbackMode));
-    assert_param(IS_ETH_CHECKSUM_OFFLOAD(macconf->ChecksumOffload));
-    assert_param(IS_ETH_RETRY_TRANSMISSION(macconf->RetryTransmission));
-    assert_param(IS_ETH_AUTOMATIC_PADCRC_STRIP(macconf->AutomaticPadCRCStrip));
-    assert_param(IS_ETH_BACKOFF_LIMIT(macconf->BackOffLimit));
-    assert_param(IS_ETH_DEFERRAL_CHECK(macconf->DeferralCheck));
-    assert_param(IS_ETH_RECEIVE_ALL(macconf->ReceiveAll));
-    assert_param(IS_ETH_SOURCE_ADDR_FILTER(macconf->SourceAddrFilter));
-    assert_param(IS_ETH_CONTROL_FRAMES(macconf->PassControlFrames));
-    assert_param(IS_ETH_BROADCAST_FRAMES_RECEPTION(macconf->BroadcastFramesReception));
-    assert_param(IS_ETH_DESTINATION_ADDR_FILTER(macconf->DestinationAddrFilter));
-    assert_param(IS_ETH_PROMISCUOUS_MODE(macconf->PromiscuousMode));
-    assert_param(IS_ETH_MULTICAST_FRAMES_FILTER(macconf->MulticastFramesFilter));
-    assert_param(IS_ETH_UNICAST_FRAMES_FILTER(macconf->UnicastFramesFilter));
-    assert_param(IS_ETH_PAUSE_TIME(macconf->PauseTime));
-    assert_param(IS_ETH_ZEROQUANTA_PAUSE(macconf->ZeroQuantaPause));
-    assert_param(IS_ETH_PAUSE_LOW_THRESHOLD(macconf->PauseLowThreshold));
-    assert_param(IS_ETH_UNICAST_PAUSE_FRAME_DETECT(macconf->UnicastPauseFrameDetect));
-    assert_param(IS_ETH_RECEIVE_FLOWCONTROL(macconf->ReceiveFlowControl));
-    assert_param(IS_ETH_TRANSMIT_FLOWCONTROL(macconf->TransmitFlowControl));
-    assert_param(IS_ETH_VLAN_TAG_COMPARISON(macconf->VLANTagComparison));
-    assert_param(IS_ETH_VLAN_TAG_IDENTIFIER(macconf->VLANTagIdentifier));
-    
-    /*------------------------ ETHERNET MACCR Configuration --------------------*/
-    /* Get the ETHERNET MACCR value */
-    tmpreg1 = (heth->Instance)->MACCR;
-    /* Clear WD, PCE, PS, TE and RE bits */
-    tmpreg1 &= ETH_MACCR_CLEAR_MASK;
-    
-    tmpreg1 |= (uint32_t)(macconf->Watchdog | 
-                         macconf->Jabber | 
-                         macconf->InterFrameGap |
-                         macconf->CarrierSense |
-                         (heth->Init).Speed | 
-                         macconf->ReceiveOwn |
-                         macconf->LoopbackMode |
-                         (heth->Init).DuplexMode | 
-                         macconf->ChecksumOffload |    
-                         macconf->RetryTransmission | 
-                         macconf->AutomaticPadCRCStrip | 
-                         macconf->BackOffLimit | 
-                         macconf->DeferralCheck);
-    
-    /* Write to ETHERNET MACCR */
-    (heth->Instance)->MACCR = (uint32_t)tmpreg1;
-    
-    /* Wait until the write operation will be taken into account :
-    at least four TX_CLK/RX_CLK clock cycles */
-    tmpreg1 = (heth->Instance)->MACCR;
-    HAL_Delay(ETH_REG_WRITE_DELAY);
-    (heth->Instance)->MACCR = tmpreg1; 
-    
-    /*----------------------- ETHERNET MACFFR Configuration --------------------*/ 
-    /* Write to ETHERNET MACFFR */  
-    (heth->Instance)->MACFFR = (uint32_t)(macconf->ReceiveAll | 
-                                          macconf->SourceAddrFilter |
-                                          macconf->PassControlFrames |
-                                          macconf->BroadcastFramesReception | 
-                                          macconf->DestinationAddrFilter |
-                                          macconf->PromiscuousMode |
-                                          macconf->MulticastFramesFilter |
-                                          macconf->UnicastFramesFilter);
-     
-     /* Wait until the write operation will be taken into account :
-     at least four TX_CLK/RX_CLK clock cycles */
-     tmpreg1 = (heth->Instance)->MACFFR;
-     HAL_Delay(ETH_REG_WRITE_DELAY);
-     (heth->Instance)->MACFFR = tmpreg1;
-     
-     /*--------------- ETHERNET MACHTHR and MACHTLR Configuration ---------------*/
-     /* Write to ETHERNET MACHTHR */
-     (heth->Instance)->MACHTHR = (uint32_t)macconf->HashTableHigh;
-     
-     /* Write to ETHERNET MACHTLR */
-     (heth->Instance)->MACHTLR = (uint32_t)macconf->HashTableLow;
-     /*----------------------- ETHERNET MACFCR Configuration --------------------*/
-     
-     /* Get the ETHERNET MACFCR value */  
-     tmpreg1 = (heth->Instance)->MACFCR;
-     /* Clear xx bits */
-     tmpreg1 &= ETH_MACFCR_CLEAR_MASK;
-     
-     tmpreg1 |= (uint32_t)((macconf->PauseTime << 16U) | 
-                          macconf->ZeroQuantaPause |
-                          macconf->PauseLowThreshold |
-                          macconf->UnicastPauseFrameDetect | 
-                          macconf->ReceiveFlowControl |
-                          macconf->TransmitFlowControl); 
-     
-     /* Write to ETHERNET MACFCR */
-     (heth->Instance)->MACFCR = (uint32_t)tmpreg1;
-     
-     /* Wait until the write operation will be taken into account :
-     at least four TX_CLK/RX_CLK clock cycles */
-     tmpreg1 = (heth->Instance)->MACFCR;
-     HAL_Delay(ETH_REG_WRITE_DELAY);
-     (heth->Instance)->MACFCR = tmpreg1;
-     
-     /*----------------------- ETHERNET MACVLANTR Configuration -----------------*/
-     (heth->Instance)->MACVLANTR = (uint32_t)(macconf->VLANTagComparison | 
-                                              macconf->VLANTagIdentifier);
-      
-      /* Wait until the write operation will be taken into account :
-      at least four TX_CLK/RX_CLK clock cycles */
-      tmpreg1 = (heth->Instance)->MACVLANTR;
-      HAL_Delay(ETH_REG_WRITE_DELAY);
-      (heth->Instance)->MACVLANTR = tmpreg1;
+    return HAL_ERROR;
   }
-  else /* macconf == NULL : here we just configure Speed and Duplex mode */
+
+  if (heth->gState == HAL_ETH_STATE_READY)
   {
-    /*------------------------ ETHERNET MACCR Configuration --------------------*/
-    /* Get the ETHERNET MACCR value */
-    tmpreg1 = (heth->Instance)->MACCR;
-    
-    /* Clear FES and DM bits */
-    tmpreg1 &= ~(0x00004800U);
-    
-    tmpreg1 |= (uint32_t)(heth->Init.Speed | heth->Init.DuplexMode);
-    
-    /* Write to ETHERNET MACCR */
-    (heth->Instance)->MACCR = (uint32_t)tmpreg1;
-    
-    /* Wait until the write operation will be taken into account:
-    at least four TX_CLK/RX_CLK clock cycles */
-    tmpreg1 = (heth->Instance)->MACCR;
-    HAL_Delay(ETH_REG_WRITE_DELAY);
-    (heth->Instance)->MACCR = tmpreg1;
+    ETH_SetMACConfig(heth, macconf);
+
+    return HAL_OK;
   }
-  
-  /* Set the ETH state to Ready */
-  heth->State= HAL_ETH_STATE_READY;
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(heth);
-  
-  /* Return function status */
-  return HAL_OK;  
+  else
+  {
+    return HAL_ERROR;
+  }
 }
 
 /**
-  * @brief  Sets ETH DMA Configuration.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Set the ETH DMA configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
-  * @param  dmaconf DMA Configuration structure  
+  * @param  dmaconf: pointer to a ETH_DMAConfigTypeDef structure that will hold
+  *         the configuration of the ETH DMA.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_ETH_ConfigDMA(ETH_HandleTypeDef *heth, ETH_DMAInitTypeDef *dmaconf)
+HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth,  ETH_DMAConfigTypeDef *dmaconf)
 {
-  uint32_t tmpreg1 = 0U;
+  if (dmaconf == NULL)
+  {
+    return HAL_ERROR;
+  }
 
-  /* Process Locked */
-  __HAL_LOCK(heth);
-  
-  /* Set the ETH peripheral state to BUSY */
-  heth->State= HAL_ETH_STATE_BUSY;
+  if (heth->gState == HAL_ETH_STATE_READY)
+  {
+    ETH_SetDMAConfig(heth, dmaconf);
 
-  /* Check parameters */
-  assert_param(IS_ETH_DROP_TCPIP_CHECKSUM_FRAME(dmaconf->DropTCPIPChecksumErrorFrame));
-  assert_param(IS_ETH_RECEIVE_STORE_FORWARD(dmaconf->ReceiveStoreForward));
-  assert_param(IS_ETH_FLUSH_RECEIVE_FRAME(dmaconf->FlushReceivedFrame));
-  assert_param(IS_ETH_TRANSMIT_STORE_FORWARD(dmaconf->TransmitStoreForward));
-  assert_param(IS_ETH_TRANSMIT_THRESHOLD_CONTROL(dmaconf->TransmitThresholdControl));
-  assert_param(IS_ETH_FORWARD_ERROR_FRAMES(dmaconf->ForwardErrorFrames));
-  assert_param(IS_ETH_FORWARD_UNDERSIZED_GOOD_FRAMES(dmaconf->ForwardUndersizedGoodFrames));
-  assert_param(IS_ETH_RECEIVE_THRESHOLD_CONTROL(dmaconf->ReceiveThresholdControl));
-  assert_param(IS_ETH_SECOND_FRAME_OPERATE(dmaconf->SecondFrameOperate));
-  assert_param(IS_ETH_ADDRESS_ALIGNED_BEATS(dmaconf->AddressAlignedBeats));
-  assert_param(IS_ETH_FIXED_BURST(dmaconf->FixedBurst));
-  assert_param(IS_ETH_RXDMA_BURST_LENGTH(dmaconf->RxDMABurstLength));
-  assert_param(IS_ETH_TXDMA_BURST_LENGTH(dmaconf->TxDMABurstLength));
-  assert_param(IS_ETH_ENHANCED_DESCRIPTOR_FORMAT(dmaconf->EnhancedDescriptorFormat));
-  assert_param(IS_ETH_DMA_DESC_SKIP_LENGTH(dmaconf->DescriptorSkipLength));
-  assert_param(IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(dmaconf->DMAArbitration));
-  
+    return HAL_OK;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+}
+
+/**
+  * @brief  Configures the Clock range of ETH MDIO interface.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth)
+{
+  uint32_t hclk;
+  uint32_t tmpreg;
+
+  /* Get the ETHERNET MACMIIAR value */
+  tmpreg = (heth->Instance)->MACMIIAR;
+  /* Clear CSR Clock Range CR[2:0] bits */
+  tmpreg &= ETH_MACMIIAR_CR_MASK;
+
+  /* Get hclk frequency value */
+  hclk = HAL_RCC_GetHCLKFreq();
+
+  /* Set CR bits depending on hclk value */
+  if ((hclk >= 20000000U) && (hclk < 35000000U))
+  {
+    /* CSR Clock Range between 20-35 MHz */
+    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div16;
+  }
+  else if ((hclk >= 35000000U) && (hclk < 60000000U))
+  {
+    /* CSR Clock Range between 35-60 MHz */
+    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div26;
+  }
+  else if ((hclk >= 60000000U) && (hclk < 100000000U))
+  {
+    /* CSR Clock Range between 60-100 MHz */
+    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div42;
+  }
+  else if ((hclk >= 100000000U) && (hclk < 150000000U))
+  {
+    /* CSR Clock Range between 100-150 MHz */
+    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div62;
+  }
+  else /* ((hclk >= 150000000)&&(hclk <= 183000000))*/
+  {
+    /* CSR Clock Range between 150-183 MHz */
+    tmpreg |= (uint32_t)ETH_MACMIIAR_CR_Div102;
+  }
+
+  /* Write to ETHERNET MAC MIIAR: Configure the ETHERNET CSR Clock Range */
+  (heth->Instance)->MACMIIAR = (uint32_t)tmpreg;
+}
+
+/**
+  * @brief  Set the ETH MAC (L2) Filters configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pFilterConfig: pointer to a ETH_MACFilterConfigTypeDef structure that contains
+  *         the configuration of the ETH MAC filters.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig)
+{
+  uint32_t filterconfig;
+
+  if (pFilterConfig == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  filterconfig = ((uint32_t)pFilterConfig->PromiscuousMode |
+                  ((uint32_t)pFilterConfig->HashUnicast << 1) |
+                  ((uint32_t)pFilterConfig->HashMulticast << 2)  |
+                  ((uint32_t)pFilterConfig->DestAddrInverseFiltering << 3) |
+                  ((uint32_t)pFilterConfig->PassAllMulticast << 4) |
+                  ((uint32_t)((pFilterConfig->BroadcastFilter == DISABLE) ? 1U : 0U) << 5) |
+                  ((uint32_t)pFilterConfig->SrcAddrInverseFiltering << 8) |
+                  ((uint32_t)pFilterConfig->SrcAddrFiltering << 9) |
+                  ((uint32_t)pFilterConfig->HachOrPerfectFilter << 10) |
+                  ((uint32_t)pFilterConfig->ReceiveAllMode << 31) |
+                  pFilterConfig->ControlPacketsFilter);
+
+  MODIFY_REG(heth->Instance->MACFFR, ETH_MACFFR_MASK, filterconfig);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Get the ETH MAC (L2) Filters configuration.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pFilterConfig: pointer to a ETH_MACFilterConfigTypeDef structure that will hold
+  *         the configuration of the ETH MAC filters.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig)
+{
+  if (pFilterConfig == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  pFilterConfig->PromiscuousMode = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_PM)) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->HashUnicast = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_HU) >> 1) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->HashMulticast = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_HM) >> 2) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->DestAddrInverseFiltering = ((READ_BIT(heth->Instance->MACFFR,
+                                                       ETH_MACFFR_DAIF) >> 3) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->PassAllMulticast = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_PAM) >> 4) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->BroadcastFilter = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_BFD) >> 5) == 0U) ? ENABLE : DISABLE;
+  pFilterConfig->ControlPacketsFilter = READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_PCF);
+  pFilterConfig->SrcAddrInverseFiltering = ((READ_BIT(heth->Instance->MACFFR,
+                                                      ETH_MACFFR_SAIF) >> 8) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->SrcAddrFiltering = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_SAF) >> 9) > 0U) ? ENABLE : DISABLE;
+  pFilterConfig->HachOrPerfectFilter = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_HPF) >> 10) > 0U)
+                                       ? ENABLE : DISABLE;
+  pFilterConfig->ReceiveAllMode = ((READ_BIT(heth->Instance->MACFFR, ETH_MACFFR_RA) >> 31) > 0U) ? ENABLE : DISABLE;
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Set the source MAC Address to be matched.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  AddrNbr: The MAC address to configure
+  *          This parameter must be a value of the following:
+  *            ETH_MAC_ADDRESS1
+  *            ETH_MAC_ADDRESS2
+  *            ETH_MAC_ADDRESS3
+  * @param  pMACAddr: Pointer to MAC address buffer data (6 bytes)
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(ETH_HandleTypeDef *heth, uint32_t AddrNbr, uint8_t *pMACAddr)
+{
+  uint32_t macaddrlr;
+  uint32_t macaddrhr;
+
+  if (pMACAddr == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Get mac addr high reg offset */
+  macaddrhr = ((uint32_t) &(heth->Instance->MACA0HR) + AddrNbr);
+  /* Get mac addr low reg offset */
+  macaddrlr = ((uint32_t) &(heth->Instance->MACA0LR) + AddrNbr);
+
+  /* Set MAC addr bits 32 to 47 */
+  (*(__IO uint32_t *)macaddrhr) = (((uint32_t)(pMACAddr[5]) << 8) | (uint32_t)pMACAddr[4]);
+  /* Set MAC addr bits 0 to 31 */
+  (*(__IO uint32_t *)macaddrlr) = (((uint32_t)(pMACAddr[3]) << 24) | ((uint32_t)(pMACAddr[2]) << 16) |
+                                   ((uint32_t)(pMACAddr[1]) << 8) | (uint32_t)pMACAddr[0]);
+
+  /* Enable address and set source address bit */
+  (*(__IO uint32_t *)macaddrhr) |= (ETH_MACA1HR_AE | ETH_MACA1HR_SA);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Set the ETH Hash Table Value.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pHashTable: pointer to a table of two 32 bit values, that contains
+  *         the 64 bits of the hash table.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable)
+{
+  if (pHashTable == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  heth->Instance->MACHTHR = pHashTable[0];
+  heth->Instance->MACHTLR = pHashTable[1];
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Set the VLAN Identifier for Rx packets
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  ComparisonBits: 12 or 16 bit comparison mode
+            must be a value of @ref ETH_VLAN_Tag_Comparison
+  * @param  VLANIdentifier: VLAN Identifier value
+  * @retval None
+  */
+void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits, uint32_t VLANIdentifier)
+{
+  MODIFY_REG(heth->Instance->MACVLANTR, ETH_MACVLANTR_VLANTI, VLANIdentifier);
+  if (ComparisonBits == ETH_VLANTAGCOMPARISON_16BIT)
+  {
+    CLEAR_BIT(heth->Instance->MACVLANTR, ETH_MACVLANTR_VLANTC);
+  }
+  else
+  {
+    SET_BIT(heth->Instance->MACVLANTR, ETH_MACVLANTR_VLANTC);
+  }
+}
+
+/**
+  * @brief  Enters the Power down mode.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pPowerDownConfig: a pointer to ETH_PowerDownConfigTypeDef structure
+  *         that contains the Power Down configuration
+  * @retval None.
+  */
+void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth, ETH_PowerDownConfigTypeDef *pPowerDownConfig)
+{
+  uint32_t powerdownconfig;
+
+  powerdownconfig = (((uint32_t)pPowerDownConfig->MagicPacket << ETH_MACPMTCSR_MPE_Pos) |
+                     ((uint32_t)pPowerDownConfig->WakeUpPacket << ETH_MACPMTCSR_WFE_Pos) |
+                     ((uint32_t)pPowerDownConfig->GlobalUnicast << ETH_MACPMTCSR_GU_Pos) |
+                     ETH_MACPMTCSR_PD);
+
+  MODIFY_REG(heth->Instance->MACPMTCSR, ETH_MACPMTCSR_MASK, powerdownconfig);
+}
+
+/**
+  * @brief  Exits from the Power down mode.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None.
+  */
+void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth)
+{
+  /* clear wake up sources */
+  CLEAR_BIT(heth->Instance->MACPMTCSR, ETH_MACPMTCSR_WFE | ETH_MACPMTCSR_MPE | ETH_MACPMTCSR_GU);
+
+  if (READ_BIT(heth->Instance->MACPMTCSR, ETH_MACPMTCSR_PD) != 0U)
+  {
+    /* Exit power down mode */
+    CLEAR_BIT(heth->Instance->MACPMTCSR, ETH_MACPMTCSR_PD);
+  }
+
+  /* Disable PMT interrupt */
+  SET_BIT(heth->Instance->MACIMR, ETH_MACIMR_PMTIM);
+}
+
+/**
+  * @brief  Set the WakeUp filter.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pFilter: pointer to filter registers values
+  * @param  Count: number of filter registers, must be from 1 to 8.
+  * @retval None.
+  */
+HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count)
+{
+  uint32_t regindex;
+
+  if (pFilter == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Reset Filter Pointer */
+  SET_BIT(heth->Instance->MACPMTCSR, ETH_MACPMTCSR_WFFRPR);
+
+  /* Wake up packet filter config */
+  for (regindex = 0; regindex < Count; regindex++)
+  {
+    /* Write filter regs */
+    WRITE_REG(heth->Instance->MACRWUFFR, pFilter[regindex]);
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @}
+  */
+
+/** @defgroup ETH_Exported_Functions_Group4 Peripheral State and Errors functions
+  *  @brief   ETH State and Errors functions
+  *
+@verbatim
+  ==============================================================================
+                 ##### Peripheral State and Errors functions #####
+  ==============================================================================
+ [..]
+   This subsection provides a set of functions allowing to return the State of
+   ETH communication process, return Peripheral Errors occurred during communication
+   process
+
+
+@endverbatim
+  * @{
+  */
+
+/**
+  * @brief  Returns the ETH state.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval HAL state
+  */
+HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth)
+{
+  return heth->gState;
+}
+
+/**
+  * @brief  Returns the ETH error code
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval ETH Error Code
+  */
+uint32_t HAL_ETH_GetError(ETH_HandleTypeDef *heth)
+{
+  return heth->ErrorCode;
+}
+
+/**
+  * @brief  Returns the ETH DMA error code
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval ETH DMA Error Code
+  */
+uint32_t HAL_ETH_GetDMAError(ETH_HandleTypeDef *heth)
+{
+  return heth->DMAErrorCode;
+}
+
+/**
+  * @brief  Returns the ETH MAC error code
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval ETH MAC Error Code
+  */
+uint32_t HAL_ETH_GetMACError(ETH_HandleTypeDef *heth)
+{
+  return heth->MACErrorCode;
+}
+
+/**
+  * @brief  Returns the ETH MAC WakeUp event source
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval ETH MAC WakeUp event source
+  */
+uint32_t HAL_ETH_GetMACWakeUpSource(ETH_HandleTypeDef *heth)
+{
+  return heth->MACWakeUpEvent;
+}
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/** @addtogroup ETH_Private_Functions   ETH Private Functions
+  * @{
+  */
+
+/**
+  * @brief  Clears the ETHERNET transmit FIFO.
+  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @retval None
+  */
+static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth)
+{
+  __IO uint32_t tmpreg = 0;
+
+  /* Set the Flush Transmit FIFO bit */
+  (heth->Instance)->DMAOMR |= ETH_DMAOMR_FTF;
+
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg = (heth->Instance)->DMAOMR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->DMAOMR = tmpreg;
+}
+
+static void ETH_SetMACConfig(ETH_HandleTypeDef *heth,  ETH_MACConfigTypeDef *macconf)
+{
+  uint32_t tmpreg1;
+
+  /*------------------------ ETHERNET MACCR Configuration --------------------*/
+  /* Get the ETHERNET MACCR value */
+  tmpreg1 = (heth->Instance)->MACCR;
+  /* Clear WD, PCE, PS, TE and RE bits */
+  tmpreg1 &= ETH_MACCR_CLEAR_MASK;
+
+  tmpreg1 |= (uint32_t)(((uint32_t)((macconf->Watchdog == DISABLE) ? 1U : 0U) << 23U) |
+                        ((uint32_t)((macconf->Jabber == DISABLE) ? 1U : 0U) << 22U) |
+                        (uint32_t)macconf->InterPacketGapVal |
+                        ((uint32_t)macconf->CarrierSenseDuringTransmit << 16U) |
+                        macconf->Speed |
+                        ((uint32_t)((macconf->ReceiveOwn == DISABLE) ? 1U : 0U) << 13U) |
+                        ((uint32_t)macconf->LoopbackMode << 12U) |
+                        macconf->DuplexMode |
+                        ((uint32_t)macconf->ChecksumOffload << 10U) |
+                        ((uint32_t)((macconf->RetryTransmission == DISABLE) ? 1U : 0U) << 9U) |
+                        ((uint32_t)macconf->AutomaticPadCRCStrip << 7U) |
+                        macconf->BackOffLimit |
+                        ((uint32_t)macconf->DeferralCheck << 4U));
+
+  /* Write to ETHERNET MACCR */
+  (heth->Instance)->MACCR = (uint32_t)tmpreg1;
+
+  /* Wait until the write operation will be taken into account :
+  at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACCR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACCR = tmpreg1;
+
+  /*----------------------- ETHERNET MACFCR Configuration --------------------*/
+
+  /* Get the ETHERNET MACFCR value */
+  tmpreg1 = (heth->Instance)->MACFCR;
+  /* Clear xx bits */
+  tmpreg1 &= ETH_MACFCR_CLEAR_MASK;
+
+  tmpreg1 |= (uint32_t)((macconf->PauseTime << 16U) |
+                        (uint32_t)macconf->ZeroQuantaPause |
+                        macconf->PauseLowThreshold |
+                        (uint32_t)macconf->UnicastSlowProtocolPacketDetect |
+                        (uint32_t)macconf->ReceiveFlowControl |
+                        (uint32_t)macconf->TransmitFlowControl);
+
+  /* Write to ETHERNET MACFCR */
+  (heth->Instance)->MACFCR = (uint32_t)tmpreg1;
+
+  /* Wait until the write operation will be taken into account :
+  at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->MACFCR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->MACFCR = tmpreg1;
+}
+
+static void ETH_SetDMAConfig(ETH_HandleTypeDef *heth,  ETH_DMAConfigTypeDef *dmaconf)
+{
+  uint32_t tmpreg1;
+
   /*----------------------- ETHERNET DMAOMR Configuration --------------------*/
   /* Get the ETHERNET DMAOMR value */
   tmpreg1 = (heth->Instance)->DMAOMR;
   /* Clear xx bits */
   tmpreg1 &= ETH_DMAOMR_CLEAR_MASK;
 
-  tmpreg1 |= (uint32_t)(dmaconf->DropTCPIPChecksumErrorFrame | 
-                       dmaconf->ReceiveStoreForward |
-                       dmaconf->FlushReceivedFrame |
-                       dmaconf->TransmitStoreForward | 
-                       dmaconf->TransmitThresholdControl |
-                       dmaconf->ForwardErrorFrames |
-                       dmaconf->ForwardUndersizedGoodFrames |
-                       dmaconf->ReceiveThresholdControl |
-                       dmaconf->SecondFrameOperate);
+  tmpreg1 |= (uint32_t)(((uint32_t)((dmaconf->DropTCPIPChecksumErrorFrame == DISABLE) ? 1U : 0U) << 26U) |
+                        ((uint32_t)dmaconf->ReceiveStoreForward << 25U) |
+                        ((uint32_t)((dmaconf->FlushRxPacket == DISABLE) ? 1U : 0U) << 20U) |
+                        ((uint32_t)dmaconf->TransmitStoreForward << 21U) |
+                        dmaconf->TransmitThresholdControl |
+                        ((uint32_t)dmaconf->ForwardErrorFrames << 7U) |
+                        ((uint32_t)dmaconf->ForwardUndersizedGoodFrames << 6U) |
+                        dmaconf->ReceiveThresholdControl |
+                        ((uint32_t)dmaconf->SecondFrameOperate << 2U));
 
   /* Write to ETHERNET DMAOMR */
   (heth->Instance)->DMAOMR = (uint32_t)tmpreg1;
@@ -1756,332 +2716,79 @@
   (heth->Instance)->DMAOMR = tmpreg1;
 
   /*----------------------- ETHERNET DMABMR Configuration --------------------*/
-  (heth->Instance)->DMABMR = (uint32_t)(dmaconf->AddressAlignedBeats | 
-                                         dmaconf->FixedBurst |
-                                         dmaconf->RxDMABurstLength | /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
-                                         dmaconf->TxDMABurstLength |
-                                         dmaconf->EnhancedDescriptorFormat |
-                                         (dmaconf->DescriptorSkipLength << 2U) |
-                                         dmaconf->DMAArbitration | 
-                                         ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
+  (heth->Instance)->DMABMR = (uint32_t)(((uint32_t)dmaconf->AddressAlignedBeats << 25U) |
+                                        dmaconf->BurstMode |
+                                        dmaconf->RxDMABurstLength | /* !! if 4xPBL is selected for Tx or
+                                                                       Rx it is applied for the other */
+                                        dmaconf->TxDMABurstLength |
+                                        ((uint32_t)dmaconf->EnhancedDescriptorFormat << 7U) |
+                                        (dmaconf->DescriptorSkipLength << 2U) |
+                                        dmaconf->DMAArbitration |
+                                        ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
 
-   /* Wait until the write operation will be taken into account:
-      at least four TX_CLK/RX_CLK clock cycles */
-   tmpreg1 = (heth->Instance)->DMABMR;
-   HAL_Delay(ETH_REG_WRITE_DELAY);
-   (heth->Instance)->DMABMR = tmpreg1;
-
-   /* Set the ETH state to Ready */
-   heth->State= HAL_ETH_STATE_READY;
-   
-   /* Process Unlocked */
-   __HAL_UNLOCK(heth);
-   
-   /* Return function status */
-   return HAL_OK; 
+  /* Wait until the write operation will be taken into account:
+     at least four TX_CLK/RX_CLK clock cycles */
+  tmpreg1 = (heth->Instance)->DMABMR;
+  HAL_Delay(ETH_REG_WRITE_DELAY);
+  (heth->Instance)->DMABMR = tmpreg1;
 }
 
 /**
-  * @}
-  */
-
-/** @defgroup ETH_Exported_Functions_Group4 Peripheral State functions 
-  *  @brief   Peripheral State functions 
-  *
-  @verbatim   
-  ===============================================================================
-                         ##### Peripheral State functions #####
-  ===============================================================================  
-  [..]
-  This subsection permits to get in run-time the status of the peripheral 
-  and the data flow.
-       (+) Get the ETH handle state:
-           HAL_ETH_GetState();
-           
-
-  @endverbatim
-  * @{
-  */
-
-/**
-  * @brief  Return the ETH HAL state
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module
-  * @retval HAL state
-  */
-HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth)
-{  
-  /* Return ETH state */
-  return heth->State;
-}
-
-/**
-  * @}
-  */
-  
-/**
-  * @}
-  */
-  
-/** @addtogroup ETH_Private_Functions
-  * @{
-  */
-
-/**
   * @brief  Configures Ethernet MAC and DMA with default parameters.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  *         called by HAL_ETH_Init() API.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
-  * @param  err Ethernet Init error
   * @retval HAL status
   */
-static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth, uint32_t err)
+static void ETH_MACDMAConfig(ETH_HandleTypeDef *heth)
 {
-  ETH_MACInitTypeDef macinit;
-  ETH_DMAInitTypeDef dmainit;
-  uint32_t tmpreg1 = 0U;
-  
-  if (err != ETH_SUCCESS) /* Auto-negotiation failed */
-  {
-    /* Set Ethernet duplex mode to Full-duplex */
-    (heth->Init).DuplexMode = ETH_MODE_FULLDUPLEX;
-    
-    /* Set Ethernet speed to 100M */
-    (heth->Init).Speed = ETH_SPEED_100M;
-  }
-  
-  /* Ethernet MAC default initialization **************************************/
-  macinit.Watchdog = ETH_WATCHDOG_ENABLE;
-  macinit.Jabber = ETH_JABBER_ENABLE;
-  macinit.InterFrameGap = ETH_INTERFRAMEGAP_96BIT;
-  macinit.CarrierSense = ETH_CARRIERSENCE_ENABLE;
-  macinit.ReceiveOwn = ETH_RECEIVEOWN_ENABLE;
-  macinit.LoopbackMode = ETH_LOOPBACKMODE_DISABLE;
-  if(heth->Init.ChecksumMode == ETH_CHECKSUM_BY_HARDWARE)
-  {
-    macinit.ChecksumOffload = ETH_CHECKSUMOFFLAOD_ENABLE;
-  }
-  else
-  {
-    macinit.ChecksumOffload = ETH_CHECKSUMOFFLAOD_DISABLE;
-  }
-  macinit.RetryTransmission = ETH_RETRYTRANSMISSION_DISABLE;
-  macinit.AutomaticPadCRCStrip = ETH_AUTOMATICPADCRCSTRIP_DISABLE;
-  macinit.BackOffLimit = ETH_BACKOFFLIMIT_10;
-  macinit.DeferralCheck = ETH_DEFFERRALCHECK_DISABLE;
-  macinit.ReceiveAll = ETH_RECEIVEAll_DISABLE;
-  macinit.SourceAddrFilter = ETH_SOURCEADDRFILTER_DISABLE;
-  macinit.PassControlFrames = ETH_PASSCONTROLFRAMES_BLOCKALL;
-  macinit.BroadcastFramesReception = ETH_BROADCASTFRAMESRECEPTION_ENABLE;
-  macinit.DestinationAddrFilter = ETH_DESTINATIONADDRFILTER_NORMAL;
-  macinit.PromiscuousMode = ETH_PROMISCUOUS_MODE_DISABLE;
-  macinit.MulticastFramesFilter = ETH_MULTICASTFRAMESFILTER_PERFECT;
-  macinit.UnicastFramesFilter = ETH_UNICASTFRAMESFILTER_PERFECT;
-  macinit.HashTableHigh = 0x0U;
-  macinit.HashTableLow = 0x0U;
-  macinit.PauseTime = 0x0U;
-  macinit.ZeroQuantaPause = ETH_ZEROQUANTAPAUSE_DISABLE;
-  macinit.PauseLowThreshold = ETH_PAUSELOWTHRESHOLD_MINUS4;
-  macinit.UnicastPauseFrameDetect = ETH_UNICASTPAUSEFRAMEDETECT_DISABLE;
-  macinit.ReceiveFlowControl = ETH_RECEIVEFLOWCONTROL_DISABLE;
-  macinit.TransmitFlowControl = ETH_TRANSMITFLOWCONTROL_DISABLE;
-  macinit.VLANTagComparison = ETH_VLANTAGCOMPARISON_16BIT;
-  macinit.VLANTagIdentifier = 0x0U;
-  
-  /*------------------------ ETHERNET MACCR Configuration --------------------*/
-  /* Get the ETHERNET MACCR value */
-  tmpreg1 = (heth->Instance)->MACCR;
-  /* Clear WD, PCE, PS, TE and RE bits */
-  tmpreg1 &= ETH_MACCR_CLEAR_MASK;
-  /* Set the WD bit according to ETH Watchdog value */
-  /* Set the JD: bit according to ETH Jabber value */
-  /* Set the IFG bit according to ETH InterFrameGap value */
-  /* Set the DCRS bit according to ETH CarrierSense value */
-  /* Set the FES bit according to ETH Speed value */ 
-  /* Set the DO bit according to ETH ReceiveOwn value */ 
-  /* Set the LM bit according to ETH LoopbackMode value */
-  /* Set the DM bit according to ETH Mode value */ 
-  /* Set the IPCO bit according to ETH ChecksumOffload value */
-  /* Set the DR bit according to ETH RetryTransmission value */
-  /* Set the ACS bit according to ETH AutomaticPadCRCStrip value */
-  /* Set the BL bit according to ETH BackOffLimit value */
-  /* Set the DC bit according to ETH DeferralCheck value */
-  tmpreg1 |= (uint32_t)(macinit.Watchdog | 
-                       macinit.Jabber | 
-                       macinit.InterFrameGap |
-                       macinit.CarrierSense |
-                       (heth->Init).Speed | 
-                       macinit.ReceiveOwn |
-                       macinit.LoopbackMode |
-                       (heth->Init).DuplexMode | 
-                       macinit.ChecksumOffload |    
-                       macinit.RetryTransmission | 
-                       macinit.AutomaticPadCRCStrip | 
-                       macinit.BackOffLimit | 
-                       macinit.DeferralCheck);
-  
-  /* Write to ETHERNET MACCR */
-  (heth->Instance)->MACCR = (uint32_t)tmpreg1;
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->MACCR;
-  HAL_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->MACCR = tmpreg1; 
-  
-  /*----------------------- ETHERNET MACFFR Configuration --------------------*/ 
-  /* Set the RA bit according to ETH ReceiveAll value */
-  /* Set the SAF and SAIF bits according to ETH SourceAddrFilter value */
-  /* Set the PCF bit according to ETH PassControlFrames value */
-  /* Set the DBF bit according to ETH BroadcastFramesReception value */
-  /* Set the DAIF bit according to ETH DestinationAddrFilter value */
-  /* Set the PR bit according to ETH PromiscuousMode value */
-  /* Set the PM, HMC and HPF bits according to ETH MulticastFramesFilter value */
-  /* Set the HUC and HPF bits according to ETH UnicastFramesFilter value */
-  /* Write to ETHERNET MACFFR */  
-  (heth->Instance)->MACFFR = (uint32_t)(macinit.ReceiveAll | 
-                                        macinit.SourceAddrFilter |
-                                        macinit.PassControlFrames |
-                                        macinit.BroadcastFramesReception | 
-                                        macinit.DestinationAddrFilter |
-                                        macinit.PromiscuousMode |
-                                        macinit.MulticastFramesFilter |
-                                        macinit.UnicastFramesFilter);
-   
-   /* Wait until the write operation will be taken into account:
-      at least four TX_CLK/RX_CLK clock cycles */
-   tmpreg1 = (heth->Instance)->MACFFR;
-   HAL_Delay(ETH_REG_WRITE_DELAY);
-   (heth->Instance)->MACFFR = tmpreg1;
-   
-   /*--------------- ETHERNET MACHTHR and MACHTLR Configuration --------------*/
-   /* Write to ETHERNET MACHTHR */
-   (heth->Instance)->MACHTHR = (uint32_t)macinit.HashTableHigh;
-   
-   /* Write to ETHERNET MACHTLR */
-   (heth->Instance)->MACHTLR = (uint32_t)macinit.HashTableLow;
-   /*----------------------- ETHERNET MACFCR Configuration -------------------*/
-   
-   /* Get the ETHERNET MACFCR value */  
-   tmpreg1 = (heth->Instance)->MACFCR;
-   /* Clear xx bits */
-   tmpreg1 &= ETH_MACFCR_CLEAR_MASK;
-   
-   /* Set the PT bit according to ETH PauseTime value */
-   /* Set the DZPQ bit according to ETH ZeroQuantaPause value */
-   /* Set the PLT bit according to ETH PauseLowThreshold value */
-   /* Set the UP bit according to ETH UnicastPauseFrameDetect value */
-   /* Set the RFE bit according to ETH ReceiveFlowControl value */
-   /* Set the TFE bit according to ETH TransmitFlowControl value */ 
-   tmpreg1 |= (uint32_t)((macinit.PauseTime << 16U) | 
-                        macinit.ZeroQuantaPause |
-                        macinit.PauseLowThreshold |
-                        macinit.UnicastPauseFrameDetect | 
-                        macinit.ReceiveFlowControl |
-                        macinit.TransmitFlowControl); 
-   
-   /* Write to ETHERNET MACFCR */
-   (heth->Instance)->MACFCR = (uint32_t)tmpreg1;
-   
-   /* Wait until the write operation will be taken into account:
-   at least four TX_CLK/RX_CLK clock cycles */
-   tmpreg1 = (heth->Instance)->MACFCR;
-   HAL_Delay(ETH_REG_WRITE_DELAY);
-   (heth->Instance)->MACFCR = tmpreg1;
-   
-   /*----------------------- ETHERNET MACVLANTR Configuration ----------------*/
-   /* Set the ETV bit according to ETH VLANTagComparison value */
-   /* Set the VL bit according to ETH VLANTagIdentifier value */  
-   (heth->Instance)->MACVLANTR = (uint32_t)(macinit.VLANTagComparison | 
-                                            macinit.VLANTagIdentifier);
-    
-    /* Wait until the write operation will be taken into account:
-       at least four TX_CLK/RX_CLK clock cycles */
-    tmpreg1 = (heth->Instance)->MACVLANTR;
-    HAL_Delay(ETH_REG_WRITE_DELAY);
-    (heth->Instance)->MACVLANTR = tmpreg1;
-    
-    /* Ethernet DMA default initialization ************************************/
-    dmainit.DropTCPIPChecksumErrorFrame = ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE;
-    dmainit.ReceiveStoreForward = ETH_RECEIVESTOREFORWARD_ENABLE;
-    dmainit.FlushReceivedFrame = ETH_FLUSHRECEIVEDFRAME_ENABLE;
-    dmainit.TransmitStoreForward = ETH_TRANSMITSTOREFORWARD_ENABLE;  
-    dmainit.TransmitThresholdControl = ETH_TRANSMITTHRESHOLDCONTROL_64BYTES;
-    dmainit.ForwardErrorFrames = ETH_FORWARDERRORFRAMES_DISABLE;
-    dmainit.ForwardUndersizedGoodFrames = ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE;
-    dmainit.ReceiveThresholdControl = ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES;
-    dmainit.SecondFrameOperate = ETH_SECONDFRAMEOPERARTE_ENABLE;
-    dmainit.AddressAlignedBeats = ETH_ADDRESSALIGNEDBEATS_ENABLE;
-    dmainit.FixedBurst = ETH_FIXEDBURST_ENABLE;
-    dmainit.RxDMABurstLength = ETH_RXDMABURSTLENGTH_32BEAT;
-    dmainit.TxDMABurstLength = ETH_TXDMABURSTLENGTH_32BEAT;
-    dmainit.EnhancedDescriptorFormat = ETH_DMAENHANCEDDESCRIPTOR_ENABLE;
-    dmainit.DescriptorSkipLength = 0x0U;
-    dmainit.DMAArbitration = ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1;
-    
-    /* Get the ETHERNET DMAOMR value */
-    tmpreg1 = (heth->Instance)->DMAOMR;
-    /* Clear xx bits */
-    tmpreg1 &= ETH_DMAOMR_CLEAR_MASK;
-    
-    /* Set the DT bit according to ETH DropTCPIPChecksumErrorFrame value */
-    /* Set the RSF bit according to ETH ReceiveStoreForward value */
-    /* Set the DFF bit according to ETH FlushReceivedFrame value */
-    /* Set the TSF bit according to ETH TransmitStoreForward value */
-    /* Set the TTC bit according to ETH TransmitThresholdControl value */
-    /* Set the FEF bit according to ETH ForwardErrorFrames value */
-    /* Set the FUF bit according to ETH ForwardUndersizedGoodFrames value */
-    /* Set the RTC bit according to ETH ReceiveThresholdControl value */
-    /* Set the OSF bit according to ETH SecondFrameOperate value */
-    tmpreg1 |= (uint32_t)(dmainit.DropTCPIPChecksumErrorFrame | 
-                         dmainit.ReceiveStoreForward |
-                         dmainit.FlushReceivedFrame |
-                         dmainit.TransmitStoreForward | 
-                         dmainit.TransmitThresholdControl |
-                         dmainit.ForwardErrorFrames |
-                         dmainit.ForwardUndersizedGoodFrames |
-                         dmainit.ReceiveThresholdControl |
-                         dmainit.SecondFrameOperate);
-    
-    /* Write to ETHERNET DMAOMR */
-    (heth->Instance)->DMAOMR = (uint32_t)tmpreg1;
-    
-    /* Wait until the write operation will be taken into account:
-       at least four TX_CLK/RX_CLK clock cycles */
-    tmpreg1 = (heth->Instance)->DMAOMR;
-    HAL_Delay(ETH_REG_WRITE_DELAY);
-    (heth->Instance)->DMAOMR = tmpreg1;
-    
-    /*----------------------- ETHERNET DMABMR Configuration ------------------*/
-    /* Set the AAL bit according to ETH AddressAlignedBeats value */
-    /* Set the FB bit according to ETH FixedBurst value */
-    /* Set the RPBL and 4*PBL bits according to ETH RxDMABurstLength value */
-    /* Set the PBL and 4*PBL bits according to ETH TxDMABurstLength value */
-    /* Set the Enhanced DMA descriptors bit according to ETH EnhancedDescriptorFormat value*/
-    /* Set the DSL bit according to ETH DesciptorSkipLength value */
-    /* Set the PR and DA bits according to ETH DMAArbitration value */
-    (heth->Instance)->DMABMR = (uint32_t)(dmainit.AddressAlignedBeats | 
-                                          dmainit.FixedBurst |
-                                          dmainit.RxDMABurstLength |    /* !! if 4xPBL is selected for Tx or Rx it is applied for the other */
-                                          dmainit.TxDMABurstLength |
-                                          dmainit.EnhancedDescriptorFormat |
-                                          (dmainit.DescriptorSkipLength << 2U) |
-                                          dmainit.DMAArbitration |
-                                          ETH_DMABMR_USP); /* Enable use of separate PBL for Rx and Tx */
-     
-     /* Wait until the write operation will be taken into account:
-        at least four TX_CLK/RX_CLK clock cycles */
-     tmpreg1 = (heth->Instance)->DMABMR;
-     HAL_Delay(ETH_REG_WRITE_DELAY);
-     (heth->Instance)->DMABMR = tmpreg1;
+  ETH_MACConfigTypeDef macDefaultConf;
+  ETH_DMAConfigTypeDef dmaDefaultConf;
 
-     if((heth->Init).RxMode == ETH_RXINTERRUPT_MODE)
-     {
-       /* Enable the Ethernet Rx Interrupt */
-       __HAL_ETH_DMA_ENABLE_IT((heth), ETH_DMA_IT_NIS | ETH_DMA_IT_R);
-     }
+  /*--------------- ETHERNET MAC registers default Configuration --------------*/
+  macDefaultConf.Watchdog = ENABLE;
+  macDefaultConf.Jabber = ENABLE;
+  macDefaultConf.InterPacketGapVal = ETH_INTERFRAMEGAP_96BIT;
+  macDefaultConf.CarrierSenseDuringTransmit = DISABLE;
+  macDefaultConf.ReceiveOwn = ENABLE;
+  macDefaultConf.LoopbackMode = DISABLE;
+  macDefaultConf.ChecksumOffload = ENABLE;
+  macDefaultConf.RetryTransmission = DISABLE;
+  macDefaultConf.AutomaticPadCRCStrip = DISABLE;
+  macDefaultConf.BackOffLimit = ETH_BACKOFFLIMIT_10;
+  macDefaultConf.DeferralCheck = DISABLE;
+  macDefaultConf.PauseTime = 0x0U;
+  macDefaultConf.ZeroQuantaPause = DISABLE;
+  macDefaultConf.PauseLowThreshold = ETH_PAUSELOWTHRESHOLD_MINUS4;
+  macDefaultConf.ReceiveFlowControl = DISABLE;
+  macDefaultConf.TransmitFlowControl = DISABLE;
+  macDefaultConf.Speed = ETH_SPEED_100M;
+  macDefaultConf.DuplexMode = ETH_FULLDUPLEX_MODE;
+  macDefaultConf.UnicastSlowProtocolPacketDetect = DISABLE;
 
-     /* Initialize MAC address in ethernet MAC */ 
-     ETH_MACAddressConfig(heth, ETH_MAC_ADDRESS0, heth->Init.MACAddr);
+  /* MAC default configuration */
+  ETH_SetMACConfig(heth, &macDefaultConf);
+
+  /*--------------- ETHERNET DMA registers default Configuration --------------*/
+  dmaDefaultConf.DropTCPIPChecksumErrorFrame = ENABLE;
+  dmaDefaultConf.ReceiveStoreForward = ENABLE;
+  dmaDefaultConf.FlushRxPacket = ENABLE;
+  dmaDefaultConf.TransmitStoreForward = ENABLE;
+  dmaDefaultConf.TransmitThresholdControl = ETH_TRANSMITTHRESHOLDCONTROL_64BYTES;
+  dmaDefaultConf.ForwardErrorFrames = DISABLE;
+  dmaDefaultConf.ForwardUndersizedGoodFrames = DISABLE;
+  dmaDefaultConf.ReceiveThresholdControl = ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES;
+  dmaDefaultConf.SecondFrameOperate = ENABLE;
+  dmaDefaultConf.AddressAlignedBeats = ENABLE;
+  dmaDefaultConf.BurstMode = ETH_BURSTLENGTH_FIXED;
+  dmaDefaultConf.RxDMABurstLength = ETH_RXDMABURSTLENGTH_32BEAT;
+  dmaDefaultConf.TxDMABurstLength = ETH_TXDMABURSTLENGTH_32BEAT;
+  dmaDefaultConf.EnhancedDescriptorFormat = ENABLE;
+  dmaDefaultConf.DescriptorSkipLength = 0x0U;
+  dmaDefaultConf.DMAArbitration = ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1;
+
+  /* DMA default configuration */
+  ETH_SetDMAConfig(heth, &dmaDefaultConf);
 }
 
 /**
@@ -2090,8 +2797,8 @@
   *         the configuration information for ETHERNET module
   * @param  MacAddr The MAC address to configure
   *          This parameter can be one of the following values:
-  *             @arg ETH_MAC_Address0: MAC Address0 
-  *             @arg ETH_MAC_Address1: MAC Address1 
+  *             @arg ETH_MAC_Address0: MAC Address0
+  *             @arg ETH_MAC_Address1: MAC Address1
   *             @arg ETH_MAC_Address2: MAC Address2
   *             @arg ETH_MAC_Address3: MAC Address3
   * @param  Addr Pointer to MAC address buffer data (6 bytes)
@@ -2100,194 +2807,290 @@
 static void ETH_MACAddressConfig(ETH_HandleTypeDef *heth, uint32_t MacAddr, uint8_t *Addr)
 {
   uint32_t tmpreg1;
-  
+
   /* Prevent unused argument(s) compilation warning */
   UNUSED(heth);
 
-  /* Check the parameters */
-  assert_param(IS_ETH_MAC_ADDRESS0123(MacAddr));
-  
   /* Calculate the selected MAC address high register */
   tmpreg1 = ((uint32_t)Addr[5U] << 8U) | (uint32_t)Addr[4U];
   /* Load the selected MAC address high register */
   (*(__IO uint32_t *)((uint32_t)(ETH_MAC_ADDR_HBASE + MacAddr))) = tmpreg1;
   /* Calculate the selected MAC address low register */
   tmpreg1 = ((uint32_t)Addr[3U] << 24U) | ((uint32_t)Addr[2U] << 16U) | ((uint32_t)Addr[1U] << 8U) | Addr[0U];
-  
+
   /* Load the selected MAC address low register */
   (*(__IO uint32_t *)((uint32_t)(ETH_MAC_ADDR_LBASE + MacAddr))) = tmpreg1;
 }
 
 /**
-  * @brief  Enables the MAC transmission.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module  
-  * @retval None
-  */
-static void ETH_MACTransmissionEnable(ETH_HandleTypeDef *heth)
-{ 
-  __IO uint32_t tmpreg1 = 0U;
-  
-  /* Enable the MAC transmission */
-  (heth->Instance)->MACCR |= ETH_MACCR_TE;
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->MACCR;
-  ETH_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->MACCR = tmpreg1;
-}
-
-/**
-  * @brief  Disables the MAC transmission.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module  
-  * @retval None
-  */
-static void ETH_MACTransmissionDisable(ETH_HandleTypeDef *heth)
-{ 
-  __IO uint32_t tmpreg1 = 0U;
-  
-  /* Disable the MAC transmission */
-  (heth->Instance)->MACCR &= ~ETH_MACCR_TE;
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->MACCR;
-  ETH_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->MACCR = tmpreg1;
-}
-
-/**
-  * @brief  Enables the MAC reception.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module   
-  * @retval None
-  */
-static void ETH_MACReceptionEnable(ETH_HandleTypeDef *heth)
-{ 
-  __IO uint32_t tmpreg1 = 0U;
-  
-  /* Enable the MAC reception */
-  (heth->Instance)->MACCR |= ETH_MACCR_RE;
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->MACCR;
-  ETH_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->MACCR = tmpreg1;
-}
-
-/**
-  * @brief  Disables the MAC reception.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module   
-  * @retval None
-  */
-static void ETH_MACReceptionDisable(ETH_HandleTypeDef *heth)
-{ 
-  __IO uint32_t tmpreg1 = 0U;
-  
-  /* Disable the MAC reception */
-  (heth->Instance)->MACCR &= ~ETH_MACCR_RE; 
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->MACCR;
-  ETH_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->MACCR = tmpreg1;
-}
-
-/**
-  * @brief  Enables the DMA transmission.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module   
-  * @retval None
-  */
-static void ETH_DMATransmissionEnable(ETH_HandleTypeDef *heth)
-{
-  /* Enable the DMA transmission */
-  (heth->Instance)->DMAOMR |= ETH_DMAOMR_ST;  
-}
-
-/**
-  * @brief  Disables the DMA transmission.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module   
-  * @retval None
-  */
-static void ETH_DMATransmissionDisable(ETH_HandleTypeDef *heth)
-{ 
-  /* Disable the DMA transmission */
-  (heth->Instance)->DMAOMR &= ~ETH_DMAOMR_ST;
-}
-
-/**
-  * @brief  Enables the DMA reception.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module 
-  * @retval None
-  */
-static void ETH_DMAReceptionEnable(ETH_HandleTypeDef *heth)
-{  
-  /* Enable the DMA reception */
-  (heth->Instance)->DMAOMR |= ETH_DMAOMR_SR;  
-}
-
-/**
-  * @brief  Disables the DMA reception.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
-  *         the configuration information for ETHERNET module 
-  * @retval None
-  */
-static void ETH_DMAReceptionDisable(ETH_HandleTypeDef *heth)
-{ 
-  /* Disable the DMA reception */
-  (heth->Instance)->DMAOMR &= ~ETH_DMAOMR_SR;
-}
-
-/**
-  * @brief  Clears the ETHERNET transmit FIFO.
-  * @param  heth pointer to a ETH_HandleTypeDef structure that contains
+  * @brief  Initializes the DMA Tx descriptors.
+  *         called by HAL_ETH_Init() API.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
   *         the configuration information for ETHERNET module
   * @retval None
   */
-static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth)
+static void ETH_DMATxDescListInit(ETH_HandleTypeDef *heth)
 {
-  __IO uint32_t tmpreg1 = 0U;
-  
-  /* Set the Flush Transmit FIFO bit */
-  (heth->Instance)->DMAOMR |= ETH_DMAOMR_FTF;
-  
-  /* Wait until the write operation will be taken into account:
-     at least four TX_CLK/RX_CLK clock cycles */
-  tmpreg1 = (heth->Instance)->DMAOMR;
-  ETH_Delay(ETH_REG_WRITE_DELAY);
-  (heth->Instance)->DMAOMR = tmpreg1;
+  ETH_DMADescTypeDef *dmatxdesc;
+  uint32_t i;
+
+  /* Fill each DMATxDesc descriptor with the right values */
+  for (i = 0; i < (uint32_t)ETH_TX_DESC_CNT; i++)
+  {
+    dmatxdesc = heth->Init.TxDesc + i;
+
+    WRITE_REG(dmatxdesc->DESC0, 0x0);
+    WRITE_REG(dmatxdesc->DESC1, 0x0);
+    WRITE_REG(dmatxdesc->DESC2, 0x0);
+    WRITE_REG(dmatxdesc->DESC3, 0x0);
+
+    WRITE_REG(heth->TxDescList.TxDesc[i], (uint32_t)dmatxdesc);
+
+    /* Set Second Address Chained bit */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_TCH);
+
+    if (i < ((uint32_t)ETH_TX_DESC_CNT - 1U))
+    {
+      WRITE_REG(dmatxdesc->DESC3, (uint32_t)(heth->Init.TxDesc + i + 1U));
+    }
+    else
+    {
+      WRITE_REG(dmatxdesc->DESC3, (uint32_t)(heth->Init.TxDesc));
+    }
+
+    /* Set the DMA Tx descriptors checksum insertion */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL);
+  }
+
+  heth->TxDescList.CurTxDesc = 0;
+
+  /* Set Transmit Descriptor List Address */
+  WRITE_REG(heth->Instance->DMATDLAR, (uint32_t) heth->Init.TxDesc);
 }
 
 /**
-  * @brief  This function provides delay (in milliseconds) based on CPU cycles method.
-  * @param  mdelay specifies the delay time length, in milliseconds.
+  * @brief  Initializes the DMA Rx descriptors in chain mode.
+  *         called by HAL_ETH_Init() API.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
   * @retval None
   */
-static void ETH_Delay(uint32_t mdelay)
+static void ETH_DMARxDescListInit(ETH_HandleTypeDef *heth)
 {
-  __IO uint32_t Delay = mdelay * (SystemCoreClock / 8U / 1000U);
-  do 
+  ETH_DMADescTypeDef *dmarxdesc;
+  uint32_t i;
+
+  for (i = 0; i < (uint32_t)ETH_RX_DESC_CNT; i++)
   {
-    __NOP();
-  } 
-  while (Delay --);
+    dmarxdesc =  heth->Init.RxDesc + i;
+
+    WRITE_REG(dmarxdesc->DESC0, 0x0);
+    WRITE_REG(dmarxdesc->DESC1, 0x0);
+    WRITE_REG(dmarxdesc->DESC2, 0x0);
+    WRITE_REG(dmarxdesc->DESC3, 0x0);
+    WRITE_REG(dmarxdesc->BackupAddr0, 0x0);
+    WRITE_REG(dmarxdesc->BackupAddr1, 0x0);
+
+    /* Set Own bit of the Rx descriptor Status */
+    dmarxdesc->DESC0 = ETH_DMARXDESC_OWN;
+
+    /* Set Buffer1 size and Second Address Chained bit */
+    dmarxdesc->DESC1 = ETH_DMARXDESC_RCH | ETH_RX_BUF_SIZE;
+
+    /* Enable Ethernet DMA Rx Descriptor interrupt */
+    dmarxdesc->DESC1 &= ~ETH_DMARXDESC_DIC;
+
+    /* Set Rx descritors addresses */
+    WRITE_REG(heth->RxDescList.RxDesc[i], (uint32_t)dmarxdesc);
+
+    if (i < ((uint32_t)ETH_RX_DESC_CNT - 1U))
+    {
+      WRITE_REG(dmarxdesc->DESC3, (uint32_t)(heth->Init.RxDesc + i + 1U));
+    }
+    else
+    {
+      WRITE_REG(dmarxdesc->DESC3, (uint32_t)(heth->Init.RxDesc));
+    }
+  }
+
+  WRITE_REG(heth->RxDescList.RxDescIdx, 0);
+  WRITE_REG(heth->RxDescList.RxDescCnt, 0);
+  WRITE_REG(heth->RxDescList.RxBuildDescIdx, 0);
+  WRITE_REG(heth->RxDescList.RxBuildDescCnt, 0);
+  WRITE_REG(heth->RxDescList.ItMode, 0);
+
+  /* Set Receive Descriptor List Address */
+  WRITE_REG(heth->Instance->DMARDLAR, (uint32_t) heth->Init.RxDesc);
+}
+
+/**
+  * @brief  Prepare Tx DMA descriptor before transmission.
+  *         called by HAL_ETH_Transmit_IT and HAL_ETH_Transmit_IT() API.
+  * @param  heth: pointer to a ETH_HandleTypeDef structure that contains
+  *         the configuration information for ETHERNET module
+  * @param  pTxConfig: Tx packet configuration
+  * @param  ItMode: Enable or disable Tx EOT interrept
+  * @retval Status
+  */
+static uint32_t ETH_Prepare_Tx_Descriptors(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig, uint32_t ItMode)
+{
+  ETH_TxDescListTypeDef *dmatxdesclist = &heth->TxDescList;
+  uint32_t descidx = dmatxdesclist->CurTxDesc;
+  uint32_t firstdescidx = dmatxdesclist->CurTxDesc;
+  uint32_t idx;
+  uint32_t descnbr = 0;
+  ETH_DMADescTypeDef *dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];
+
+  ETH_BufferTypeDef  *txbuffer = pTxConfig->TxBuffer;
+  uint32_t           bd_count = 0;
+
+  /* Current Tx Descriptor Owned by DMA: cannot be used by the application  */
+  if ((READ_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_OWN) == ETH_DMATXDESC_OWN)
+      || (dmatxdesclist->PacketAddress[descidx] != NULL))
+  {
+    return HAL_ETH_ERROR_BUSY;
+  }
+
+
+  descnbr += 1U;
+
+  /* Set header or buffer 1 address */
+  WRITE_REG(dmatxdesc->DESC2, (uint32_t)txbuffer->buffer);
+
+  /* Set header or buffer 1 Length */
+  MODIFY_REG(dmatxdesc->DESC1, ETH_DMATXDESC_TBS1, txbuffer->len);
+
+  if (READ_BIT(pTxConfig->Attributes, ETH_TX_PACKETS_FEATURES_CSUM) != 0U)
+  {
+    MODIFY_REG(dmatxdesc->DESC0, ETH_DMATXDESC_CIC, pTxConfig->ChecksumCtrl);
+  }
+
+  if (READ_BIT(pTxConfig->Attributes, ETH_TX_PACKETS_FEATURES_CRCPAD) != 0U)
+  {
+    MODIFY_REG(dmatxdesc->DESC0, ETH_CRC_PAD_DISABLE, pTxConfig->CRCPadCtrl);
+  }
+
+
+  if (READ_BIT(pTxConfig->Attributes, ETH_TX_PACKETS_FEATURES_VLANTAG) != 0U)
+  {
+    /* Set Vlan Type */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_VF);
+  }
+
+  /* Mark it as First Descriptor */
+  SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_FS);
+
+  /* Ensure rest of descriptor is written to RAM before the OWN bit */
+  __DMB();
+  /* set OWN bit of FIRST descriptor */
+  SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_OWN);
+
+  /* only if the packet is split into more than one descriptors > 1 */
+  while (txbuffer->next != NULL)
+  {
+    /* Clear the LD bit of previous descriptor */
+    CLEAR_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_LS);
+    if (ItMode != ((uint32_t)RESET))
+    {
+      /* Set Interrupt on completion bit */
+      SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_IC);
+    }
+    else
+    {
+      /* Clear Interrupt on completion bit */
+      CLEAR_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_IC);
+    }
+    /* Increment current tx descriptor index */
+    INCR_TX_DESC_INDEX(descidx, 1U);
+    /* Get current descriptor address */
+    dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];
+
+    /* Clear the FD bit of new Descriptor */
+    CLEAR_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_FS);
+
+    /* Current Tx Descriptor Owned by DMA: cannot be used by the application  */
+    if ((READ_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_OWN) == ETH_DMATXDESC_OWN)
+        || (dmatxdesclist->PacketAddress[descidx] != NULL))
+    {
+      descidx = firstdescidx;
+      dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];
+
+      /* clear previous desc own bit */
+      for (idx = 0; idx < descnbr; idx ++)
+      {
+        /* Ensure rest of descriptor is written to RAM before the OWN bit */
+        __DMB();
+
+        CLEAR_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_OWN);
+
+        /* Increment current tx descriptor index */
+        INCR_TX_DESC_INDEX(descidx, 1U);
+        /* Get current descriptor address */
+        dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];
+      }
+
+      return HAL_ETH_ERROR_BUSY;
+    }
+
+    descnbr += 1U;
+
+    /* Get the next Tx buffer in the list */
+    txbuffer = txbuffer->next;
+
+    /* Set header or buffer 1 address */
+    WRITE_REG(dmatxdesc->DESC2, (uint32_t)txbuffer->buffer);
+
+    /* Set header or buffer 1 Length */
+    MODIFY_REG(dmatxdesc->DESC1, ETH_DMATXDESC_TBS1, txbuffer->len);
+
+    bd_count += 1U;
+
+    /* Ensure rest of descriptor is written to RAM before the OWN bit */
+    __DMB();
+    /* Set Own bit */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_OWN);
+  }
+
+  if (ItMode != ((uint32_t)RESET))
+  {
+    /* Set Interrupt on completion bit */
+    SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_IC);
+  }
+  else
+  {
+    /* Clear Interrupt on completion bit */
+    CLEAR_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_IC);
+  }
+
+  /* Mark it as LAST descriptor */
+  SET_BIT(dmatxdesc->DESC0, ETH_DMATXDESC_LS);
+  /* Save the current packet address to expose it to the application */
+  dmatxdesclist->PacketAddress[descidx] = dmatxdesclist->CurrentPacketAddress;
+
+  dmatxdesclist->CurTxDesc = descidx;
+
+  /* disable the interrupt */
+  __disable_irq();
+
+  dmatxdesclist->BuffersInUse += bd_count + 1U;
+
+  /* Enable interrupts back */
+  __enable_irq();
+
+
+  /* Return function status */
+  return HAL_ETH_ERROR_NONE;
 }
 
 #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
 static void ETH_InitCallbacksToDefault(ETH_HandleTypeDef *heth)
 {
   /* Init the ETH Callback settings */
-  heth->TxCpltCallback       = HAL_ETH_TxCpltCallback; /* Legacy weak TxCpltCallback   */
-  heth->RxCpltCallback       = HAL_ETH_RxCpltCallback; /* Legacy weak RxCpltCallback   */
-  heth->DMAErrorCallback     = HAL_ETH_ErrorCallback;  /* Legacy weak DMAErrorCallback */
+  heth->TxCpltCallback   = HAL_ETH_TxCpltCallback;    /* Legacy weak TxCpltCallback   */
+  heth->RxCpltCallback   = HAL_ETH_RxCpltCallback;    /* Legacy weak RxCpltCallback   */
+  heth->ErrorCallback    = HAL_ETH_ErrorCallback;     /* Legacy weak ErrorCallback */
+  heth->PMTCallback      = HAL_ETH_PMTCallback;       /* Legacy weak PMTCallback      */
+  heth->WakeUpCallback   = HAL_ETH_WakeUpCallback;    /* Legacy weak WakeUpCallback   */
 }
 #endif /* USE_HAL_ETH_REGISTER_CALLBACKS */
 
@@ -2295,15 +3098,15 @@
   * @}
   */
 
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx ||\
-          STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+/**
+  * @}
+  */
+
+#endif /* ETH */
+
 #endif /* HAL_ETH_MODULE_ENABLED */
-/**
-  * @}
-  */
 
 /**
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_exti.c b/Src/stm32f4xx_hal_exti.c
index 099bf1e..04b5215 100644
--- a/Src/stm32f4xx_hal_exti.c
+++ b/Src/stm32f4xx_hal_exti.c
@@ -8,6 +8,17 @@
   *           + Initialization and de-initialization functions
   *           + IO operation functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2018 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### EXTI Peripheral features #####
@@ -69,18 +80,6 @@
     (#) Generate software interrupt using HAL_EXTI_GenerateSWI().
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -301,8 +300,8 @@
     {
       assert_param(IS_EXTI_GPIO_PIN(linepos));
 
-      regval = SYSCFG->EXTICR[linepos >> 2u];
-      pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 24);
+      regval = (SYSCFG->EXTICR[linepos >> 2u] << 16u );
+      pExtiConfig->GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 28u);
     }
   }
 
@@ -546,4 +545,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_flash.c b/Src/stm32f4xx_hal_flash.c
index 69b47a6..2830da0 100644
--- a/Src/stm32f4xx_hal_flash.c
+++ b/Src/stm32f4xx_hal_flash.c
@@ -63,14 +63,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -775,4 +773,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_flash_ex.c b/Src/stm32f4xx_hal_flash_ex.c
index 5c72eaa..d99eace 100644
--- a/Src/stm32f4xx_hal_flash_ex.c
+++ b/Src/stm32f4xx_hal_flash_ex.c
@@ -49,14 +49,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -1347,4 +1345,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_flash_ramfunc.c b/Src/stm32f4xx_hal_flash_ramfunc.c
index 12db458..952595b 100644
--- a/Src/stm32f4xx_hal_flash_ramfunc.c
+++ b/Src/stm32f4xx_hal_flash_ramfunc.c
@@ -34,14 +34,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -172,4 +170,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_fmpi2c.c b/Src/stm32f4xx_hal_fmpi2c.c
index 3064759..d079dd0 100644
--- a/Src/stm32f4xx_hal_fmpi2c.c
+++ b/Src/stm32f4xx_hal_fmpi2c.c
@@ -9,6 +9,17 @@
   *           + IO operation functions
   *           + Peripheral State and Errors functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -66,22 +77,22 @@
     ===================================
     [..]
       (+) Transmit in master mode an amount of data in non-blocking mode using HAL_FMPI2C_Master_Transmit_IT()
-      (+) At transmission end of transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
+      (+) At transmission end of transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
       (+) Receive in master mode an amount of data in non-blocking mode using HAL_FMPI2C_Master_Receive_IT()
-      (+) At reception end of transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
+      (+) At reception end of transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
       (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_FMPI2C_Slave_Transmit_IT()
-      (+) At transmission end of transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
+      (+) At transmission end of transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
       (+) Receive in slave mode an amount of data in non-blocking mode using HAL_FMPI2C_Slave_Receive_IT()
-      (+) At reception end of transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
-      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
+      (+) At reception end of transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
+      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
       (+) Abort a master FMPI2C process communication with Interrupt using HAL_FMPI2C_Master_Abort_IT()
-      (+) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
+      (+) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
       (+) Discard a slave FMPI2C process communication using __HAL_FMPI2C_GENERATE_NACK() macro.
            This action will inform Master to generate a Stop condition to discard the communication.
 
@@ -94,12 +105,14 @@
     [..]
       (+) A specific option field manage the different steps of a sequential transfer
       (+) Option field values are defined through FMPI2C_XFEROPTIONS and are listed below:
-      (++) FMPI2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfaces in no sequential mode
+      (++) FMPI2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfaces in
+           no sequential mode
       (++) FMPI2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address
                             and data to transfer without a final stop condition
-      (++) FMPI2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with start condition, address
-                            and data to transfer without a final stop condition, an then permit a call the same master sequential interface
-                            several times (like HAL_FMPI2C_Master_Seq_Transmit_IT() then HAL_FMPI2C_Master_Seq_Transmit_IT()
+      (++) FMPI2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with
+                            start condition, address and data to transfer without a final stop condition,
+                            an then permit a call the same master sequential interface several times
+                            (like HAL_FMPI2C_Master_Seq_Transmit_IT() then HAL_FMPI2C_Master_Seq_Transmit_IT()
                             or HAL_FMPI2C_Master_Seq_Transmit_DMA() then HAL_FMPI2C_Master_Seq_Transmit_DMA())
       (++) FMPI2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address
                             and with new data to transfer if the direction change or manage only the new data to
@@ -135,32 +148,34 @@
                             generation of STOP condition.
 
       (+) Different sequential FMPI2C interfaces are listed below:
-      (++) Sequential transmit in master FMPI2C mode an amount of data in non-blocking mode using HAL_FMPI2C_Master_Seq_Transmit_IT()
-            or using HAL_FMPI2C_Master_Seq_Transmit_DMA()
-      (+++) At transmission end of current frame transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
-      (++) Sequential receive in master FMPI2C mode an amount of data in non-blocking mode using HAL_FMPI2C_Master_Seq_Receive_IT()
-            or using HAL_FMPI2C_Master_Seq_Receive_DMA()
-      (+++) At reception end of current frame transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
+      (++) Sequential transmit in master FMPI2C mode an amount of data in non-blocking mode using
+            HAL_FMPI2C_Master_Seq_Transmit_IT() or using HAL_FMPI2C_Master_Seq_Transmit_DMA()
+      (+++) At transmission end of current frame transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and
+            users can add their own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
+      (++) Sequential receive in master FMPI2C mode an amount of data in non-blocking mode using
+            HAL_FMPI2C_Master_Seq_Receive_IT() or using HAL_FMPI2C_Master_Seq_Receive_DMA()
+      (+++) At reception end of current frame transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
       (++) Abort a master IT or DMA FMPI2C process communication with Interrupt using HAL_FMPI2C_Master_Abort_IT()
-      (+++) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
-      (++) Enable/disable the Address listen mode in slave FMPI2C mode using HAL_FMPI2C_EnableListen_IT() HAL_FMPI2C_DisableListen_IT()
-      (+++) When address slave FMPI2C match, HAL_FMPI2C_AddrCallback() is executed and user can
-           add his own code to check the Address Match Code and the transmission direction request by master (Write/Read).
-      (+++) At Listen mode end HAL_FMPI2C_ListenCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ListenCpltCallback()
-      (++) Sequential transmit in slave FMPI2C mode an amount of data in non-blocking mode using HAL_FMPI2C_Slave_Seq_Transmit_IT()
-            or using HAL_FMPI2C_Slave_Seq_Transmit_DMA()
-      (+++) At transmission end of current frame transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
-      (++) Sequential receive in slave FMPI2C mode an amount of data in non-blocking mode using HAL_FMPI2C_Slave_Seq_Receive_IT()
-            or using HAL_FMPI2C_Slave_Seq_Receive_DMA()
-      (+++) At reception end of current frame transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
-      (++) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
+      (+++) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
+      (++) Enable/disable the Address listen mode in slave FMPI2C mode using HAL_FMPI2C_EnableListen_IT()
+            HAL_FMPI2C_DisableListen_IT()
+      (+++) When address slave FMPI2C match, HAL_FMPI2C_AddrCallback() is executed and users can
+           add their own code to check the Address Match Code and the transmission direction request by master
+           (Write/Read).
+      (+++) At Listen mode end HAL_FMPI2C_ListenCpltCallback() is executed and users can
+          add their own code by customization of function pointer HAL_FMPI2C_ListenCpltCallback()
+      (++) Sequential transmit in slave FMPI2C mode an amount of data in non-blocking mode using
+            HAL_FMPI2C_Slave_Seq_Transmit_IT() or using HAL_FMPI2C_Slave_Seq_Transmit_DMA()
+      (+++) At transmission end of current frame transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and
+            users can add their own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
+      (++) Sequential receive in slave FMPI2C mode an amount of data in non-blocking mode using
+            HAL_FMPI2C_Slave_Seq_Receive_IT() or using HAL_FMPI2C_Slave_Seq_Receive_DMA()
+      (+++) At reception end of current frame transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
+      (++) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
       (++) Discard a slave FMPI2C process communication using __HAL_FMPI2C_GENERATE_NACK() macro.
            This action will inform Master to generate a Stop condition to discard the communication.
 
@@ -169,39 +184,39 @@
     [..]
       (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address using
           HAL_FMPI2C_Mem_Write_IT()
-      (+) At Memory end of write transfer, HAL_FMPI2C_MemTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MemTxCpltCallback()
+      (+) At Memory end of write transfer, HAL_FMPI2C_MemTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MemTxCpltCallback()
       (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address using
           HAL_FMPI2C_Mem_Read_IT()
-      (+) At Memory end of read transfer, HAL_FMPI2C_MemRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MemRxCpltCallback()
-      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
+      (+) At Memory end of read transfer, HAL_FMPI2C_MemRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MemRxCpltCallback()
+      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
 
     *** DMA mode IO operation ***
     ==============================
     [..]
       (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
           HAL_FMPI2C_Master_Transmit_DMA()
-      (+) At transmission end of transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
+      (+) At transmission end of transfer, HAL_FMPI2C_MasterTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MasterTxCpltCallback()
       (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
           HAL_FMPI2C_Master_Receive_DMA()
-      (+) At reception end of transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
+      (+) At reception end of transfer, HAL_FMPI2C_MasterRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MasterRxCpltCallback()
       (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
           HAL_FMPI2C_Slave_Transmit_DMA()
-      (+) At transmission end of transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
+      (+) At transmission end of transfer, HAL_FMPI2C_SlaveTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_SlaveTxCpltCallback()
       (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
           HAL_FMPI2C_Slave_Receive_DMA()
-      (+) At reception end of transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
-      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
+      (+) At reception end of transfer, HAL_FMPI2C_SlaveRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_SlaveRxCpltCallback()
+      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
       (+) Abort a master FMPI2C process communication with Interrupt using HAL_FMPI2C_Master_Abort_IT()
-      (+) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
+      (+) End of abort process, HAL_FMPI2C_AbortCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_AbortCpltCallback()
       (+) Discard a slave FMPI2C process communication using __HAL_FMPI2C_GENERATE_NACK() macro.
            This action will inform Master to generate a Stop condition to discard the communication.
 
@@ -210,14 +225,14 @@
     [..]
       (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
           HAL_FMPI2C_Mem_Write_DMA()
-      (+) At Memory end of write transfer, HAL_FMPI2C_MemTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MemTxCpltCallback()
+      (+) At Memory end of write transfer, HAL_FMPI2C_MemTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MemTxCpltCallback()
       (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
           HAL_FMPI2C_Mem_Read_DMA()
-      (+) At Memory end of read transfer, HAL_FMPI2C_MemRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_MemRxCpltCallback()
-      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
+      (+) At Memory end of read transfer, HAL_FMPI2C_MemRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_MemRxCpltCallback()
+      (+) In case of transfer Error, HAL_FMPI2C_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPI2C_ErrorCallback()
 
 
      *** FMPI2C HAL driver macros list ***
@@ -302,18 +317,6 @@
        (@) You can refer to the FMPI2C HAL driver header file for more useful macros
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -424,33 +427,33 @@
 
 /* Private functions to handle IT transfer */
 static HAL_StatusTypeDef FMPI2C_RequestMemoryWrite(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,
-                                                   uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
-                                                   uint32_t Tickstart);
+                                                uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
+                                                uint32_t Tickstart);
 static HAL_StatusTypeDef FMPI2C_RequestMemoryRead(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,
-                                                  uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
-                                                  uint32_t Tickstart);
+                                               uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
+                                               uint32_t Tickstart);
 
 /* Private functions for FMPI2C transfer IRQ handler */
 static HAL_StatusTypeDef FMPI2C_Master_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                              uint32_t ITSources);
+                                           uint32_t ITSources);
 static HAL_StatusTypeDef FMPI2C_Slave_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                             uint32_t ITSources);
+                                          uint32_t ITSources);
 static HAL_StatusTypeDef FMPI2C_Master_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                               uint32_t ITSources);
+                                            uint32_t ITSources);
 static HAL_StatusTypeDef FMPI2C_Slave_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                              uint32_t ITSources);
+                                           uint32_t ITSources);
 
 /* Private functions to handle flags during polling transfer */
 static HAL_StatusTypeDef FMPI2C_WaitOnFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Flag, FlagStatus Status,
                                                     uint32_t Timeout, uint32_t Tickstart);
 static HAL_StatusTypeDef FMPI2C_WaitOnTXISFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart);
+                                                        uint32_t Tickstart);
 static HAL_StatusTypeDef FMPI2C_WaitOnRXNEFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart);
+                                                        uint32_t Tickstart);
 static HAL_StatusTypeDef FMPI2C_WaitOnSTOPFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart);
-static HAL_StatusTypeDef FMPI2C_IsAcknowledgeFailed(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                    uint32_t Tickstart);
+                                                        uint32_t Tickstart);
+static HAL_StatusTypeDef FMPI2C_IsErrorOccurred(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
+                                             uint32_t Tickstart);
 
 /* Private functions to centralize the enable/disable of Interrupts */
 static void FMPI2C_Enable_IRQ(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t InterruptRequest);
@@ -463,8 +466,8 @@
 static void FMPI2C_Flush_TXDR(FMPI2C_HandleTypeDef *hfmpi2c);
 
 /* Private function to handle  start, restart or stop a transfer */
-static void FMPI2C_TransferConfig(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode, 
-                                  uint32_t Request);
+static void FMPI2C_TransferConfig(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode,
+                               uint32_t Request);
 
 /* Private function to Convert Specific options */
 static void FMPI2C_ConvertOtherXferOptions(FMPI2C_HandleTypeDef *hfmpi2c);
@@ -603,7 +606,7 @@
 
   /* Configure FMPI2Cx: Dual mode and Own Address2 */
   hfmpi2c->Instance->OAR2 = (hfmpi2c->Init.DualAddressMode | hfmpi2c->Init.OwnAddress2 | \
-                             (hfmpi2c->Init.OwnAddress2Masks << 8));
+                          (hfmpi2c->Init.OwnAddress2Masks << 8));
 
   /*---------------------------- FMPI2Cx CR1 Configuration ----------------------*/
   /* Configure FMPI2Cx: Generalcall and NoStretch mode */
@@ -1110,7 +1113,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t *pData,
-                                             uint16_t Size, uint32_t Timeout)
+                                          uint16_t Size, uint32_t Timeout)
 {
   uint32_t tickstart;
 
@@ -1142,13 +1145,13 @@
     {
       hfmpi2c->XferSize = MAX_NBYTE_SIZE;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                            FMPI2C_GENERATE_START_WRITE);
+                         FMPI2C_GENERATE_START_WRITE);
     }
     else
     {
       hfmpi2c->XferSize = hfmpi2c->XferCount;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_WRITE);
+                         FMPI2C_GENERATE_START_WRITE);
     }
 
     while (hfmpi2c->XferCount > 0U)
@@ -1179,13 +1182,13 @@
         {
           hfmpi2c->XferSize = MAX_NBYTE_SIZE;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
         else
         {
           hfmpi2c->XferSize = hfmpi2c->XferCount;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
       }
     }
@@ -1229,7 +1232,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t *pData,
-                                            uint16_t Size, uint32_t Timeout)
+                                         uint16_t Size, uint32_t Timeout)
 {
   uint32_t tickstart;
 
@@ -1261,13 +1264,13 @@
     {
       hfmpi2c->XferSize = MAX_NBYTE_SIZE;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
     }
     else
     {
       hfmpi2c->XferSize = hfmpi2c->XferCount;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
     }
 
     while (hfmpi2c->XferCount > 0U)
@@ -1299,13 +1302,13 @@
         {
           hfmpi2c->XferSize = MAX_NBYTE_SIZE;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
         else
         {
           hfmpi2c->XferSize = hfmpi2c->XferCount;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
       }
     }
@@ -1347,7 +1350,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t Size,
-                                            uint32_t Timeout)
+                                         uint32_t Timeout)
 {
   uint32_t tickstart;
 
@@ -1485,7 +1488,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t Size,
-                                           uint32_t Timeout)
+                                        uint32_t Timeout)
 {
   uint32_t tickstart;
 
@@ -1967,7 +1970,7 @@
       /* Send Slave Address */
       /* Set NBYTES to write and generate START condition */
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_WRITE);
+                         FMPI2C_GENERATE_START_WRITE);
 
       /* Process Unlocked */
       __HAL_UNLOCK(hfmpi2c);
@@ -2114,7 +2117,7 @@
       /* Send Slave Address */
       /* Set NBYTES to read and generate START condition */
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
 
       /* Process Unlocked */
       __HAL_UNLOCK(hfmpi2c);
@@ -2442,13 +2445,13 @@
         {
           hfmpi2c->XferSize = MAX_NBYTE_SIZE;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
         else
         {
           hfmpi2c->XferSize = hfmpi2c->XferCount;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
       }
 
@@ -2544,13 +2547,13 @@
     {
       hfmpi2c->XferSize = MAX_NBYTE_SIZE;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
     }
     else
     {
       hfmpi2c->XferSize = hfmpi2c->XferCount;
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
     }
 
     do
@@ -2582,13 +2585,13 @@
         {
           hfmpi2c->XferSize = MAX_NBYTE_SIZE;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t) hfmpi2c->XferSize, FMPI2C_RELOAD_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
         else
         {
           hfmpi2c->XferSize = hfmpi2c->XferCount;
           FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                                FMPI2C_NO_STARTSTOP);
+                             FMPI2C_NO_STARTSTOP);
         }
       }
     } while (hfmpi2c->XferCount > 0U);
@@ -3108,7 +3111,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPI2C_IsDeviceReady(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint32_t Trials,
-                                           uint32_t Timeout)
+                                        uint32_t Timeout)
 {
   uint32_t tickstart;
 
@@ -3289,7 +3292,7 @@
        do not generate Restart Condition */
     /* Mean Previous state is same as current state */
     if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_TX) && \
-      (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
+        (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
     {
       xferrequest = FMPI2C_NO_STARTSTOP;
     }
@@ -3377,7 +3380,7 @@
        do not generate Restart Condition */
     /* Mean Previous state is same as current state */
     if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_TX) && \
-      (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
+        (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
     {
       xferrequest = FMPI2C_NO_STARTSTOP;
     }
@@ -3469,7 +3472,7 @@
       /* Send Slave Address */
       /* Set NBYTES to write and generate START condition */
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_WRITE);
+                         FMPI2C_GENERATE_START_WRITE);
 
       /* Process Unlocked */
       __HAL_UNLOCK(hfmpi2c);
@@ -3544,7 +3547,7 @@
        do not generate Restart Condition */
     /* Mean Previous state is same as current state */
     if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_RX) && \
-      (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
+        (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
     {
       xferrequest = FMPI2C_NO_STARTSTOP;
     }
@@ -3632,7 +3635,7 @@
        do not generate Restart Condition */
     /* Mean Previous state is same as current state */
     if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_RX) && \
-      (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
+        (IS_FMPI2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
     {
       xferrequest = FMPI2C_NO_STARTSTOP;
     }
@@ -3724,7 +3727,7 @@
       /* Send Slave Address */
       /* Set NBYTES to read and generate START condition */
       FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE,
-                            FMPI2C_GENERATE_START_READ);
+                         FMPI2C_GENERATE_START_READ);
 
       /* Process Unlocked */
       __HAL_UNLOCK(hfmpi2c);
@@ -4453,7 +4456,7 @@
 
   /* FMPI2C Bus error interrupt occurred ------------------------------------*/
   if ((FMPI2C_CHECK_FLAG(itflags, FMPI2C_FLAG_BERR) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
   {
     hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_BERR;
 
@@ -4463,7 +4466,7 @@
 
   /* FMPI2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
   if ((FMPI2C_CHECK_FLAG(itflags, FMPI2C_FLAG_OVR) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
   {
     hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_OVR;
 
@@ -4473,7 +4476,7 @@
 
   /* FMPI2C Arbitration Loss error interrupt occurred -------------------------------------*/
   if ((FMPI2C_CHECK_FLAG(itflags, FMPI2C_FLAG_ARLO) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(itsources, FMPI2C_IT_ERRI) != RESET))
   {
     hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_ARLO;
 
@@ -4728,7 +4731,7 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_Master_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                              uint32_t ITSources)
+                                           uint32_t ITSources)
 {
   uint16_t devaddress;
   uint32_t tmpITFlags = ITFlags;
@@ -4737,7 +4740,7 @@
   __HAL_LOCK(hfmpi2c);
 
   if ((FMPI2C_CHECK_FLAG(tmpITFlags, FMPI2C_FLAG_AF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
   {
     /* Clear NACK Flag */
     __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF);
@@ -4795,12 +4798,12 @@
         if (hfmpi2c->XferOptions != FMPI2C_NO_OPTION_FRAME)
         {
           FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize,
-                                hfmpi2c->XferOptions, FMPI2C_NO_STARTSTOP);
+                             hfmpi2c->XferOptions, FMPI2C_NO_STARTSTOP);
         }
         else
         {
           FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize,
-                                FMPI2C_AUTOEND_MODE, FMPI2C_NO_STARTSTOP);
+                             FMPI2C_AUTOEND_MODE, FMPI2C_NO_STARTSTOP);
         }
       }
     }
@@ -4853,7 +4856,7 @@
   }
 
   if ((FMPI2C_CHECK_FLAG(tmpITFlags, FMPI2C_FLAG_STOPF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
   {
     /* Call FMPI2C Master complete process */
     FMPI2C_ITMasterCplt(hfmpi2c, tmpITFlags);
@@ -4874,7 +4877,7 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_Slave_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                             uint32_t ITSources)
+                                          uint32_t ITSources)
 {
   uint32_t tmpoptions = hfmpi2c->XferOptions;
   uint32_t tmpITFlags = ITFlags;
@@ -4884,14 +4887,14 @@
 
   /* Check if STOPF is set */
   if ((FMPI2C_CHECK_FLAG(tmpITFlags, FMPI2C_FLAG_STOPF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
   {
     /* Call FMPI2C Slave complete process */
     FMPI2C_ITSlaveCplt(hfmpi2c, tmpITFlags);
   }
 
   if ((FMPI2C_CHECK_FLAG(tmpITFlags, FMPI2C_FLAG_AF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
   {
     /* Check that FMPI2C transfer finished */
     /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
@@ -5015,7 +5018,7 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_Master_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                               uint32_t ITSources)
+                                            uint32_t ITSources)
 {
   uint16_t devaddress;
   uint32_t xfermode;
@@ -5024,7 +5027,7 @@
   __HAL_LOCK(hfmpi2c);
 
   if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_AF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
   {
     /* Clear NACK Flag */
     __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF);
@@ -5041,7 +5044,7 @@
     FMPI2C_Flush_TXDR(hfmpi2c);
   }
   else if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_TCR) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_TCI) != RESET))
+           (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_TCI) != RESET))
   {
     /* Disable TC interrupt */
     __HAL_FMPI2C_DISABLE_IT(hfmpi2c, FMPI2C_IT_TCI);
@@ -5103,7 +5106,7 @@
     }
   }
   else if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_TC) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_TCI) != RESET))
+           (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_TCI) != RESET))
   {
     if (hfmpi2c->XferCount == 0U)
     {
@@ -5155,7 +5158,7 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_Slave_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
-                                              uint32_t ITSources)
+                                           uint32_t ITSources)
 {
   uint32_t tmpoptions = hfmpi2c->XferOptions;
   uint32_t treatdmanack = 0U;
@@ -5166,14 +5169,14 @@
 
   /* Check if STOPF is set */
   if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_STOPF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_STOPI) != RESET))
   {
     /* Call FMPI2C Slave complete process */
     FMPI2C_ITSlaveCplt(hfmpi2c, ITFlags);
   }
 
   if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_AF) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
+      (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_NACKI) != RESET))
   {
     /* Check that FMPI2C transfer finished */
     /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
@@ -5272,7 +5275,7 @@
     }
   }
   else if ((FMPI2C_CHECK_FLAG(ITFlags, FMPI2C_FLAG_ADDR) != RESET) && \
-    (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_ADDRI) != RESET))
+           (FMPI2C_CHECK_IT_SOURCE(ITSources, FMPI2C_IT_ADDRI) != RESET))
   {
     FMPI2C_ITAddrCplt(hfmpi2c, ITFlags);
   }
@@ -5300,8 +5303,8 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_RequestMemoryWrite(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,
-                                                   uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
-                                                   uint32_t Tickstart)
+                                                uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
+                                                uint32_t Tickstart)
 {
   FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_RELOAD_MODE, FMPI2C_GENERATE_START_WRITE);
 
@@ -5355,8 +5358,8 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_RequestMemoryRead(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,
-                                                  uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
-                                                  uint32_t Tickstart)
+                                               uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout,
+                                               uint32_t Tickstart)
 {
   FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_SOFTEND_MODE, FMPI2C_GENERATE_START_WRITE);
 
@@ -6363,11 +6366,12 @@
 }
 
 /**
-  * @brief  This function handles FMPI2C Communication Timeout.
+  * @brief  This function handles FMPI2C Communication Timeout. It waits
+  *                until a flag is no longer in the specified status.
   * @param  hfmpi2c Pointer to a FMPI2C_HandleTypeDef structure that contains
   *                the configuration information for the specified FMPI2C.
   * @param  Flag Specifies the FMPI2C flag to check.
-  * @param  Status The new Flag status (SET or RESET).
+  * @param  Status The actual Flag status (SET or RESET).
   * @param  Timeout Timeout duration
   * @param  Tickstart Tick start value
   * @retval HAL status
@@ -6404,12 +6408,12 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_WaitOnTXISFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart)
+                                                        uint32_t Tickstart)
 {
   while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_TXIS) == RESET)
   {
-    /* Check if a NACK is detected */
-    if (FMPI2C_IsAcknowledgeFailed(hfmpi2c, Timeout, Tickstart) != HAL_OK)
+    /* Check if an error is detected */
+    if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK)
     {
       return HAL_ERROR;
     }
@@ -6442,12 +6446,12 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_WaitOnSTOPFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart)
+                                                        uint32_t Tickstart)
 {
   while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET)
   {
-    /* Check if a NACK is detected */
-    if (FMPI2C_IsAcknowledgeFailed(hfmpi2c, Timeout, Tickstart) != HAL_OK)
+    /* Check if an error is detected */
+    if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK)
     {
       return HAL_ERROR;
     }
@@ -6477,12 +6481,12 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPI2C_WaitOnRXNEFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
-                                                           uint32_t Tickstart)
+                                                        uint32_t Tickstart)
 {
   while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_RXNE) == RESET)
   {
-    /* Check if a NACK is detected */
-    if (FMPI2C_IsAcknowledgeFailed(hfmpi2c, Timeout, Tickstart) != HAL_OK)
+    /* Check if an error is detected */
+    if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK)
     {
       return HAL_ERROR;
     }
@@ -6533,16 +6537,20 @@
 }
 
 /**
-  * @brief  This function handles Acknowledge failed detection during an FMPI2C Communication.
+  * @brief  This function handles errors detection during an FMPI2C Communication.
   * @param  hfmpi2c Pointer to a FMPI2C_HandleTypeDef structure that contains
   *                the configuration information for the specified FMPI2C.
   * @param  Timeout Timeout duration
   * @param  Tickstart Tick start value
   * @retval HAL status
   */
-static HAL_StatusTypeDef FMPI2C_IsAcknowledgeFailed(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout, uint32_t Tickstart)
+static HAL_StatusTypeDef FMPI2C_IsErrorOccurred(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout, uint32_t Tickstart)
 {
-  if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF) == SET)
+  HAL_StatusTypeDef status = HAL_OK;
+  uint32_t itflag   = hfmpi2c->Instance->ISR;
+  uint32_t error_code = 0;
+
+  if (HAL_IS_BIT_SET(itflag, FMPI2C_FLAG_AF))
   {
     /* In case of Soft End condition, generate the STOP condition */
     if (FMPI2C_GET_STOP_MODE(hfmpi2c) != FMPI2C_AUTOEND_MODE)
@@ -6550,49 +6558,92 @@
       /* Generate Stop */
       hfmpi2c->Instance->CR2 |= FMPI2C_CR2_STOP;
     }
-    /* Wait until STOP Flag is reset */
+
+    /* Wait until STOP Flag is set or timeout occurred */
     /* AutoEnd should be initiate after AF */
-    while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET)
+    while ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
     {
       /* Check for the Timeout */
       if (Timeout != HAL_MAX_DELAY)
       {
         if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
         {
-          hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT;
-          hfmpi2c->State = HAL_FMPI2C_STATE_READY;
-          hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE;
+          error_code |= HAL_FMPI2C_ERROR_TIMEOUT;
 
-          /* Process Unlocked */
-          __HAL_UNLOCK(hfmpi2c);
-
-          return HAL_ERROR;
+          status = HAL_ERROR;
         }
       }
     }
 
+    /* In case STOP Flag is detected, clear it */
+    if (status == HAL_OK)
+    {
+      /* Clear STOP Flag */
+      __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF);
+    }
+
     /* Clear NACKF Flag */
     __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF);
 
-    /* Clear STOP Flag */
-    __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF);
+    error_code |= HAL_FMPI2C_ERROR_AF;
 
+    status = HAL_ERROR;
+  }
+
+  /* Refresh Content of Status register */
+  itflag = hfmpi2c->Instance->ISR;
+
+  /* Then verify if an additional errors occurs */
+  /* Check if a Bus error occurred */
+  if (HAL_IS_BIT_SET(itflag, FMPI2C_FLAG_BERR))
+  {
+    error_code |= HAL_FMPI2C_ERROR_BERR;
+
+    /* Clear BERR flag */
+    __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_BERR);
+
+    status = HAL_ERROR;
+  }
+
+  /* Check if an Over-Run/Under-Run error occurred */
+  if (HAL_IS_BIT_SET(itflag, FMPI2C_FLAG_OVR))
+  {
+    error_code |= HAL_FMPI2C_ERROR_OVR;
+
+    /* Clear OVR flag */
+    __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_OVR);
+
+    status = HAL_ERROR;
+  }
+
+  /* Check if an Arbitration Loss error occurred */
+  if (HAL_IS_BIT_SET(itflag, FMPI2C_FLAG_ARLO))
+  {
+    error_code |= HAL_FMPI2C_ERROR_ARLO;
+
+    /* Clear ARLO flag */
+    __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ARLO);
+
+    status = HAL_ERROR;
+  }
+
+  if (status != HAL_OK)
+  {
     /* Flush TX register */
     FMPI2C_Flush_TXDR(hfmpi2c);
 
     /* Clear Configuration Register 2 */
     FMPI2C_RESET_CR2(hfmpi2c);
 
-    hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF;
+    hfmpi2c->ErrorCode |= error_code;
     hfmpi2c->State = HAL_FMPI2C_STATE_READY;
     hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE;
 
     /* Process Unlocked */
     __HAL_UNLOCK(hfmpi2c);
-
-    return HAL_ERROR;
   }
-  return HAL_OK;
+
+  return status;
 }
 
 /**
@@ -6622,14 +6673,16 @@
   assert_param(IS_TRANSFER_MODE(Mode));
   assert_param(IS_TRANSFER_REQUEST(Request));
 
+  /* Declaration of tmp to prevent undefined behavior of volatile usage */
+  uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & FMPI2C_CR2_SADD) | \
+                            (((uint32_t)Size << FMPI2C_CR2_NBYTES_Pos) & FMPI2C_CR2_NBYTES) | \
+                              (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
+
   /* update CR2 register */
-  MODIFY_REG(hfmpi2c->Instance->CR2,
+  MODIFY_REG(hfmpi2c->Instance->CR2, \
              ((FMPI2C_CR2_SADD | FMPI2C_CR2_NBYTES | FMPI2C_CR2_RELOAD | FMPI2C_CR2_AUTOEND | \
                (FMPI2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - FMPI2C_CR2_RD_WRN_Pos))) | \
-                 FMPI2C_CR2_START | FMPI2C_CR2_STOP)), \
-             (uint32_t)(((uint32_t)DevAddress & FMPI2C_CR2_SADD) | \
-                        (((uint32_t)Size << FMPI2C_CR2_NBYTES_Pos) & FMPI2C_CR2_NBYTES) | \
-                        (uint32_t)Mode | (uint32_t)Request));
+                FMPI2C_CR2_START | FMPI2C_CR2_STOP)), tmp);
 }
 
 /**
@@ -6809,5 +6862,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_fmpi2c_ex.c b/Src/stm32f4xx_hal_fmpi2c_ex.c
index 0a8f72c..267a9ef 100644
--- a/Src/stm32f4xx_hal_fmpi2c_ex.c
+++ b/Src/stm32f4xx_hal_fmpi2c_ex.c
@@ -8,6 +8,17 @@
   *           + Filter Mode Functions
   *           + FastModePlus Functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                ##### FMPI2C peripheral Extended features  #####
@@ -29,18 +40,6 @@
           (++) HAL_FMPI2CEx_EnableFastModePlus()
           (++) HAL_FMPI2CEx_DisableFastModePlus()
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -257,5 +256,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_fmpsmbus.c b/Src/stm32f4xx_hal_fmpsmbus.c
index 578ecc5..700f25a 100644
--- a/Src/stm32f4xx_hal_fmpsmbus.c
+++ b/Src/stm32f4xx_hal_fmpsmbus.c
@@ -10,6 +10,17 @@
   *           + IO operation functions
   *           + Peripheral State and Errors functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -44,35 +55,41 @@
     *** Interrupt mode IO operation ***
     ===================================
     [..]
-      (+) Transmit in master/host FMPSMBUS mode an amount of data in non-blocking mode using HAL_FMPSMBUS_Master_Transmit_IT()
-      (++) At transmission end of transfer HAL_FMPSMBUS_MasterTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_MasterTxCpltCallback()
-      (+) Receive in master/host FMPSMBUS mode an amount of data in non-blocking mode using HAL_FMPSMBUS_Master_Receive_IT()
-      (++) At reception end of transfer HAL_FMPSMBUS_MasterRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_MasterRxCpltCallback()
+      (+) Transmit in master/host FMPSMBUS mode an amount of data in non-blocking mode
+          using HAL_FMPSMBUS_Master_Transmit_IT()
+      (++) At transmission end of transfer HAL_FMPSMBUS_MasterTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_MasterTxCpltCallback()
+      (+) Receive in master/host FMPSMBUS mode an amount of data in non-blocking mode
+          using HAL_FMPSMBUS_Master_Receive_IT()
+      (++) At reception end of transfer HAL_FMPSMBUS_MasterRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_MasterRxCpltCallback()
       (+) Abort a master/host FMPSMBUS process communication with Interrupt using HAL_FMPSMBUS_Master_Abort_IT()
       (++) The associated previous transfer callback is called at the end of abort process
       (++) mean HAL_FMPSMBUS_MasterTxCpltCallback() in case of previous state was master transmit
       (++) mean HAL_FMPSMBUS_MasterRxCpltCallback() in case of previous state was master receive
       (+) Enable/disable the Address listen mode in slave/device or host/slave FMPSMBUS mode
            using HAL_FMPSMBUS_EnableListen_IT() HAL_FMPSMBUS_DisableListen_IT()
-      (++) When address slave/device FMPSMBUS match, HAL_FMPSMBUS_AddrCallback() is executed and user can
-           add his own code to check the Address Match Code and the transmission direction request by master/host (Write/Read).
-      (++) At Listen mode end HAL_FMPSMBUS_ListenCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_ListenCpltCallback()
-      (+) Transmit in slave/device FMPSMBUS mode an amount of data in non-blocking mode using HAL_FMPSMBUS_Slave_Transmit_IT()
-      (++) At transmission end of transfer HAL_FMPSMBUS_SlaveTxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_SlaveTxCpltCallback()
-      (+) Receive in slave/device FMPSMBUS mode an amount of data in non-blocking mode using HAL_FMPSMBUS_Slave_Receive_IT()
-      (++) At reception end of transfer HAL_FMPSMBUS_SlaveRxCpltCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_SlaveRxCpltCallback()
-      (+) Enable/Disable the FMPSMBUS alert mode using HAL_FMPSMBUS_EnableAlert_IT() HAL_FMPSMBUS_DisableAlert_IT()
-      (++) When FMPSMBUS Alert is generated HAL_FMPSMBUS_ErrorCallback() is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_ErrorCallback()
+      (++) When address slave/device FMPSMBUS match, HAL_FMPSMBUS_AddrCallback() is executed and users can
+           add their own code to check the Address Match Code and the transmission direction
+           request by master/host (Write/Read).
+      (++) At Listen mode end HAL_FMPSMBUS_ListenCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_ListenCpltCallback()
+      (+) Transmit in slave/device FMPSMBUS mode an amount of data in non-blocking mode
+          using HAL_FMPSMBUS_Slave_Transmit_IT()
+      (++) At transmission end of transfer HAL_FMPSMBUS_SlaveTxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_SlaveTxCpltCallback()
+      (+) Receive in slave/device FMPSMBUS mode an amount of data in non-blocking mode
+          using HAL_FMPSMBUS_Slave_Receive_IT()
+      (++) At reception end of transfer HAL_FMPSMBUS_SlaveRxCpltCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_SlaveRxCpltCallback()
+      (+) Enable/Disable the FMPSMBUS alert mode using
+          HAL_FMPSMBUS_EnableAlert_IT() or HAL_FMPSMBUS_DisableAlert_IT()
+      (++) When FMPSMBUS Alert is generated HAL_FMPSMBUS_ErrorCallback() is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_ErrorCallback()
            to check the Alert Error Code using function HAL_FMPSMBUS_GetError()
       (+) Get HAL state machine or error values using HAL_FMPSMBUS_GetState() or HAL_FMPSMBUS_GetError()
-      (+) In case of transfer Error, HAL_FMPSMBUS_ErrorCallback() function is executed and user can
-           add his own code by customization of function pointer HAL_FMPSMBUS_ErrorCallback()
+      (+) In case of transfer Error, HAL_FMPSMBUS_ErrorCallback() function is executed and users can
+           add their own code by customization of function pointer HAL_FMPSMBUS_ErrorCallback()
            to check the Error Code using function HAL_FMPSMBUS_GetError()
 
      *** FMPSMBUS HAL driver macros list ***
@@ -150,18 +167,6 @@
        (@) You can refer to the FMPSMBUS HAL driver header file for more useful macros
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -205,7 +210,7 @@
   * @{
   */
 static HAL_StatusTypeDef FMPSMBUS_WaitOnFlagUntilTimeout(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t Flag,
-                                                         FlagStatus Status, uint32_t Timeout);
+                                                      FlagStatus Status, uint32_t Timeout);
 
 static void FMPSMBUS_Enable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest);
 static void FMPSMBUS_Disable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest);
@@ -217,7 +222,7 @@
 static void FMPSMBUS_ITErrorHandler(FMPSMBUS_HandleTypeDef *hfmpsmbus);
 
 static void FMPSMBUS_TransferConfig(FMPSMBUS_HandleTypeDef *hfmpsmbus,  uint16_t DevAddress, uint8_t Size,
-                                    uint32_t Mode, uint32_t Request);
+                                 uint32_t Mode, uint32_t Request);
 /**
   * @}
   */
@@ -588,8 +593,8 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                HAL_FMPSMBUS_CallbackIDTypeDef CallbackID,
-                                                pFMPSMBUS_CallbackTypeDef pCallback)
+                                             HAL_FMPSMBUS_CallbackIDTypeDef CallbackID,
+                                             pFMPSMBUS_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
@@ -703,7 +708,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPSMBUS_UnRegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                  HAL_FMPSMBUS_CallbackIDTypeDef CallbackID)
+                                               HAL_FMPSMBUS_CallbackIDTypeDef CallbackID)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
@@ -799,7 +804,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterAddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus,
-                                                    pFMPSMBUS_AddrCallbackTypeDef pCallback)
+                                                 pFMPSMBUS_AddrCallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
@@ -924,7 +929,7 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Transmit_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress,
-                                                  uint8_t *pData, uint16_t Size, uint32_t XferOptions)
+                                               uint8_t *pData, uint16_t Size, uint32_t XferOptions)
 {
   uint32_t tmp;
 
@@ -979,7 +984,7 @@
           (IS_FMPSMBUS_TRANSFER_OTHER_OPTIONS_REQUEST(tmp) == 0))
       {
         FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                                FMPSMBUS_NO_STARTSTOP);
+                             FMPSMBUS_NO_STARTSTOP);
       }
       /* Else transfer direction change, so generate Restart with new transfer direction */
       else
@@ -1086,7 +1091,7 @@
           (IS_FMPSMBUS_TRANSFER_OTHER_OPTIONS_REQUEST(tmp) == 0))
       {
         FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                                FMPSMBUS_NO_STARTSTOP);
+                             FMPSMBUS_NO_STARTSTOP);
       }
       /* Else transfer direction change, so generate Restart with new transfer direction */
       else
@@ -1248,7 +1253,7 @@
     {
       /* Set NBYTE to transmit */
       FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                              FMPSMBUS_NO_STARTSTOP);
+                           FMPSMBUS_NO_STARTSTOP);
 
       /* If PEC mode is enable, size to transmit should be Size-1 byte, corresponding to PEC byte */
       /* PEC byte is automatically sent by HW block, no need to manage it in Transmit process */
@@ -1335,7 +1340,7 @@
     if (((FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) && (hfmpsmbus->XferSize == 2U)) || (hfmpsmbus->XferSize == 1U))
     {
       FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                              FMPSMBUS_NO_STARTSTOP);
+                           FMPSMBUS_NO_STARTSTOP);
     }
     else
     {
@@ -1599,7 +1604,7 @@
 
   /* FMPSMBUS in mode Transmitter ---------------------------------------------------*/
   if ((FMPSMBUS_CHECK_IT_SOURCE(tmpcr1value, (FMPSMBUS_IT_TCI | FMPSMBUS_IT_STOPI |
-                                            FMPSMBUS_IT_NACKI | FMPSMBUS_IT_TXI)) != RESET) &&
+                                           FMPSMBUS_IT_NACKI | FMPSMBUS_IT_TXI)) != RESET) &&
       ((FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_TXIS) != RESET) ||
        (FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_TCR) != RESET) ||
        (FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_TC) != RESET) ||
@@ -1624,7 +1629,7 @@
 
   /* FMPSMBUS in mode Receiver ----------------------------------------------------*/
   if ((FMPSMBUS_CHECK_IT_SOURCE(tmpcr1value, (FMPSMBUS_IT_TCI | FMPSMBUS_IT_STOPI |
-                                            FMPSMBUS_IT_NACKI | FMPSMBUS_IT_RXI)) != RESET) &&
+                                           FMPSMBUS_IT_NACKI | FMPSMBUS_IT_RXI)) != RESET) &&
       ((FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_RXNE) != RESET) ||
        (FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_TCR) != RESET) ||
        (FMPSMBUS_CHECK_FLAG(tmpisrvalue, FMPSMBUS_FLAG_TC) != RESET) ||
@@ -1745,7 +1750,7 @@
   * @retval None
   */
 __weak void HAL_FMPSMBUS_AddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint8_t TransferDirection,
-                                      uint16_t AddrMatchCode)
+                                   uint16_t AddrMatchCode)
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hfmpsmbus);
@@ -2000,7 +2005,7 @@
       {
         hfmpsmbus->XferSize = hfmpsmbus->XferCount;
         FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                                FMPSMBUS_NO_STARTSTOP);
+                             FMPSMBUS_NO_STARTSTOP);
         /* If PEC mode is enable, size to transmit should be Size-1 byte, corresponding to PEC byte */
         /* PEC byte is automatically sent by HW block, no need to manage it in Transmit process */
         if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL)
@@ -2275,7 +2280,7 @@
         {
           hfmpsmbus->XferSize = hfmpsmbus->XferCount;
           FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions,
-                                  FMPSMBUS_NO_STARTSTOP);
+                               FMPSMBUS_NO_STARTSTOP);
           /* If PEC mode is enable, size to transmit should be Size-1 byte, corresponding to PEC byte */
           /* PEC byte is automatically sent by HW block, no need to manage it in Transmit process */
           if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL)
@@ -2620,7 +2625,7 @@
   * @retval HAL status
   */
 static HAL_StatusTypeDef FMPSMBUS_WaitOnFlagUntilTimeout(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t Flag,
-                                                         FlagStatus Status, uint32_t Timeout)
+                                                      FlagStatus Status, uint32_t Timeout)
 {
   uint32_t tickstart = HAL_GetTick();
 
@@ -2670,7 +2675,7 @@
   * @retval None
   */
 static void FMPSMBUS_TransferConfig(FMPSMBUS_HandleTypeDef *hfmpsmbus,  uint16_t DevAddress, uint8_t Size,
-                                    uint32_t Mode, uint32_t Request)
+                                 uint32_t Mode, uint32_t Request)
 {
   /* Check the parameters */
   assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance));
@@ -2742,5 +2747,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_fmpsmbus_ex.c b/Src/stm32f4xx_hal_fmpsmbus_ex.c
index e5147ca..14ca0b4 100644
--- a/Src/stm32f4xx_hal_fmpsmbus_ex.c
+++ b/Src/stm32f4xx_hal_fmpsmbus_ex.c
@@ -7,6 +7,17 @@
   *          functionalities of FMPSMBUS Extended peripheral:
   *           + Extended features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                ##### FMPSMBUS peripheral Extended features  #####
@@ -23,18 +34,6 @@
           (++) HAL_FMPSMBUSEx_EnableFastModePlus()
           (++) HAL_FMPSMBUSEx_DisableFastModePlus()
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -144,5 +143,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_gpio.c b/Src/stm32f4xx_hal_gpio.c
index 4720339..b3ce9bb 100644
--- a/Src/stm32f4xx_hal_gpio.c
+++ b/Src/stm32f4xx_hal_gpio.c
@@ -8,6 +8,17 @@
   *           + Initialization and de-initialization functions
   *           + IO operation functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### GPIO Peripheral features #####
@@ -91,17 +102,6 @@
   
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */ 
 
 /* Includes ------------------------------------------------------------------*/
@@ -245,23 +245,6 @@
         temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U)));
         SYSCFG->EXTICR[position >> 2U] = temp;
 
-        /* Clear EXTI line configuration */
-        temp = EXTI->IMR;
-        temp &= ~((uint32_t)iocurrent);
-        if((GPIO_Init->Mode & EXTI_IT) != 0x00U)
-        {
-          temp |= iocurrent;
-        }
-        EXTI->IMR = temp;
-
-        temp = EXTI->EMR;
-        temp &= ~((uint32_t)iocurrent);
-        if((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
-        {
-          temp |= iocurrent;
-        }
-        EXTI->EMR = temp;
-
         /* Clear Rising Falling edge configuration */
         temp = EXTI->RTSR;
         temp &= ~((uint32_t)iocurrent);
@@ -278,6 +261,23 @@
           temp |= iocurrent;
         }
         EXTI->FTSR = temp;
+
+        temp = EXTI->EMR;
+        temp &= ~((uint32_t)iocurrent);
+        if((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI->EMR = temp;
+
+        /* Clear EXTI line configuration */
+        temp = EXTI->IMR;
+        temp &= ~((uint32_t)iocurrent);
+        if((GPIO_Init->Mode & EXTI_IT) != 0x00U)
+        {
+          temp |= iocurrent;
+        }
+        EXTI->IMR = temp;
       }
     }
   }
@@ -321,8 +321,8 @@
         EXTI->EMR &= ~((uint32_t)iocurrent);
         
         /* Clear Rising Falling edge configuration */
-        EXTI->RTSR &= ~((uint32_t)iocurrent);
         EXTI->FTSR &= ~((uint32_t)iocurrent);
+        EXTI->RTSR &= ~((uint32_t)iocurrent);
 
         /* Configure the External Interrupt or event for the current IO */
         tmp = 0x0FU << (4U * (position & 0x03U));
@@ -437,7 +437,7 @@
   /* Check the parameters */
   assert_param(IS_GPIO_PIN(GPIO_Pin));
 
-  /* get current Ouput Data Register value */
+  /* get current Output Data Register value */
   odr = GPIOx->ODR;
 
   /* Set selected pins that were at low level, and reset ones that were high */
@@ -531,4 +531,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_hash.c b/Src/stm32f4xx_hal_hash.c
index c901e19..f3aafe0 100644
--- a/Src/stm32f4xx_hal_hash.c
+++ b/Src/stm32f4xx_hal_hash.c
@@ -12,6 +12,17 @@
   *           + Peripheral State methods
   *           + HASH or HMAC processing suspension/resumption
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                      ##### How to use this driver #####
@@ -147,9 +158,9 @@
      [..]
       (#) The compilation define  USE_HAL_HASH_REGISTER_CALLBACKS when set to 1
           allows the user to configure dynamically the driver callbacks.
-          Use function @ref HAL_HASH_RegisterCallback() to register a user callback.
+          Use function HAL_HASH_RegisterCallback() to register a user callback.
 
-      (#) Function @ref HAL_HASH_RegisterCallback() allows to register following callbacks:
+      (#) Function HAL_HASH_RegisterCallback() allows to register following callbacks:
             (+) InCpltCallback    : callback for input completion.
             (+) DgstCpltCallback  : callback for digest computation completion.
             (+) ErrorCallback     : callback for error.
@@ -158,9 +169,9 @@
           This function takes as parameters the HAL peripheral handle, the Callback ID
           and a pointer to the user callback function.
 
-      (#) Use function @ref HAL_HASH_UnRegisterCallback() to reset a callback to the default
+      (#) Use function HAL_HASH_UnRegisterCallback() to reset a callback to the default
           weak (surcharged) function.
-          @ref HAL_HASH_UnRegisterCallback() takes as parameters the HAL peripheral handle,
+          HAL_HASH_UnRegisterCallback() takes as parameters the HAL peripheral handle,
           and the Callback ID.
           This function allows to reset following callbacks:
             (+) InCpltCallback    : callback for input completion.
@@ -169,13 +180,13 @@
             (+) MspInitCallback   : HASH MspInit.
             (+) MspDeInitCallback : HASH MspDeInit.
 
-      (#) By default, after the @ref HAL_HASH_Init and if the state is HAL_HASH_STATE_RESET
+      (#) By default, after the HAL_HASH_Init and if the state is HAL_HASH_STATE_RESET
           all callbacks are reset to the corresponding legacy weak (surcharged) functions:
-          examples @ref HAL_HASH_InCpltCallback(), @ref HAL_HASH_DgstCpltCallback()
+          examples HAL_HASH_InCpltCallback(), HAL_HASH_DgstCpltCallback()
           Exception done for MspInit and MspDeInit callbacks that are respectively
-          reset to the legacy weak (surcharged) functions in the @ref HAL_HASH_Init
-          and @ref HAL_HASH_DeInit only when these callbacks are null (not registered beforehand)
-          If not, MspInit or MspDeInit are not null, the @ref HAL_HASH_Init and @ref HAL_HASH_DeInit
+          reset to the legacy weak (surcharged) functions in the HAL_HASH_Init
+          and HAL_HASH_DeInit only when these callbacks are null (not registered beforehand)
+          If not, MspInit or MspDeInit are not null, the HAL_HASH_Init and HAL_HASH_DeInit
           keep and use the user MspInit/MspDeInit callbacks (registered beforehand).
 
           Callbacks can be registered/unregistered in READY state only.
@@ -183,8 +194,8 @@
           in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
           during the Init/DeInit.
           In that case first register the MspInit/MspDeInit user callbacks
-          using @ref HAL_HASH_RegisterCallback before calling @ref HAL_HASH_DeInit
-          or @ref HAL_HASH_Init function.
+          using HAL_HASH_RegisterCallback before calling HAL_HASH_DeInit
+          or HAL_HASH_Init function.
 
           When The compilation define USE_HAL_HASH_REGISTER_CALLBACKS is set to 0 or
           not defined, the callback registering feature is not available
@@ -192,17 +203,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1769,8 +1769,6 @@
                                 (((buffersize % 4U) != 0U) ? ((buffersize + (4U - (buffersize % 4U))) / 4U) : \
                                  (buffersize / 4U)));
 
-
-
       /* Enable DMA requests */
       SET_BIT(HASH->CR, HASH_CR_DMAE);
 
@@ -2909,8 +2907,8 @@
            Update HashInCount and pHashInBuffPtr accordingly. */
         hhash->HashInCount = SizeVar;
         hhash->pHashInBuffPtr = (uint8_t *)inputaddr;
-        __HAL_HASH_SET_NBVALIDBITS(
-          SizeVar);  /* Update the configuration of the number of valid bits in last word of the message */
+        /* Update the configuration of the number of valid bits in last word of the message */
+        __HAL_HASH_SET_NBVALIDBITS(SizeVar);
         hhash->pHashOutBuffPtr = pOutBuffer;  /* Points at the computed digest */
         if (initialization_skipped == 1U)
         {
@@ -2978,11 +2976,11 @@
   HAL_StatusTypeDef status ;
   HAL_HASH_StateTypeDef State_tmp = hhash->State;
 
-  #if defined (HASH_CR_MDMAT)
+#if defined (HASH_CR_MDMAT)
   /* Make sure the input buffer size (in bytes) is a multiple of 4 when MDMAT bit is set
      (case of multi-buffer HASH processing) */
   assert_param(IS_HASH_DMA_MULTIBUFFER_SIZE(Size));
-  #endif /* MDMA defined*/
+#endif /* MDMA defined*/
   /* If State is ready or suspended, start or resume polling-based HASH processing */
   if ((State_tmp == HAL_HASH_STATE_READY) || (State_tmp == HAL_HASH_STATE_SUSPENDED))
   {
@@ -3478,6 +3476,7 @@
     status = HAL_DMA_Start_IT(hhash->hdmain, inputaddr, (uint32_t)&HASH->DIN,  \
                               (((inputSize % 4U) != 0U) ? ((inputSize + (4U - (inputSize % 4U))) / 4U) \
                               : (inputSize / 4U)));
+
     /* Enable DMA requests */
     SET_BIT(HASH->CR, HASH_CR_DMAE);
 
@@ -3513,6 +3512,3 @@
   * @}
   */
 
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_hash_ex.c b/Src/stm32f4xx_hal_hash_ex.c
index e733f5a..63cb38e 100644
--- a/Src/stm32f4xx_hal_hash_ex.c
+++ b/Src/stm32f4xx_hal_hash_ex.c
@@ -14,6 +14,17 @@
   *         and SHA-256.
   *
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                      ##### HASH peripheral extended features  #####
@@ -69,17 +80,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1038,6 +1038,3 @@
   * @}
   */
 
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_hcd.c b/Src/stm32f4xx_hal_hcd.c
index 6ab4a3d..c7c5b70 100644
--- a/Src/stm32f4xx_hal_hcd.c
+++ b/Src/stm32f4xx_hal_hcd.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### How to use this driver #####
@@ -40,17 +51,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1192,13 +1192,13 @@
   if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_AHBERR) == USB_OTG_HCINT_AHBERR)
   {
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_AHBERR);
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
+    hhcd->hc[ch_num].state = HC_XACTERR;
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_BBERR) == USB_OTG_HCINT_BBERR)
   {
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_BBERR);
     hhcd->hc[ch_num].state = HC_BBLERR;
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_ACK) == USB_OTG_HCINT_ACK)
@@ -1207,26 +1207,21 @@
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_STALL) == USB_OTG_HCINT_STALL)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    hhcd->hc[ch_num].state = HC_STALL;
-    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_STALL);
+    hhcd->hc[ch_num].state = HC_STALL;
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_DTERR) == USB_OTG_HCINT_DTERR)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    hhcd->hc[ch_num].state = HC_DATATGLERR;
-    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_DTERR);
+    hhcd->hc[ch_num].state = HC_DATATGLERR;
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_TXERR) == USB_OTG_HCINT_TXERR)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
+    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_TXERR);
     hhcd->hc[ch_num].state = HC_XACTERR;
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
-    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_TXERR);
   }
   else
   {
@@ -1235,7 +1230,6 @@
 
   if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_FRMOR) == USB_OTG_HCINT_FRMOR)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_FRMOR);
   }
@@ -1254,11 +1248,11 @@
     if ((hhcd->hc[ch_num].ep_type == EP_TYPE_CTRL) ||
         (hhcd->hc[ch_num].ep_type == EP_TYPE_BULK))
     {
-      __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
       (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
       __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK);
     }
-    else if (hhcd->hc[ch_num].ep_type == EP_TYPE_INTR)
+    else if ((hhcd->hc[ch_num].ep_type == EP_TYPE_INTR) ||
+             (hhcd->hc[ch_num].ep_type == EP_TYPE_ISOC))
     {
       USBx_HC(ch_num)->HCCHAR |= USB_OTG_HCCHAR_ODDFRM;
       hhcd->hc[ch_num].urb_state = URB_DONE;
@@ -1269,17 +1263,6 @@
       HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
 #endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
     }
-    else if (hhcd->hc[ch_num].ep_type == EP_TYPE_ISOC)
-    {
-      hhcd->hc[ch_num].urb_state = URB_DONE;
-      hhcd->hc[ch_num].toggle_in ^= 1U;
-
-#if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
-      hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
-#else
-      HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
-#endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
-    }
     else
     {
       /* ... */
@@ -1299,8 +1282,6 @@
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_CHH) == USB_OTG_HCINT_CHH)
   {
-    __HAL_HCD_MASK_HALT_HC_INT(ch_num);
-
     if (hhcd->hc[ch_num].state == HC_XFRC)
     {
       hhcd->hc[ch_num].urb_state = URB_DONE;
@@ -1349,14 +1330,18 @@
       /* ... */
     }
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_CHH);
+
+#if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
+    hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#else
     HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_NAK) == USB_OTG_HCINT_NAK)
   {
     if (hhcd->hc[ch_num].ep_type == EP_TYPE_INTR)
     {
       hhcd->hc[ch_num].ErrCnt = 0U;
-      __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
       (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     }
     else if ((hhcd->hc[ch_num].ep_type == EP_TYPE_CTRL) ||
@@ -1367,7 +1352,6 @@
       if (hhcd->Init.dma_enable == 0U)
       {
         hhcd->hc[ch_num].state = HC_NAK;
-        __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
         (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
       }
     }
@@ -1401,7 +1385,8 @@
   if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_AHBERR) == USB_OTG_HCINT_AHBERR)
   {
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_AHBERR);
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
+    hhcd->hc[ch_num].state = HC_XACTERR;
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_ACK) == USB_OTG_HCINT_ACK)
   {
@@ -1410,16 +1395,14 @@
     if (hhcd->hc[ch_num].do_ping == 1U)
     {
       hhcd->hc[ch_num].do_ping = 0U;
-      hhcd->hc[ch_num].urb_state  = URB_NOTREADY;
-      __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
+      hhcd->hc[ch_num].urb_state = URB_NOTREADY;
       (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     }
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_FRMOR) == USB_OTG_HCINT_FRMOR)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_FRMOR);
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_XFRC) == USB_OTG_HCINT_XFRC)
   {
@@ -1431,26 +1414,23 @@
       hhcd->hc[ch_num].do_ping = 1U;
       __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NYET);
     }
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_XFRC);
     hhcd->hc[ch_num].state = HC_XFRC;
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_NYET) == USB_OTG_HCINT_NYET)
   {
     hhcd->hc[ch_num].state = HC_NYET;
     hhcd->hc[ch_num].do_ping = 1U;
     hhcd->hc[ch_num].ErrCnt = 0U;
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NYET);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_STALL) == USB_OTG_HCINT_STALL)
   {
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_STALL);
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     hhcd->hc[ch_num].state = HC_STALL;
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_NAK) == USB_OTG_HCINT_NAK)
   {
@@ -1465,7 +1445,6 @@
       }
     }
 
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
     (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK);
   }
@@ -1474,7 +1453,6 @@
     if (hhcd->Init.dma_enable == 0U)
     {
       hhcd->hc[ch_num].state = HC_XACTERR;
-      __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
       (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
     }
     else
@@ -1484,8 +1462,12 @@
       {
         hhcd->hc[ch_num].ErrCnt = 0U;
         hhcd->hc[ch_num].urb_state = URB_ERROR;
-        HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num,
-                                            hhcd->hc[ch_num].urb_state);
+
+#if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
+        hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#else
+        HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
       }
       else
       {
@@ -1496,16 +1478,12 @@
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_DTERR) == USB_OTG_HCINT_DTERR)
   {
-    __HAL_HCD_UNMASK_HALT_HC_INT(ch_num);
-    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
-    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK);
-    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_DTERR);
     hhcd->hc[ch_num].state = HC_DATATGLERR;
+    (void)USB_HC_Halt(hhcd->Instance, (uint8_t)ch_num);
+    __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_DTERR);
   }
   else if ((USBx_HC(ch_num)->HCINT & USB_OTG_HCINT_CHH) == USB_OTG_HCINT_CHH)
   {
-    __HAL_HCD_MASK_HALT_HC_INT(ch_num);
-
     if (hhcd->hc[ch_num].state == HC_XFRC)
     {
       hhcd->hc[ch_num].urb_state  = URB_DONE;
@@ -1566,7 +1544,12 @@
     }
 
     __HAL_HCD_CLEAR_HC_INT(ch_num, USB_OTG_HCINT_CHH);
+
+#if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
+    hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#else
     HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num].urb_state);
+#endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
   }
   else
   {
@@ -1743,5 +1726,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_i2c.c b/Src/stm32f4xx_hal_i2c.c
index dfe5e62..c2a8eb7 100644
--- a/Src/stm32f4xx_hal_i2c.c
+++ b/Src/stm32f4xx_hal_i2c.c
@@ -9,6 +9,17 @@
   *           + IO operation functions
   *           + Peripheral State, Mode and Error functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -284,18 +295,6 @@
        (@) You can refer to the I2C HAL driver header file for more useful macros
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -3421,7 +3420,7 @@
 {
   /* Get tick */
   uint32_t tickstart = HAL_GetTick();
-  uint32_t I2C_Trials = 1U;
+  uint32_t I2C_Trials = 0U;
   FlagStatus tmp1;
   FlagStatus tmp2;
 
@@ -5612,7 +5611,9 @@
     }
     else
     {
-      /* Do nothing */
+      /* Disable BUF interrupt, this help to treat correctly the last 2 bytes
+         on BTF subroutine if there is a reception delay between N-1 and N byte */
+      __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF);
     }
   }
 }
@@ -7521,4 +7522,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_i2c_ex.c b/Src/stm32f4xx_hal_i2c_ex.c
index ed50332..64aabaa 100644
--- a/Src/stm32f4xx_hal_i2c_ex.c
+++ b/Src/stm32f4xx_hal_i2c_ex.c
@@ -7,6 +7,17 @@
   *          functionalities of I2C extension peripheral:
   *           + Extension features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                ##### I2C peripheral extension features  #####
@@ -25,18 +36,6 @@
     (#) Configure I2C Digital noise filter using the function HAL_I2C_DigitalFilter_Config()
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -181,4 +180,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_i2s.c b/Src/stm32f4xx_hal_i2s.c
index 332b6c2..700a0ca 100644
--- a/Src/stm32f4xx_hal_i2s.c
+++ b/Src/stm32f4xx_hal_i2s.c
@@ -8,6 +8,17 @@
   *           + Initialization and de-initialization functions
   *           + IO operation functions
   *           + Peripheral State and Errors functions
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                   ##### How to use this driver #####
@@ -169,18 +180,7 @@
        and weak (surcharged) callbacks are used.
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
+
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -2092,4 +2092,3 @@
 
 #endif /* HAL_I2S_MODULE_ENABLED */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_i2s_ex.c b/Src/stm32f4xx_hal_i2s_ex.c
index cd0db5e..643bf74 100644
--- a/Src/stm32f4xx_hal_i2s_ex.c
+++ b/Src/stm32f4xx_hal_i2s_ex.c
@@ -6,7 +6,17 @@
   *          This file provides firmware functions to manage the following
   *          functionalities of I2S extension peripheral:
   *           + Extension features Functions
+  ******************************************************************************
+  * @attention
   *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### I2S Extension features #####
@@ -73,18 +83,6 @@
         |       |       I2Sx_ext        |------------------->I2Sx_extSD(in/out)
          +----->|                       |
                 +-----------------------+
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1135,4 +1133,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_irda.c b/Src/stm32f4xx_hal_irda.c
index 29974d6..57c52c4 100644
--- a/Src/stm32f4xx_hal_irda.c
+++ b/Src/stm32f4xx_hal_irda.c
@@ -9,6 +9,18 @@
   *           + IO operation functions
   *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -185,17 +197,6 @@
     |    1    |    1      |    | SB | 8 bit data | PB | 1 STB |   |
     +-------------------------------------------------------------+
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -767,9 +768,9 @@
   * @param Timeout Specify timeout value.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 {
-  uint16_t *tmp;
+  const uint16_t *tmp;
   uint32_t tickstart = 0U;
 
   /* Check that a Tx process is not already ongoing */
@@ -800,7 +801,7 @@
         {
           return HAL_TIMEOUT;
         }
-        tmp = (uint16_t *) pData;
+        tmp = (const uint16_t *) pData;
         hirda->Instance->DR = (*tmp & (uint16_t)0x01FF);
         if (hirda->Init.Parity == IRDA_PARITY_NONE)
         {
@@ -942,7 +943,7 @@
   * @param Size  Amount of data elements (u8 or u16) to be sent.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
 {
   /* Check that a Tx process is not already ongoing */
   if (hirda->gState == HAL_IRDA_STATE_READY)
@@ -1010,8 +1011,16 @@
     /* Process Unlocked */
     __HAL_UNLOCK(hirda);
 
-    /* Enable the IRDA Parity Error and Data Register Not Empty Interrupts */
-    SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
+    if (hirda->Init.Parity != IRDA_PARITY_NONE)
+    {
+      /* Enable the IRDA Parity Error and Data Register Not Empty Interrupts */
+      SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
+    }
+    else
+    {
+      /* Enable the IRDA Data Register Not Empty Interrupts */
+       SET_BIT(hirda->Instance->CR1, USART_CR1_RXNEIE); 
+    }
 
     /* Enable the IRDA Error Interrupt: (Frame error, Noise error, Overrun error) */
     SET_BIT(hirda->Instance->CR3, USART_CR3_EIE);
@@ -1035,9 +1044,9 @@
   * @param Size  Amount of data elements (u8 or u16) to be sent.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size)
 {
-  uint32_t *tmp;
+  const uint32_t *tmp;
 
   /* Check that a Tx process is not already ongoing */
   if (hirda->gState == HAL_IRDA_STATE_READY)
@@ -1070,8 +1079,8 @@
     hirda->hdmatx->XferAbortCallback = NULL;
 
     /* Enable the IRDA transmit DMA stream */
-    tmp = (uint32_t *)&pData;
-    HAL_DMA_Start_IT(hirda->hdmatx, *(uint32_t *)tmp, (uint32_t)&hirda->Instance->DR, Size);
+    tmp = (const uint32_t *)&pData;
+    HAL_DMA_Start_IT(hirda->hdmatx, *(const uint32_t *)tmp, (uint32_t)&hirda->Instance->DR, Size);
 
     /* Clear the TC flag in the SR register by writing 0 to it */
     __HAL_IRDA_CLEAR_FLAG(hirda, IRDA_FLAG_TC);
@@ -1146,8 +1155,11 @@
     /* Process Unlocked */
     __HAL_UNLOCK(hirda);
 
-    /* Enable the IRDA Parity Error Interrupt */
-    SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE);
+    if (hirda->Init.Parity != IRDA_PARITY_NONE)
+    {
+      /* Enable the IRDA Parity Error Interrupt */
+      SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE);
+    }
 
     /* Enable the IRDA Error Interrupt: (Frame error, Noise error, Overrun error) */
     SET_BIT(hirda->Instance->CR3, USART_CR3_EIE);
@@ -1224,7 +1236,10 @@
     __HAL_IRDA_CLEAR_OREFLAG(hirda);
 
     /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */
-    SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE);
+    if (hirda->Init.Parity != IRDA_PARITY_NONE)
+    {    
+      SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE);
+    }
     SET_BIT(hirda->Instance->CR3, USART_CR3_EIE);
 
     /* Enable the IRDA DMA Rx request */
@@ -2215,11 +2230,12 @@
 }
 
 /**
-  * @brief  This function handles IRDA Communication Timeout.
+  * @brief  This function handles IRDA Communication Timeout. It waits
+  *         until a flag is no longer in the specified status.
   * @param  hirda  Pointer to a IRDA_HandleTypeDef structure that contains
   *                the configuration information for the specified IRDA.
   * @param  Flag specifies the IRDA flag to check.
-  * @param  Status The new Flag status (SET or RESET).
+  * @param  Status The actual Flag status (SET or RESET).
   * @param  Tickstart Tick start value
   * @param  Timeout Timeout duration
   * @retval HAL status
@@ -2451,14 +2467,14 @@
  */
 static HAL_StatusTypeDef IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda)
 {
-  uint16_t *tmp;
+  const uint16_t *tmp;
 
   /* Check that a Tx process is ongoing */
   if (hirda->gState == HAL_IRDA_STATE_BUSY_TX)
   {
     if (hirda->Init.WordLength == IRDA_WORDLENGTH_9B)
     {
-      tmp = (uint16_t *) hirda->pTxBuffPtr;
+      tmp = (const uint16_t *) hirda->pTxBuffPtr;
       hirda->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
       if (hirda->Init.Parity == IRDA_PARITY_NONE)
       {
@@ -2669,4 +2685,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_iwdg.c b/Src/stm32f4xx_hal_iwdg.c
index 5f376da..c01eb29 100644
--- a/Src/stm32f4xx_hal_iwdg.c
+++ b/Src/stm32f4xx_hal_iwdg.c
@@ -8,6 +8,17 @@
   *           + Initialization and Start functions
   *           + IO operation functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### IWDG Generic features #####
@@ -80,18 +91,6 @@
           the reload register
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -119,7 +118,7 @@
    the LSI_VALUE constant. The value of this constant can be changed by the user
    to take into account possible LSI clock period variations.
    The timeout value is multiplied by 1000 to be converted in milliseconds.
-   LSI startup time is also considered here by adding LSI_STARTUP_TIMEOUT
+   LSI startup time is also considered here by adding LSI_STARTUP_TIME
    converted in milliseconds. */
 #define HAL_IWDG_DEFAULT_TIMEOUT        (((6UL * 256UL * 1000UL) / LSI_VALUE) + ((LSI_STARTUP_TIME / 1000UL) + 1UL))
 #define IWDG_KERNEL_UPDATE_FLAGS        (IWDG_SR_RVU | IWDG_SR_PVU)
@@ -261,5 +260,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_lptim.c b/Src/stm32f4xx_hal_lptim.c
index 0ed7617..7b56951 100644
--- a/Src/stm32f4xx_hal_lptim.c
+++ b/Src/stm32f4xx_hal_lptim.c
@@ -11,6 +11,17 @@
   *           + Reading operation functions.
   *           + Peripheral State functions.
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -140,17 +151,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -444,7 +444,7 @@
   * @brief  Start the LPTIM PWM generation.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Pulse Specifies the compare value.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -492,7 +492,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -509,7 +509,7 @@
   /* Check the parameters */
   assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
 
-  /* Set the LPTIM state */
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_BUSY;
 
   /* Disable the Peripheral */
@@ -520,7 +520,7 @@
     return HAL_TIMEOUT;
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -531,7 +531,7 @@
   * @brief  Start the LPTIM PWM generation in interrupt mode.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF
+  *         This parameter must be a value between 0x0001 and 0xFFFF
   * @param  Pulse Specifies the compare value.
   *         This parameter must be a value between 0x0000 and 0xFFFF
   * @retval HAL status
@@ -609,7 +609,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -626,7 +626,7 @@
   /* Check the parameters */
   assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
 
-  /* Set the LPTIM state */
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_BUSY;
 
   /* Disable the Peripheral */
@@ -656,7 +656,7 @@
     __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -667,7 +667,7 @@
   * @brief  Start the LPTIM One pulse generation.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Pulse Specifies the compare value.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -715,7 +715,7 @@
   /* Start timer in single (one shot) mode */
   __HAL_LPTIM_START_SINGLE(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -743,7 +743,7 @@
     return HAL_TIMEOUT;
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -754,7 +754,7 @@
   * @brief  Start the LPTIM One pulse generation in interrupt mode.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Pulse Specifies the compare value.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -832,7 +832,7 @@
   /* Start timer in single (one shot) mode */
   __HAL_LPTIM_START_SINGLE(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -852,6 +852,7 @@
   /* Set the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_BUSY;
 
+
   /* Disable the Peripheral */
   __HAL_LPTIM_DISABLE(hlptim);
 
@@ -879,7 +880,7 @@
     __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -890,7 +891,7 @@
   * @brief  Start the LPTIM in Set once mode.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Pulse Specifies the compare value.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -938,7 +939,7 @@
   /* Start timer in single (one shot) mode */
   __HAL_LPTIM_START_SINGLE(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -966,7 +967,7 @@
     return HAL_TIMEOUT;
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1055,7 +1056,7 @@
   /* Start timer in single (one shot) mode */
   __HAL_LPTIM_START_SINGLE(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1102,7 +1103,7 @@
     __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_EXTTRIG);
   }
 
-  /* Change the LPTIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1113,7 +1114,7 @@
   * @brief  Start the Encoder interface.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
@@ -1163,7 +1164,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1194,7 +1195,7 @@
   /* Reset ENC bit to disable the encoder interface */
   hlptim->Instance->CFGR &= ~LPTIM_CFGR_ENC;
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1273,7 +1274,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1310,7 +1311,7 @@
   /* Disable "switch to up direction" interrupt */
   __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_UP);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1323,7 +1324,7 @@
   *         trigger event will reset the counter and the timer restarts.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Timeout Specifies the TimeOut value to reset the counter.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -1371,7 +1372,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1402,7 +1403,7 @@
   /* Reset TIMOUT bit to enable the timeout function */
   hlptim->Instance->CFGR &= ~LPTIM_CFGR_TIMOUT;
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1415,7 +1416,7 @@
   *         trigger event will reset the counter and the timer restarts.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @param  Timeout Specifies the TimeOut value to reset the counter.
   *         This parameter must be a value between 0x0000 and 0xFFFF.
   * @retval HAL status
@@ -1484,7 +1485,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1501,8 +1502,6 @@
   /* Check the parameters */
   assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
 
-  /* Set the LPTIM state */
-  hlptim->State = HAL_LPTIM_STATE_BUSY;
 #if defined(EXTI_IMR_MR23)
   /* Disable rising edge trigger on the LPTIM Wake-up Timer Exti line */
   __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();
@@ -1511,6 +1510,9 @@
   /* Disable EXTI Line interrupt on the LPTIM Wake-up Timer */
   __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_IT();
 
+  /* Set the LPTIM state */
+  hlptim->State = HAL_LPTIM_STATE_BUSY;
+
   /* Disable the Peripheral */
   __HAL_LPTIM_DISABLE(hlptim);
 
@@ -1525,7 +1527,7 @@
   /* Disable Compare match interrupt */
   __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_CMPM);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1536,7 +1538,7 @@
   * @brief  Start the Counter mode.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
@@ -1576,7 +1578,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1604,7 +1606,7 @@
     return HAL_TIMEOUT;
   }
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1615,7 +1617,7 @@
   * @brief  Start the Counter mode in interrupt mode.
   * @param  hlptim LPTIM handle
   * @param  Period Specifies the Autoreload value.
-  *         This parameter must be a value between 0x0000 and 0xFFFF.
+  *         This parameter must be a value between 0x0001 and 0xFFFF.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
@@ -1679,7 +1681,7 @@
   /* Start timer in continuous mode */
   __HAL_LPTIM_START_CONTINUOUS(hlptim);
 
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -1696,8 +1698,6 @@
   /* Check the parameters */
   assert_param(IS_LPTIM_INSTANCE(hlptim->Instance));
 
-  /* Set the LPTIM state */
-  hlptim->State = HAL_LPTIM_STATE_BUSY;
 #if defined(EXTI_IMR_MR23)
   /* Disable rising edge trigger on the LPTIM Wake-up Timer Exti line */
   __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();
@@ -1706,6 +1706,9 @@
   /* Disable EXTI Line interrupt on the LPTIM Wake-up Timer */
   __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_IT();
 
+  /* Set the LPTIM state */
+  hlptim->State = HAL_LPTIM_STATE_BUSY;
+
   /* Disable the Peripheral */
   __HAL_LPTIM_DISABLE(hlptim);
 
@@ -1719,7 +1722,7 @@
 
   /* Disable Autoreload match interrupt */
   __HAL_LPTIM_DISABLE_IT(hlptim, LPTIM_IT_ARRM);
-  /* Change the TIM state*/
+  /* Change the LPTIM state */
   hlptim->State = HAL_LPTIM_STATE_READY;
 
   /* Return function status */
@@ -2368,9 +2371,12 @@
   uint32_t tmpCFGR;
   uint32_t tmpCMP;
   uint32_t tmpARR;
+  uint32_t primask_bit;
   uint32_t tmpOR;
 
-  __disable_irq();
+  /* Enter critical section */
+  primask_bit = __get_PRIMASK();
+  __set_PRIMASK(1) ;
 
   /*********** Save LPTIM Config ***********/
   /* Save LPTIM source clock */
@@ -2460,7 +2466,8 @@
   hlptim->Instance->CFGR = tmpCFGR;
   hlptim->Instance->OR = tmpOR;
 
-  __enable_irq();
+  /* Exit critical section: restore previous priority mask */
+  __set_PRIMASK(primask_bit);
 }
 /**
   * @}
@@ -2475,5 +2482,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_ltdc.c b/Src/stm32f4xx_hal_ltdc.c
index 7e44130..fcc5fa1 100644
--- a/Src/stm32f4xx_hal_ltdc.c
+++ b/Src/stm32f4xx_hal_ltdc.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -146,17 +157,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -178,6 +178,7 @@
 
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
+#define LTDC_TIMEOUT_VALUE ((uint32_t)100U)  /* 100ms */
 /* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
@@ -211,7 +212,8 @@
   */
 HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc)
 {
-  uint32_t tmp, tmp1;
+  uint32_t tmp;
+  uint32_t tmp1;
 
   /* Check the LTDC peripheral state */
   if (hltdc == NULL)
@@ -320,6 +322,44 @@
 
 HAL_StatusTypeDef HAL_LTDC_DeInit(LTDC_HandleTypeDef *hltdc)
 {
+  uint32_t tickstart;
+
+  /* Check the LTDC peripheral state */
+  if (hltdc == NULL)
+  {
+    return HAL_ERROR;
+  }
+
+  /* Check function parameters */
+  assert_param(IS_LTDC_ALL_INSTANCE(hltdc->Instance));
+
+  /* Disable LTDC Layer 1 */
+  __HAL_LTDC_LAYER_DISABLE(hltdc, LTDC_LAYER_1);
+
+#if defined(LTDC_Layer2_BASE)
+  /* Disable LTDC Layer 2 */
+  __HAL_LTDC_LAYER_DISABLE(hltdc, LTDC_LAYER_2);
+#endif /* LTDC_Layer2_BASE */
+
+  /* Reload during vertical blanking period */
+  __HAL_LTDC_VERTICAL_BLANKING_RELOAD_CONFIG(hltdc);
+
+  /* Get tick */
+  tickstart = HAL_GetTick();
+
+  /* Wait for VSYNC Interrupt */
+  while (READ_BIT(hltdc->Instance->CDSR, LTDC_CDSR_VSYNCS) == 0U)
+  {
+    /* Check for the Timeout */
+    if ((HAL_GetTick() - tickstart) > LTDC_TIMEOUT_VALUE)
+    {
+      break;
+    }
+  }
+
+  /* Disable LTDC  */
+  __HAL_LTDC_DISABLE(hltdc);
+
 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
   if (hltdc->MspDeInitCallback == NULL)
   {
@@ -391,7 +431,8 @@
   * @param pCallback pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_LTDC_RegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID, pLTDC_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_LTDC_RegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID,
+                                            pLTDC_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
@@ -473,7 +514,7 @@
 
 /**
   * @brief  Unregister an LTDC Callback
-  *         LTDC callabck is redirected to the weak predefined callback
+  *         LTDC callback is redirected to the weak predefined callback
   * @param hltdc ltdc handle
   * @param CallbackID ID of the callback to be unregistered
   *        This parameter can be one of the following values:
@@ -887,11 +928,13 @@
   {
     if (hltdc->LayerCfg[LayerIdx].PixelFormat == LTDC_PIXEL_FORMAT_AL44)
     {
-      tmp  = (((counter + (16U*counter)) << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
+      tmp  = (((counter + (16U * counter)) << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | \
+              ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
     }
     else
     {
-      tmp  = ((counter << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
+      tmp  = ((counter << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | \
+              ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
     }
 
     pcolorlut++;
@@ -1345,12 +1388,14 @@
 }
 
 /**
-  * @brief  Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a width that is
-  *         larger than the one intended to be displayed on screen. Example of a buffer 800x480 attached to layer for which we
-  *         want to read and display on screen only a portion 320x240 taken in the center of the buffer. The pitch in pixels
-  *         will be in that case 800 pixels and not 320 pixels as initially configured by previous call to HAL_LTDC_ConfigLayer().
-  * @note   This function should be called only after a previous call to HAL_LTDC_ConfigLayer() to modify the default pitch
-  *         configured by HAL_LTDC_ConfigLayer() when required (refer to example described just above).
+  * @brief  Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a width
+  *         that is larger than the one intended to be displayed on screen. Example of a buffer 800x480 attached to
+  *         layer for which we want to read and display on screen only a portion 320x240 taken in the center
+  *         of the buffer.
+  *         The pitch in pixels will be in that case 800 pixels and not 320 pixels as initially configured by previous
+  *         call to HAL_LTDC_ConfigLayer().
+  * @note   This function should be called only after a previous call to HAL_LTDC_ConfigLayer() to modify the default
+  *         pitch configured by HAL_LTDC_ConfigLayer() when required (refer to example described just above).
   * @param  hltdc              pointer to a LTDC_HandleTypeDef structure that contains
   *                            the configuration information for the LTDC.
   * @param  LinePitchInPixels  New line pitch in pixels to configure for LTDC layer 'LayerIdx'.
@@ -1504,7 +1549,8 @@
   *                    LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1)
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx)
+HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg,
+                                                uint32_t LayerIdx)
 {
   /* Check the parameters */
   assert_param(IS_LTDC_LAYER(LayerIdx));
@@ -1553,7 +1599,8 @@
   *                   LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1)
   * @retval  HAL status
   */
-HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx)
+HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize,
+                                                  uint32_t LayerIdx)
 {
   LTDC_LayerCfgTypeDef *pLayerCfg;
 
@@ -1607,7 +1654,8 @@
   *                         LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1)
   * @retval  HAL status
   */
-HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx)
+HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0,
+                                                      uint32_t LayerIdx)
 {
   LTDC_LayerCfgTypeDef *pLayerCfg;
 
@@ -1774,12 +1822,14 @@
 }
 
 /**
-  * @brief  Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a width that is
-  *         larger than the one intended to be displayed on screen. Example of a buffer 800x480 attached to layer for which we
-  *         want to read and display on screen only a portion 320x240 taken in the center of the buffer. The pitch in pixels
-  *         will be in that case 800 pixels and not 320 pixels as initially configured by previous call to HAL_LTDC_ConfigLayer().
-  * @note   This function should be called only after a previous call to HAL_LTDC_ConfigLayer() to modify the default pitch
-  *         configured by HAL_LTDC_ConfigLayer() when required (refer to example described just above).
+  * @brief  Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a width
+  *         that is larger than the one intended to be displayed on screen. Example of a buffer 800x480 attached to
+  *         layer for which we want to read and display on screen only a portion 320x240 taken in the center
+  *         of the buffer.
+  *         The pitch in pixels will be in that case 800 pixels and not 320 pixels as initially configured by
+  *         previous call to HAL_LTDC_ConfigLayer().
+  * @note   This function should be called only after a previous call to HAL_LTDC_ConfigLayer() to modify the default
+  *         pitch configured by HAL_LTDC_ConfigLayer() when required (refer to example described just above).
   *         Variant of the function HAL_LTDC_SetPitch without immediate reload.
   * @param  hltdc              pointer to a LTDC_HandleTypeDef structure that contains
   *                            the configuration information for the LTDC.
@@ -2082,7 +2132,8 @@
   /* Configure the horizontal start and stop position */
   tmp = ((pLayerCfg->WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U);
   LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
-  LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
+  LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + \
+                                         ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
 
   /* Configure the vertical start and stop position */
   tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
@@ -2097,7 +2148,8 @@
   tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U);
   tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U);
   tmp2 = (pLayerCfg->Alpha0 << 24U);
-  LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA);
+  LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED |
+                                         LTDC_LxDCCR_DCALPHA);
   LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2);
 
   /* Specifies the constant alpha value */
@@ -2134,7 +2186,8 @@
 
   /* Configure the color frame buffer pitch in byte */
   LTDC_LAYER(hltdc, LayerIdx)->CFBLR  &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
-  LTDC_LAYER(hltdc, LayerIdx)->CFBLR  = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp)  + 3U));
+  LTDC_LAYER(hltdc, LayerIdx)->CFBLR  = (((pLayerCfg->ImageWidth * tmp) << 16U) | \
+                                         (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp)  + 3U));
   /* Configure the frame buffer line number */
   LTDC_LAYER(hltdc, LayerIdx)->CFBLNR  &= ~(LTDC_LxCFBLNR_CFBLNBR);
   LTDC_LAYER(hltdc, LayerIdx)->CFBLNR  = (pLayerCfg->ImageHeight);
@@ -2160,4 +2213,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_ltdc_ex.c b/Src/stm32f4xx_hal_ltdc_ex.c
index 8c39194..2ee7795 100644
--- a/Src/stm32f4xx_hal_ltdc_ex.c
+++ b/Src/stm32f4xx_hal_ltdc_ex.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -76,7 +75,8 @@
                      LTDC_DEPOLARITY_AL <-> LTDC_DEPOLARITY_AH */
 
   /* Note 1 : Code in line w/ Current LTDC specification */
-  hltdc->Init.DEPolarity = (VidCfg->DEPolarity == DSI_DATA_ENABLE_ACTIVE_HIGH) ? LTDC_DEPOLARITY_AL : LTDC_DEPOLARITY_AH;
+  hltdc->Init.DEPolarity = (VidCfg->DEPolarity == \
+                            DSI_DATA_ENABLE_ACTIVE_HIGH) ? LTDC_DEPOLARITY_AL : LTDC_DEPOLARITY_AH;
   hltdc->Init.VSPolarity = (VidCfg->VSPolarity == DSI_VSYNC_ACTIVE_HIGH) ? LTDC_VSPOLARITY_AH : LTDC_VSPOLARITY_AL;
   hltdc->Init.HSPolarity = (VidCfg->HSPolarity == DSI_HSYNC_ACTIVE_HIGH) ? LTDC_HSPOLARITY_AH : LTDC_HSPOLARITY_AL;
 
@@ -88,8 +88,10 @@
   /* Retrieve vertical timing parameters from DSI */
   hltdc->Init.VerticalSync       = VidCfg->VerticalSyncActive - 1U;
   hltdc->Init.AccumulatedVBP     = VidCfg->VerticalSyncActive + VidCfg->VerticalBackPorch - 1U;
-  hltdc->Init.AccumulatedActiveH = VidCfg->VerticalSyncActive + VidCfg->VerticalBackPorch + VidCfg->VerticalActive - 1U;
-  hltdc->Init.TotalHeigh         = VidCfg->VerticalSyncActive + VidCfg->VerticalBackPorch + VidCfg->VerticalActive + VidCfg->VerticalFrontPorch - 1U;
+  hltdc->Init.AccumulatedActiveH = VidCfg->VerticalSyncActive + VidCfg->VerticalBackPorch + \
+                                   VidCfg->VerticalActive - 1U;
+  hltdc->Init.TotalHeigh         = VidCfg->VerticalSyncActive + VidCfg->VerticalBackPorch + \
+                                   VidCfg->VerticalActive + VidCfg->VerticalFrontPorch - 1U;
 
   return HAL_OK;
 }
@@ -114,7 +116,8 @@
                      LTDC_HSPOLARITY_AL <-> LTDC_HSPOLARITY_AH)*/
 
   /* Note 1 : Code in line w/ Current LTDC specification */
-  hltdc->Init.DEPolarity = (CmdCfg->DEPolarity == DSI_DATA_ENABLE_ACTIVE_HIGH) ? LTDC_DEPOLARITY_AL : LTDC_DEPOLARITY_AH;
+  hltdc->Init.DEPolarity = (CmdCfg->DEPolarity == \
+                            DSI_DATA_ENABLE_ACTIVE_HIGH) ? LTDC_DEPOLARITY_AL : LTDC_DEPOLARITY_AH;
   hltdc->Init.VSPolarity = (CmdCfg->VSPolarity == DSI_VSYNC_ACTIVE_HIGH) ? LTDC_VSPOLARITY_AL : LTDC_VSPOLARITY_AH;
   hltdc->Init.HSPolarity = (CmdCfg->HSPolarity == DSI_HSYNC_ACTIVE_HIGH) ? LTDC_HSPOLARITY_AL : LTDC_HSPOLARITY_AH;
 
@@ -146,4 +149,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_mmc.c b/Src/stm32f4xx_hal_mmc.c
index b0827f7..466eab5 100644
--- a/Src/stm32f4xx_hal_mmc.c
+++ b/Src/stm32f4xx_hal_mmc.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + MMC card Control functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -63,7 +74,7 @@
     SDMMC Peripheral (STM32 side) and the MMC Card, and put it into StandBy State (Ready for data transfer).
     This function provide the following operations:
 
-    (#) Initialize the SDMMC peripheral interface with defaullt configuration.
+    (#) Initialize the SDMMC peripheral interface with default configuration.
         The initialization process is done at 400KHz. You can change or adapt
         this frequency by adjusting the "ClockDiv" field.
         The MMC Card frequency (SDMMC_CK) is computed as follows:
@@ -238,17 +249,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -272,7 +272,30 @@
 /** @addtogroup MMC_Private_Defines
   * @{
   */
+#if defined (VDD_VALUE) && (VDD_VALUE <= 1950U)
+#define MMC_VOLTAGE_RANGE               EMMC_LOW_VOLTAGE_RANGE
 
+#define MMC_EXT_CSD_PWR_CL_26_INDEX     201
+#define MMC_EXT_CSD_PWR_CL_52_INDEX     200
+#define MMC_EXT_CSD_PWR_CL_DDR_52_INDEX 238
+
+#define MMC_EXT_CSD_PWR_CL_26_POS       8
+#define MMC_EXT_CSD_PWR_CL_52_POS       0
+#define MMC_EXT_CSD_PWR_CL_DDR_52_POS   16
+#else
+#define MMC_VOLTAGE_RANGE               EMMC_HIGH_VOLTAGE_RANGE
+
+#define MMC_EXT_CSD_PWR_CL_26_INDEX     203
+#define MMC_EXT_CSD_PWR_CL_52_INDEX     202
+#define MMC_EXT_CSD_PWR_CL_DDR_52_INDEX 239
+
+#define MMC_EXT_CSD_PWR_CL_26_POS       24
+#define MMC_EXT_CSD_PWR_CL_52_POS       16
+#define MMC_EXT_CSD_PWR_CL_DDR_52_POS   24
+#endif
+
+/* Frequencies used in the driver for clock divider calculation */
+#define MMC_INIT_FREQ                   400000U   /* Initialization phase : 400 kHz max */
 /**
   * @}
   */
@@ -296,6 +319,7 @@
 static void     MMC_DMAError(DMA_HandleTypeDef *hdma);
 static void     MMC_DMATxAbort(DMA_HandleTypeDef *hdma);
 static void     MMC_DMARxAbort(DMA_HandleTypeDef *hdma);
+static uint32_t MMC_PwrClassUpdate(MMC_HandleTypeDef *hmmc, uint32_t Wide);
 /**
   * @}
   */
@@ -375,7 +399,7 @@
   }
 
   /* Initialize the error code */
-  hmmc->ErrorCode = HAL_DMA_ERROR_NONE;
+  hmmc->ErrorCode = HAL_MMC_ERROR_NONE;
 
   /* Initialize the MMC operation */
   hmmc->Context = MMC_CONTEXT_NONE;
@@ -383,6 +407,15 @@
   /* Initialize the MMC state */
   hmmc->State = HAL_MMC_STATE_READY;
 
+  /* Configure bus width */
+  if (hmmc->Init.BusWide != SDIO_BUS_WIDE_1B)
+  {
+    if (HAL_MMC_ConfigWideBusOperation(hmmc, hmmc->Init.BusWide) != HAL_OK)
+    {
+      return HAL_ERROR;
+    }
+  }
+
   return HAL_OK;
 }
 
@@ -427,6 +460,9 @@
   /* Enable MMC Clock */
   __HAL_MMC_ENABLE(hmmc);
 
+  /* Required power up waiting time before starting the MMC initialization  sequence */
+  HAL_Delay(2);
+
   /* Identify card operating voltage */
   errorstate = MMC_PowerON(hmmc);
   if(errorstate != HAL_MMC_ERROR_NONE)
@@ -1151,7 +1187,7 @@
 
   if(hmmc->State == HAL_MMC_STATE_READY)
   {
-    hmmc->ErrorCode = HAL_DMA_ERROR_NONE;
+    hmmc->ErrorCode = HAL_MMC_ERROR_NONE;
 
     if((BlockAdd + NumberOfBlocks) > (hmmc->MmcCard.LogBlockNbr))
     {
@@ -2129,6 +2165,122 @@
 }
 
 /**
+  * @brief  Returns information the information of the card which are stored on
+  *         the Extended CSD register.
+  * @param  hmmc Pointer to MMC handle
+  * @param  pExtCSD Pointer to a memory area (512 bytes) that contains all 
+  *         Extended CSD register parameters
+  * @param  Timeout Specify timeout value
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_MMC_GetCardExtCSD(MMC_HandleTypeDef *hmmc, uint32_t *pExtCSD, uint32_t Timeout)
+{
+  SDIO_DataInitTypeDef config;
+  uint32_t errorstate;
+  uint32_t tickstart = HAL_GetTick();
+  uint32_t count;
+  uint32_t *tmp_buf;
+
+  if(NULL == pExtCSD)
+  {
+    hmmc->ErrorCode |= HAL_MMC_ERROR_PARAM;
+    return HAL_ERROR;
+  }
+
+  if(hmmc->State == HAL_MMC_STATE_READY)
+  {
+    hmmc->ErrorCode = HAL_MMC_ERROR_NONE;
+
+    hmmc->State = HAL_MMC_STATE_BUSY;
+
+    /* Initialize data control register */
+    hmmc->Instance->DCTRL = 0;
+
+    /* Initiaize the destination pointer */
+    tmp_buf = pExtCSD;
+
+    /* Configure the MMC DPSM (Data Path State Machine) */
+    config.DataTimeOut   = SDMMC_DATATIMEOUT;
+    config.DataLength    = 512;
+    config.DataBlockSize = SDIO_DATABLOCK_SIZE_512B;
+    config.TransferDir   = SDIO_TRANSFER_DIR_TO_SDIO;
+    config.TransferMode  = SDIO_TRANSFER_MODE_BLOCK;
+    config.DPSM          = SDIO_DPSM_ENABLE;
+    (void)SDIO_ConfigData(hmmc->Instance, &config);
+
+    /* Send ExtCSD Read command to Card */
+    errorstate = SDMMC_CmdSendEXTCSD(hmmc->Instance, 0);
+    if(errorstate != HAL_MMC_ERROR_NONE)
+    {
+      /* Clear all the static flags */
+      __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
+      hmmc->ErrorCode |= errorstate;
+      hmmc->State = HAL_MMC_STATE_READY;
+      return HAL_ERROR;
+    }
+
+    /* Poll on SDMMC flags */
+    while(!__HAL_MMC_GET_FLAG(hmmc, SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DATAEND))
+    {
+      if(__HAL_MMC_GET_FLAG(hmmc, SDIO_FLAG_RXFIFOHF))
+      {
+        /* Read data from SDMMC Rx FIFO */
+        for(count = 0U; count < 8U; count++)
+        {
+          *tmp_buf = SDIO_ReadFIFO(hmmc->Instance);
+          tmp_buf++;
+        }
+      }
+
+      if(((HAL_GetTick()-tickstart) >=  Timeout) || (Timeout == 0U))
+      {
+        /* Clear all the static flags */
+        __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
+        hmmc->ErrorCode |= HAL_MMC_ERROR_TIMEOUT;
+        hmmc->State= HAL_MMC_STATE_READY;
+        return HAL_TIMEOUT;
+      }
+    }
+
+    /* Get error state */
+    if(__HAL_MMC_GET_FLAG(hmmc, SDIO_FLAG_DTIMEOUT))
+    {
+      /* Clear all the static flags */
+      __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
+      hmmc->ErrorCode |= HAL_MMC_ERROR_DATA_TIMEOUT;
+      hmmc->State = HAL_MMC_STATE_READY;
+      return HAL_ERROR;
+    }
+    else if(__HAL_MMC_GET_FLAG(hmmc, SDIO_FLAG_DCRCFAIL))
+    {
+      /* Clear all the static flags */
+      __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
+      hmmc->ErrorCode |= HAL_MMC_ERROR_DATA_CRC_FAIL;
+      hmmc->State = HAL_MMC_STATE_READY;
+      return HAL_ERROR;
+    }
+    else if(__HAL_MMC_GET_FLAG(hmmc, SDIO_FLAG_RXOVERR))
+    {
+      /* Clear all the static flags */
+      __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
+      hmmc->ErrorCode |= HAL_MMC_ERROR_RX_OVERRUN;
+      hmmc->State = HAL_MMC_STATE_READY;
+      return HAL_ERROR;
+    }
+    else
+    {
+      /* Nothing to do */
+    }
+
+    /* Clear all the static flags */
+    __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_DATA_FLAGS);
+    hmmc->State = HAL_MMC_STATE_READY;
+  }
+
+  return HAL_OK;
+}
+
+/**
   * @brief  Enables wide bus operation for the requested card if supported by
   *         card.
   * @param  hmmc: Pointer to MMC handle
@@ -2141,10 +2293,10 @@
   */
 HAL_StatusTypeDef HAL_MMC_ConfigWideBusOperation(MMC_HandleTypeDef *hmmc, uint32_t WideMode)
 {
-  __IO uint32_t count = 0U;
+  uint32_t count;
   SDIO_InitTypeDef Init;
   uint32_t errorstate;
-  uint32_t response = 0U, busy = 0U;
+  uint32_t response = 0U;
 
   /* Check the parameters */
   assert_param(IS_SDIO_BUS_WIDE(WideMode));
@@ -2152,116 +2304,84 @@
   /* Change State */
   hmmc->State = HAL_MMC_STATE_BUSY;
 
-  /* Update Clock for Bus mode update */
-  Init.ClockEdge           = SDIO_CLOCK_EDGE_RISING;
-  Init.ClockBypass         = SDIO_CLOCK_BYPASS_DISABLE;
-  Init.ClockPowerSave      = SDIO_CLOCK_POWER_SAVE_DISABLE;
-  Init.BusWide             = WideMode;
-  Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
-  Init.ClockDiv            = SDIO_INIT_CLK_DIV;
-  /* Initialize SDIO*/
-  (void)SDIO_Init(hmmc->Instance, Init); 
+  errorstate = MMC_PwrClassUpdate(hmmc, WideMode);
 
-  if(WideMode == SDIO_BUS_WIDE_8B)
+  if(errorstate == HAL_MMC_ERROR_NONE)
   {
-    errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70200U);
-    if(errorstate != HAL_MMC_ERROR_NONE)
+    if(WideMode == SDIO_BUS_WIDE_8B)
     {
-      hmmc->ErrorCode |= errorstate;
+      errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70200U);
     }
-  }
-  else if(WideMode == SDIO_BUS_WIDE_4B)
-  {
-    errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70100U);
-    if(errorstate != HAL_MMC_ERROR_NONE)
+    else if(WideMode == SDIO_BUS_WIDE_4B)
     {
-      hmmc->ErrorCode |= errorstate;
+      errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70100U);
     }
-  }
-  else if(WideMode == SDIO_BUS_WIDE_1B)
-  {
-    errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70000U);
-    if(errorstate != HAL_MMC_ERROR_NONE)
+    else if(WideMode == SDIO_BUS_WIDE_1B)
     {
-      hmmc->ErrorCode |= errorstate;
+      errorstate = SDMMC_CmdSwitch(hmmc->Instance, 0x03B70000U);
     }
-  }
-  else
-  {
-    /* WideMode is not a valid argument*/
-    hmmc->ErrorCode |= HAL_MMC_ERROR_PARAM;
-  }
-
-  /* Check for switch error and violation of the trial number of sending CMD 13 */
-  while(busy == 0U)
-  {
-    if(count == SDMMC_MAX_TRIAL)
+    else
     {
-      hmmc->State = HAL_MMC_STATE_READY;
-      hmmc->ErrorCode |= HAL_MMC_ERROR_REQUEST_NOT_APPLICABLE;
-      return HAL_ERROR;
-    }
-    count++;
-
-    /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
-    errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
-    if(errorstate != HAL_MMC_ERROR_NONE)
-    {
-      hmmc->ErrorCode |= errorstate;
+      /* WideMode is not a valid argument*/
+      errorstate = HAL_MMC_ERROR_PARAM;
     }
 
-    /* Get command response */
-    response = SDIO_GetResponse(hmmc->Instance, SDIO_RESP1);
-
-    /* Get operating voltage*/
-    busy = (((response >> 7U) == 1U) ? 0U : 1U);
-  }
-
-  /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
-  count = SDMMC_DATATIMEOUT;
-  while((response & 0x00000100U) == 0U)
-  {
-    if(count == 0U)
+    /* Check for switch error and violation of the trial number of sending CMD 13 */
+    if(errorstate == HAL_MMC_ERROR_NONE)
     {
-      hmmc->State = HAL_MMC_STATE_READY;
-      hmmc->ErrorCode |= HAL_MMC_ERROR_REQUEST_NOT_APPLICABLE;
-      return HAL_ERROR;
+      /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
+      count = SDMMC_MAX_TRIAL;
+      do
+      {
+        errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
+        if(errorstate != HAL_MMC_ERROR_NONE)
+        {
+          break;
+        }
+        
+        /* Get command response */
+        response = SDIO_GetResponse(hmmc->Instance, SDIO_RESP1);
+        count--;
+      }while(((response & 0x100U) == 0U) && (count != 0U));
+
+      /* Check the status after the switch command execution */
+      if ((count != 0U) && (errorstate == HAL_MMC_ERROR_NONE))
+      {
+        /* Check the bit SWITCH_ERROR of the device status */
+        if ((response & 0x80U) != 0U)
+        {
+          errorstate = SDMMC_ERROR_GENERAL_UNKNOWN_ERR;
+        }
+        else
+        {
+          /* Configure the SDIO peripheral */
+          Init = hmmc->Init;
+          Init.BusWide = WideMode;
+          (void)SDIO_Init(hmmc->Instance, Init);
+        }
+      }
+      else if (count == 0U)
+      {
+        errorstate = SDMMC_ERROR_TIMEOUT;
+      }
+      else
+      {
+        /* Nothing to do */
+      }
     }
-    count--;
-
-    /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
-    errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
-    if(errorstate != HAL_MMC_ERROR_NONE)
-    {
-      hmmc->ErrorCode |= errorstate;
-    }
-
-    /* Get command response */
-    response = SDIO_GetResponse(hmmc->Instance, SDIO_RESP1);
-  }
-
-  if(hmmc->ErrorCode != HAL_MMC_ERROR_NONE)
-  {
-    /* Clear all the static flags */
-    __HAL_MMC_CLEAR_FLAG(hmmc, SDIO_STATIC_FLAGS);
-    hmmc->State = HAL_MMC_STATE_READY;
-    return HAL_ERROR;
-  }
-  else
-  {
-    /* Configure the SDIO peripheral */
-    Init.ClockEdge           = hmmc->Init.ClockEdge;
-    Init.ClockBypass         = hmmc->Init.ClockBypass;
-    Init.ClockPowerSave      = hmmc->Init.ClockPowerSave;
-    Init.BusWide             = WideMode;
-    Init.HardwareFlowControl = hmmc->Init.HardwareFlowControl;
-    Init.ClockDiv            = hmmc->Init.ClockDiv;
-    (void)SDIO_Init(hmmc->Instance, Init);
   }
 
   /* Change State */
   hmmc->State = HAL_MMC_STATE_READY;
 
+  if(errorstate != HAL_MMC_ERROR_NONE)
+  {
+    /* Clear all the static flags */
+    __HAL_MMC_CLEAR_FLAG(hmmc, SDMMC_STATIC_FLAGS);
+    hmmc->ErrorCode |= errorstate;
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
@@ -2622,7 +2742,8 @@
 {
   HAL_MMC_CardCSDTypeDef CSD;
   uint32_t errorstate;
-  uint16_t mmc_rca = 1U;
+  uint16_t mmc_rca = 2U;
+  MMC_InitTypeDef Init;
 
   /* Check the power State */
   if(SDIO_GetPowerState(hmmc->Instance) == 0U)
@@ -2646,9 +2767,9 @@
     hmmc->CID[3U] = SDIO_GetResponse(hmmc->Instance, SDIO_RESP4);
   }
 
-  /* Send CMD3 SET_REL_ADDR with argument 0 */
+  /* Send CMD3 SET_REL_ADDR with RCA = 2 (should be greater than 1) */
   /* MMC Card publishes its RCA. */
-  errorstate = SDMMC_CmdSetRelAdd(hmmc->Instance, &mmc_rca);
+  errorstate = SDMMC_CmdSetRelAddMmc(hmmc->Instance, mmc_rca);
   if(errorstate != HAL_MMC_ERROR_NONE)
   {
     return errorstate;
@@ -2675,12 +2796,6 @@
   /* Get the Card Class */
   hmmc->MmcCard.Class = (SDIO_GetResponse(hmmc->Instance, SDIO_RESP2) >> 20U);
 
-  /* Get CSD parameters */
-  if (HAL_MMC_GetCardCSD(hmmc, &CSD) != HAL_OK)
-  {
-    return hmmc->ErrorCode;
-  }
-
   /* Select the Card */
   errorstate = SDMMC_CmdSelDesel(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
   if(errorstate != HAL_MMC_ERROR_NONE)
@@ -2688,8 +2803,36 @@
     return errorstate;
   }
 
-  /* Configure SDIO peripheral interface */
-  (void)SDIO_Init(hmmc->Instance, hmmc->Init);
+  /* Get CSD parameters */
+  if (HAL_MMC_GetCardCSD(hmmc, &CSD) != HAL_OK)
+  {
+    return hmmc->ErrorCode;
+  }
+
+  /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
+  errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
+  if(errorstate != HAL_MMC_ERROR_NONE)
+  {
+    hmmc->ErrorCode |= errorstate;
+  }
+  
+  /* Get Extended CSD parameters */
+  if (HAL_MMC_GetCardExtCSD(hmmc, hmmc->Ext_CSD, SDMMC_DATATIMEOUT) != HAL_OK)
+  {
+    return hmmc->ErrorCode;
+  }
+
+  /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
+  errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
+  if(errorstate != HAL_MMC_ERROR_NONE)
+  {
+    hmmc->ErrorCode |= errorstate;
+  }
+
+  /* Configure the SDIO peripheral */
+  Init = hmmc->Init;
+  Init.BusWide = SDIO_BUS_WIDE_1B;
+  (void)SDIO_Init(hmmc->Instance, Init);
 
   /* All cards are initialized */
   return HAL_MMC_ERROR_NONE;
@@ -2722,8 +2865,8 @@
       return HAL_MMC_ERROR_INVALID_VOLTRANGE;
     }
 
-    /* SEND CMD1 APP_CMD with MMC_HIGH_VOLTAGE_RANGE(0xC0FF8000) as argument */
-    errorstate = SDMMC_CmdOpCondition(hmmc->Instance, eMMC_HIGH_VOLTAGE_RANGE);
+    /* SEND CMD1 APP_CMD with voltage range as argument */
+    errorstate = SDMMC_CmdOpCondition(hmmc->Instance, MMC_VOLTAGE_RANGE);
     if(errorstate != HAL_MMC_ERROR_NONE)
     {
       return HAL_MMC_ERROR_UNSUPPORTED_FEATURE;
@@ -2955,6 +3098,93 @@
 }
 
 /**
+  * @brief  Update the power class of the device.
+  * @param  hmmc MMC handle
+  * @param  Wide Wide of MMC bus
+  * @param  Speed Speed of the MMC bus
+  * @retval MMC Card error state
+  */
+static uint32_t MMC_PwrClassUpdate(MMC_HandleTypeDef *hmmc, uint32_t Wide)
+{
+  uint32_t count;
+  uint32_t response = 0U;
+  uint32_t errorstate = HAL_MMC_ERROR_NONE;
+  uint32_t power_class, supported_pwr_class;
+
+  if((Wide == SDIO_BUS_WIDE_8B) || (Wide == SDIO_BUS_WIDE_4B))
+  {
+    power_class = 0U; /* Default value after power-on or software reset */
+
+    /* Read the PowerClass field of the Extended CSD register */
+    if(MMC_ReadExtCSD(hmmc, &power_class, 187, SDMMC_DATATIMEOUT) != HAL_OK) /* Field POWER_CLASS [187] */
+    {
+      errorstate = SDMMC_ERROR_GENERAL_UNKNOWN_ERR;
+    }
+    else
+    {
+      power_class = ((power_class >> 24U) & 0x000000FFU);
+    }
+
+    /* Get the supported PowerClass field of the Extended CSD register */
+    /* Field PWR_CL_26_xxx [201 or 203] */
+    supported_pwr_class = ((hmmc->Ext_CSD[(MMC_EXT_CSD_PWR_CL_26_INDEX/4)] >> MMC_EXT_CSD_PWR_CL_26_POS) & 0x000000FFU);
+
+    if(errorstate == HAL_MMC_ERROR_NONE)
+    {
+      if(Wide == SDIO_BUS_WIDE_8B)
+      {
+        /* Bit [7:4] : power class for 8-bits bus configuration - Bit [3:0] : power class for 4-bits bus configuration */
+        supported_pwr_class = (supported_pwr_class >> 4U);
+      }
+
+      if ((power_class & 0x0FU) != (supported_pwr_class & 0x0FU))
+      {
+        /* Need to change current power class */
+        errorstate = SDMMC_CmdSwitch(hmmc->Instance, (0x03BB0000U | ((supported_pwr_class & 0x0FU) << 8U)));
+
+        if(errorstate == HAL_MMC_ERROR_NONE)
+        {
+          /* While card is not ready for data and trial number for sending CMD13 is not exceeded */
+          count = SDMMC_MAX_TRIAL;
+          do
+          {
+            errorstate = SDMMC_CmdSendStatus(hmmc->Instance, (uint32_t)(((uint32_t)hmmc->MmcCard.RelCardAdd) << 16U));
+            if(errorstate != HAL_MMC_ERROR_NONE)
+            {
+              break;
+            }
+
+            /* Get command response */
+            response = SDIO_GetResponse(hmmc->Instance, SDIO_RESP1);
+            count--;
+          }while(((response & 0x100U) == 0U) && (count != 0U));
+
+          /* Check the status after the switch command execution */
+          if ((count != 0U) && (errorstate == HAL_MMC_ERROR_NONE))
+          {
+            /* Check the bit SWITCH_ERROR of the device status */
+            if ((response & 0x80U) != 0U)
+            {
+              errorstate = SDMMC_ERROR_UNSUPPORTED_FEATURE;
+            }
+          }
+          else if (count == 0U)
+          {
+            errorstate = SDMMC_ERROR_TIMEOUT;
+          }
+          else
+          {
+            /* Nothing to do */
+          }
+        }
+      }
+    }
+  }
+
+  return errorstate;
+}
+
+/**
   * @}
   */
 
@@ -2969,5 +3199,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_msp_template.c b/Src/stm32f4xx_hal_msp_template.c
index 67f658c..82de111 100644
--- a/Src/stm32f4xx_hal_msp_template.c
+++ b/Src/stm32f4xx_hal_msp_template.c
@@ -8,13 +8,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */ 
@@ -98,4 +97,4 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_nand.c b/Src/stm32f4xx_hal_nand.c
index 2bff47f..a0b89e6 100644
--- a/Src/stm32f4xx_hal_nand.c
+++ b/Src/stm32f4xx_hal_nand.c
@@ -3,53 +3,64 @@
   * @file    stm32f4xx_hal_nand.c
   * @author  MCD Application Team
   * @brief   NAND HAL module driver.
-  *          This file provides a generic firmware to drive NAND memories mounted 
+  *          This file provides a generic firmware to drive NAND memories mounted
   *          as external device.
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                          ##### How to use this driver #####
-  ==============================================================================    
+  ==============================================================================
     [..]
-      This driver is a generic layered driver which contains a set of APIs used to 
-      control NAND flash memories. It uses the FMC/FSMC layer functions to interface 
+      This driver is a generic layered driver which contains a set of APIs used to
+      control NAND flash memories. It uses the FMC/FSMC layer functions to interface
       with NAND devices. This driver is used as follows:
-    
-      (+) NAND flash memory configuration sequence using the function HAL_NAND_Init() 
+
+      (+) NAND flash memory configuration sequence using the function HAL_NAND_Init()
           with control and timing parameters for both common and attribute spaces.
-            
+
       (+) Read NAND flash memory maker and device IDs using the function
-          HAL_NAND_Read_ID(). The read information is stored in the NAND_ID_TypeDef 
-          structure declared by the function caller. 
-        
+          HAL_NAND_Read_ID(). The read information is stored in the NAND_ID_TypeDef
+          structure declared by the function caller.
+
       (+) Access NAND flash memory by read/write operations using the functions
-          HAL_NAND_Read_Page_8b()/HAL_NAND_Read_SpareArea_8b(), 
+          HAL_NAND_Read_Page_8b()/HAL_NAND_Read_SpareArea_8b(),
           HAL_NAND_Write_Page_8b()/HAL_NAND_Write_SpareArea_8b(),
-          HAL_NAND_Read_Page_16b()/HAL_NAND_Read_SpareArea_16b(), 
+          HAL_NAND_Read_Page_16b()/HAL_NAND_Read_SpareArea_16b(),
           HAL_NAND_Write_Page_16b()/HAL_NAND_Write_SpareArea_16b()
-          to read/write page(s)/spare area(s). These functions use specific device 
-          information (Block, page size..) predefined by the user in the HAL_NAND_Info_TypeDef 
+          to read/write page(s)/spare area(s). These functions use specific device
+          information (Block, page size..) predefined by the user in the NAND_DeviceConfigTypeDef
           structure. The read/write address information is contained by the Nand_Address_Typedef
           structure passed as parameter.
-        
+
       (+) Perform NAND flash Reset chip operation using the function HAL_NAND_Reset().
-        
+
       (+) Perform NAND flash erase block operation using the function HAL_NAND_Erase_Block().
-          The erase block address information is contained in the Nand_Address_Typedef 
+          The erase block address information is contained in the Nand_Address_Typedef
           structure passed as parameter.
-    
+
       (+) Read the NAND flash status operation using the function HAL_NAND_Read_Status().
-        
+
       (+) You can also control the NAND device by calling the control APIs HAL_NAND_ECC_Enable()/
           HAL_NAND_ECC_Disable() to respectively enable/disable the ECC code correction
-          feature or the function HAL_NAND_GetECC() to get the ECC correction code. 
-       
+          feature or the function HAL_NAND_GetECC() to get the ECC correction code.
+
       (+) You can monitor the NAND device HAL state by calling the function
-          HAL_NAND_GetState()  
+          HAL_NAND_GetState()
 
     [..]
       (@) This driver is a set of generic APIs which handle standard NAND flash operations.
-          If a NAND flash device contains different operations and/or implementations, 
+          If a NAND flash device contains different operations and/or implementations,
           it should be implemented separately.
 
     *** Callback registration ***
@@ -58,25 +69,25 @@
       The compilation define  USE_HAL_NAND_REGISTER_CALLBACKS when set to 1
       allows the user to configure dynamically the driver callbacks.
 
-      Use Functions @ref HAL_NAND_RegisterCallback() to register a user callback,
+      Use Functions HAL_NAND_RegisterCallback() to register a user callback,
       it allows to register following callbacks:
         (+) MspInitCallback    : NAND MspInit.
         (+) MspDeInitCallback  : NAND MspDeInit.
       This function takes as parameters the HAL peripheral handle, the Callback ID
       and a pointer to the user callback function.
 
-      Use function @ref HAL_NAND_UnRegisterCallback() to reset a callback to the default
+      Use function HAL_NAND_UnRegisterCallback() to reset a callback to the default
       weak (surcharged) function. It allows to reset following callbacks:
         (+) MspInitCallback    : NAND MspInit.
         (+) MspDeInitCallback  : NAND MspDeInit.
       This function) takes as parameters the HAL peripheral handle and the Callback ID.
 
-      By default, after the @ref HAL_NAND_Init and if the state is HAL_NAND_STATE_RESET
+      By default, after the HAL_NAND_Init and if the state is HAL_NAND_STATE_RESET
       all callbacks are reset to the corresponding legacy weak (surcharged) functions.
       Exception done for MspInit and MspDeInit callbacks that are respectively
-      reset to the legacy weak (surcharged) functions in the @ref HAL_NAND_Init
-      and @ref  HAL_NAND_DeInit only when these callbacks are null (not registered beforehand).
-      If not, MspInit or MspDeInit are not null, the @ref HAL_NAND_Init and @ref HAL_NAND_DeInit
+      reset to the legacy weak (surcharged) functions in the HAL_NAND_Init
+      and  HAL_NAND_DeInit only when these callbacks are null (not registered beforehand).
+      If not, MspInit or MspDeInit are not null, the HAL_NAND_Init and HAL_NAND_DeInit
       keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
       Callbacks can be registered/unregistered in READY state only.
@@ -84,8 +95,8 @@
       in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
       during the Init/DeInit.
       In that case first register the MspInit/MspDeInit user callbacks
-      using @ref HAL_NAND_RegisterCallback before calling @ref HAL_NAND_DeInit
-      or @ref HAL_NAND_Init function.
+      using HAL_NAND_RegisterCallback before calling HAL_NAND_DeInit
+      or HAL_NAND_Init function.
 
       When The compilation define USE_HAL_NAND_REGISTER_CALLBACKS is set to 0 or
       not defined, the callback registering feature is not available
@@ -93,78 +104,50 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
 
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
-
 #ifdef HAL_NAND_MODULE_ENABLED
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-
-/** @defgroup NAND NAND 
+/** @defgroup NAND NAND
   * @brief NAND HAL module driver
   * @{
   */
 
 /* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/** @defgroup NAND_Private_Constants NAND Private Constants
-  * @{
-  */
-
-/**
-  * @}
-  */
-
-/* Private macro -------------------------------------------------------------*/    
-/** @defgroup NAND_Private_Macros NAND Private Macros
-  * @{
-  */
-
-/**
-  * @}
-  */
+/* Private Constants ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
-/* Exported functions --------------------------------------------------------*/
+/* Exported functions ---------------------------------------------------------*/
+
 /** @defgroup NAND_Exported_Functions NAND Exported Functions
   * @{
   */
-    
-/** @defgroup NAND_Exported_Functions_Group1 Initialization and de-initialization functions 
-  * @brief    Initialization and Configuration functions 
+
+/** @defgroup NAND_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
             ##### NAND Initialization and de-initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to initialize/de-initialize
     the NAND memory
-  
+
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Perform NAND memory Initialization sequence
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
@@ -173,21 +156,22 @@
   * @param  AttSpace_Timing pointer to Attribute space timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef  HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing, FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing)
+HAL_StatusTypeDef  HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing,
+                                 FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing)
 {
   /* Check the NAND handle state */
-  if(hnand == NULL)
+  if (hnand == NULL)
   {
-     return HAL_ERROR;
+    return HAL_ERROR;
   }
 
-  if(hnand->State == HAL_NAND_STATE_RESET)
+  if (hnand->State == HAL_NAND_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hnand->Lock = HAL_UNLOCKED;
 
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
-    if(hnand->MspInitCallback == NULL)
+    if (hnand->MspInitCallback == NULL)
     {
       hnand->MspInitCallback = HAL_NAND_MspInit;
     }
@@ -198,21 +182,25 @@
 #else
     /* Initialize the low level hardware (MSP) */
     HAL_NAND_MspInit(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
   }
 
   /* Initialize NAND control Interface */
-  FMC_NAND_Init(hnand->Instance, &(hnand->Init));
-  
-  /* Initialize NAND common space timing Interface */  
-  FMC_NAND_CommonSpace_Timing_Init(hnand->Instance, ComSpace_Timing, hnand->Init.NandBank);
-  
-  /* Initialize NAND attribute space timing Interface */  
-  FMC_NAND_AttributeSpace_Timing_Init(hnand->Instance, AttSpace_Timing, hnand->Init.NandBank);
-  
+  (void)FMC_NAND_Init(hnand->Instance, &(hnand->Init));
+
+  /* Initialize NAND common space timing Interface */
+  (void)FMC_NAND_CommonSpace_Timing_Init(hnand->Instance, ComSpace_Timing, hnand->Init.NandBank);
+
+  /* Initialize NAND attribute space timing Interface */
+  (void)FMC_NAND_AttributeSpace_Timing_Init(hnand->Instance, AttSpace_Timing, hnand->Init.NandBank);
+
   /* Enable the NAND device */
+#if defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
   __FMC_NAND_ENABLE(hnand->Instance, hnand->Init.NandBank);
-  
+#else
+  __FMC_NAND_ENABLE(hnand->Instance);
+#endif
+
   /* Update the NAND controller state */
   hnand->State = HAL_NAND_STATE_READY;
 
@@ -225,10 +213,10 @@
   *                the configuration information for NAND module.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_DeInit(NAND_HandleTypeDef *hnand)  
+HAL_StatusTypeDef HAL_NAND_DeInit(NAND_HandleTypeDef *hnand)
 {
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
-  if(hnand->MspDeInitCallback == NULL)
+  if (hnand->MspDeInitCallback == NULL)
   {
     hnand->MspDeInitCallback = HAL_NAND_MspDeInit;
   }
@@ -238,10 +226,10 @@
 #else
   /* Initialize the low level hardware (MSP) */
   HAL_NAND_MspDeInit(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
 
   /* Configure the NAND registers with their reset values */
-  FMC_NAND_DeInit(hnand->Instance, hnand->Init.NandBank);
+  (void)FMC_NAND_DeInit(hnand->Instance, hnand->Init.NandBank);
 
   /* Reset the NAND controller state */
   hnand->State = HAL_NAND_STATE_RESET;
@@ -262,9 +250,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnand);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NAND_MspInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -277,9 +266,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnand);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NAND_MspDeInit could be implemented in the user file
-   */ 
+   */
 }
 
 
@@ -288,64 +278,81 @@
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @retval HAL status
-*/
+  */
 void HAL_NAND_IRQHandler(NAND_HandleTypeDef *hnand)
 {
   /* Check NAND interrupt Rising edge flag */
-  if(__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_RISING_EDGE))
+  if (__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_RISING_EDGE))
   {
     /* NAND interrupt callback*/
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
     hnand->ItCallback(hnand);
 #else
     HAL_NAND_ITCallback(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
 
     /* Clear NAND interrupt Rising edge pending bit */
+#if defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
     __FMC_NAND_CLEAR_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_RISING_EDGE);
+#else
+    __FMC_NAND_CLEAR_FLAG(hnand->Instance, FMC_FLAG_RISING_EDGE);
+#endif /* FMC_Bank2_3 || FSMC_Bank2_3 */
   }
-  
+
   /* Check NAND interrupt Level flag */
-  if(__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_LEVEL))
+  if (__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_LEVEL))
   {
     /* NAND interrupt callback*/
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
     hnand->ItCallback(hnand);
 #else
     HAL_NAND_ITCallback(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
 
     /* Clear NAND interrupt Level pending bit */
+#if defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
     __FMC_NAND_CLEAR_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_LEVEL);
+#else
+    __FMC_NAND_CLEAR_FLAG(hnand->Instance, FMC_FLAG_LEVEL);
+#endif /* FMC_Bank2_3 || FSMC_Bank2_3 */
   }
 
   /* Check NAND interrupt Falling edge flag */
-  if(__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FALLING_EDGE))
+  if (__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FALLING_EDGE))
   {
     /* NAND interrupt callback*/
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
     hnand->ItCallback(hnand);
 #else
     HAL_NAND_ITCallback(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
 
     /* Clear NAND interrupt Falling edge pending bit */
+#if defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
     __FMC_NAND_CLEAR_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FALLING_EDGE);
+#else
+    __FMC_NAND_CLEAR_FLAG(hnand->Instance, FMC_FLAG_FALLING_EDGE);
+#endif /* FMC_Bank2_3 || FSMC_Bank2_3 */
   }
-  
+
   /* Check NAND interrupt FIFO empty flag */
-  if(__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FEMPT))
+  if (__FMC_NAND_GET_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FEMPT))
   {
     /* NAND interrupt callback*/
 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
     hnand->ItCallback(hnand);
 #else
     HAL_NAND_ITCallback(hnand);
-#endif
+#endif /* (USE_HAL_NAND_REGISTER_CALLBACKS) */
 
     /* Clear NAND interrupt FIFO empty pending bit */
+#if defined(FMC_Bank2_3) || defined(FSMC_Bank2_3)
     __FMC_NAND_CLEAR_FLAG(hnand->Instance, hnand->Init.NandBank, FMC_FLAG_FEMPT);
+#else
+    __FMC_NAND_CLEAR_FLAG(hnand->Instance, FMC_FLAG_FEMPT);
+#endif /* FMC_Bank2_3 || FSMC_Bank2_3 */
   }
+
 }
 
 /**
@@ -358,26 +365,27 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnand);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NAND_ITCallback could be implemented in the user file
    */
 }
- 
+
 /**
   * @}
   */
-  
-/** @defgroup NAND_Exported_Functions_Group2 Input and Output functions 
-  * @brief    Input Output and memory control functions 
+
+/** @defgroup NAND_Exported_Functions_Group2 Input and Output functions
+  * @brief    Input Output and memory control functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
                     ##### NAND Input and Output functions #####
   ==============================================================================
-  [..]  
-    This section provides functions allowing to use and control the NAND 
+  [..]
+    This section provides functions allowing to use and control the NAND
     memory
-  
+
 @endverbatim
   * @{
   */
@@ -391,69 +399,81 @@
   */
 HAL_StatusTypeDef HAL_NAND_Read_ID(NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID)
 {
-  __IO uint32_t data = 0U;
-  __IO uint32_t data1 = 0U;
-  uint32_t deviceaddress = 0U;
+  __IO uint32_t data = 0;
+  __IO uint32_t data1 = 0;
+  uint32_t deviceaddress;
 
-  /* Process Locked */
-  __HAL_LOCK(hnand);  
-  
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
-  }
-  else
-  {
-    deviceaddress = NAND_DEVICE2;
-  }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* Send Read ID command sequence */   
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_READID;
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
 
-  /* Read the electronic signature from NAND flash */
-#ifdef FSMC_PCR2_PWID
-  if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
-#else /* FMC_PCR2_PWID is defined */
-  if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
 #endif
-  {
-    data = *(__IO uint32_t *)deviceaddress;
 
-    /* Return the data read */
-    pNAND_ID->Maker_Id   = ADDR_1ST_CYCLE(data);
-    pNAND_ID->Device_Id  = ADDR_2ND_CYCLE(data);
-    pNAND_ID->Third_Id   = ADDR_3RD_CYCLE(data);
-    pNAND_ID->Fourth_Id  = ADDR_4TH_CYCLE(data);
+    /* Send Read ID command sequence */
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_READID;
+    __DSB();
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
+    __DSB();
+
+    /* Read the electronic signature from NAND flash */
+#ifdef FSMC_PCR2_PWID
+    if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#else /* FMC_PCR2_PWID is defined */
+    if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#endif
+    {
+      data = *(__IO uint32_t *)deviceaddress;
+
+      /* Return the data read */
+      pNAND_ID->Maker_Id   = ADDR_1ST_CYCLE(data);
+      pNAND_ID->Device_Id  = ADDR_2ND_CYCLE(data);
+      pNAND_ID->Third_Id   = ADDR_3RD_CYCLE(data);
+      pNAND_ID->Fourth_Id  = ADDR_4TH_CYCLE(data);
+    }
+    else
+    {
+      data = *(__IO uint32_t *)deviceaddress;
+      data1 = *((__IO uint32_t *)deviceaddress + 4);
+
+      /* Return the data read */
+      pNAND_ID->Maker_Id   = ADDR_1ST_CYCLE(data);
+      pNAND_ID->Device_Id  = ADDR_3RD_CYCLE(data);
+      pNAND_ID->Third_Id   = ADDR_1ST_CYCLE(data1);
+      pNAND_ID->Fourth_Id  = ADDR_3RD_CYCLE(data1);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    data = *(__IO uint32_t *)deviceaddress;
-    data1 = *((__IO uint32_t *)deviceaddress + 4U);
-    
-    /* Return the data read */
-    pNAND_ID->Maker_Id   = ADDR_1ST_CYCLE(data);
-    pNAND_ID->Device_Id  = ADDR_3RD_CYCLE(data);
-    pNAND_ID->Third_Id   = ADDR_1ST_CYCLE(data1);
-    pNAND_ID->Fourth_Id  = ADDR_3RD_CYCLE(data1);
+    return HAL_ERROR;
   }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-   
+
   return HAL_OK;
 }
 
@@ -465,39 +485,48 @@
   */
 HAL_StatusTypeDef HAL_NAND_Reset(NAND_HandleTypeDef *hnand)
 {
-  uint32_t deviceaddress = 0U;
-
-  /* Process Locked */
-  __HAL_LOCK(hnand);
+  uint32_t deviceaddress;
 
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* Send NAND reset command */
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = 0xFF;
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
-  }  
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY; 
-  
-  /* Send NAND reset command */  
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = 0xFF;
-
-
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
+    return HAL_ERROR;
+  }
 
   return HAL_OK;
 
@@ -519,139 +548,176 @@
   hnand->Config.PlaneSize          = pDeviceConfig->PlaneSize;
   hnand->Config.PlaneNbr           = pDeviceConfig->PlaneNbr;
   hnand->Config.ExtraCommandEnable = pDeviceConfig->ExtraCommandEnable;
-  
+
   return HAL_OK;
 }
-  
+
 /**
   * @brief  Read Page(s) from NAND memory block (8-bits addressing)
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
   * @param  pBuffer  pointer to destination read buffer
-  * @param  NumPageToRead  number of pages to read from block 
+  * @param  NumPageToRead  number of pages to read from block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToRead)
-{   
-  __IO uint32_t index  = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numPagesRead = 0U, nandaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand); 
-  
+HAL_StatusTypeDef HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer,
+                                        uint32_t NumPageToRead)
+{
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numpagesread = 0U;
+  uint32_t nandaddress;
+  uint32_t nbpages = NumPageToRead;
+  uint8_t *buff = pBuffer;
+
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Page(s) read loop */
+    while ((nbpages != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Send read page command sequence */
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+      __DSB();
+
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_AREA_TRUE1;
+      __DSB();
+
+
+      if (hnand->Config.ExtraCommandEnable == ENABLE)
+      {
+        /* Get tick */
+        tickstart = HAL_GetTick();
+
+        /* Read status until NAND is ready */
+        while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+        {
+          if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+          {
+            /* Update the NAND controller state */
+            hnand->State = HAL_NAND_STATE_ERROR;
+
+            /* Process unlocked */
+            __HAL_UNLOCK(hnand);
+
+            return HAL_TIMEOUT;
+          }
+        }
+
+        /* Go back to read mode */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
+        __DSB();
+      }
+
+      /* Get Data into Buffer */
+      for (index = 0U; index < hnand->Config.PageSize; index++)
+      {
+        *buff = *(uint8_t *)deviceaddress;
+        buff++;
+      }
+
+      /* Increment read pages number */
+      numpagesread++;
+
+      /* Decrement pages to read */
+      nbpages--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
+    return HAL_ERROR;
   }
 
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-
-  /* Page(s) read loop */  
-  while((NumPageToRead != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.PageSize) + ((hnand->Config.PageSize) * numPagesRead);
-    
-    /* Send read page command sequence */
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-   
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-  
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_AREA_TRUE1;
-      
-    /* Check if an extra command is needed for reading pages  */
-    if(hnand->Config.ExtraCommandEnable == ENABLE)
-    {
-      /* Get tick */
-      tickstart = HAL_GetTick();
-      
-      /* Read status until NAND is ready */
-      while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-      {
-        if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-        {
-          return HAL_TIMEOUT; 
-        }
-      }
-      
-      /* Go back to read mode */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
-      __DSB();
-    }
-    
-    /* Get Data into Buffer */    
-    for(; index < size; index++)
-    {
-      *(uint8_t *)pBuffer++ = *(uint8_t *)deviceaddress;
-    }
-    
-    /* Increment read pages number */
-    numPagesRead++;
-    
-    /* Decrement pages to read */
-    NumPageToRead--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
-  }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-
   return HAL_OK;
 }
 
@@ -661,143 +727,180 @@
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
   * @param  pBuffer  pointer to destination read buffer. pBuffer should be 16bits aligned
-  * @param  NumPageToRead  number of pages to read from block 
+  * @param  NumPageToRead  number of pages to read from block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToRead)
-{   
-  __IO uint32_t index  = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numPagesRead = 0U, nandaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand); 
-  
+HAL_StatusTypeDef HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer,
+                                         uint32_t NumPageToRead)
+{
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numpagesread = 0U;
+  uint32_t nandaddress;
+  uint32_t nbpages = NumPageToRead;
+  uint16_t *buff = pBuffer;
+
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
-  }
-  else
-  {
-    deviceaddress = NAND_DEVICE2;
-  }
+    /* Process Locked */
+    __HAL_LOCK(hnand);
 
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-  
-  /* Page(s) read loop */  
-  while((NumPageToRead != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.PageSize) + ((hnand->Config.PageSize) * numPagesRead);
-    
-    /* Send read page command sequence */
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;  
-    __DSB();
-    
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-  
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_AREA_TRUE1;
-    
-    if(hnand->Config.ExtraCommandEnable == ENABLE)
-    {
-      /* Get tick */
-      tickstart = HAL_GetTick();
-      
-      /* Read status until NAND is ready */
-      while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-      {
-        if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-        {
-          return HAL_TIMEOUT; 
-        }
-      }
-      
-      /* Go back to read mode */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
-    }
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
 
-    /* Calculate PageSize */
-#ifdef FSMC_PCR2_PWID
-    if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
-#else /* FMC_PCR2_PWID is defined */
-    if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
-#endif
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
     {
-      size = size / 2U;
+      deviceaddress = NAND_DEVICE1;
     }
     else
     {
-      /* Do nothing */
-      /* Keep the same PageSize for FMC_NAND_MEM_BUS_WIDTH_16*/
+      deviceaddress = NAND_DEVICE2;
     }
-    
-    /* Get Data into Buffer */    
-    for(; index < size; index++)
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Page(s) read loop */
+    while ((nbpages != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
     {
-      *(uint16_t *)pBuffer++ = *(uint16_t *)deviceaddress;
+      /* Send read page command sequence */
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+      __DSB();
+
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA))  = NAND_CMD_AREA_TRUE1;
+      __DSB();
+
+      if (hnand->Config.ExtraCommandEnable == ENABLE)
+      {
+        /* Get tick */
+        tickstart = HAL_GetTick();
+
+        /* Read status until NAND is ready */
+        while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+        {
+          if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+          {
+            /* Update the NAND controller state */
+            hnand->State = HAL_NAND_STATE_ERROR;
+
+            /* Process unlocked */
+            __HAL_UNLOCK(hnand);
+
+            return HAL_TIMEOUT;
+          }
+        }
+
+        /* Go back to read mode */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
+        __DSB();
+      }
+
+      /* Calculate PageSize */
+#if defined(FSMC_PCR2_PWID)
+    if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#else
+    if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#endif /* FSMC_PCR2_PWID */
+      {
+        hnand->Config.PageSize = hnand->Config.PageSize / 2U;
+      }
+      else
+      {
+        /* Do nothing */
+        /* Keep the same PageSize for FMC_NAND_MEM_BUS_WIDTH_16*/
+      }
+
+      /* Get Data into Buffer */
+      for (index = 0U; index < hnand->Config.PageSize; index++)
+      {
+        *buff = *(uint16_t *)deviceaddress;
+        buff++;
+      }
+
+      /* Increment read pages number */
+      numpagesread++;
+
+      /* Decrement pages to read */
+      nbpages--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
     }
-    
-    /* Increment read pages number */
-    numPagesRead++;
-    
-    /* Decrement pages to read */
-    NumPageToRead--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);  
-    
+  else
+  {
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
@@ -806,127 +909,162 @@
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
-  * @param  pBuffer  pointer to source buffer to write  
-  * @param  NumPageToWrite   number of pages to write to block 
+  * @param  pBuffer  pointer to source buffer to write
+  * @param  NumPageToWrite   number of pages to write to block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToWrite)
+HAL_StatusTypeDef HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer,
+                                         uint32_t NumPageToWrite)
 {
-  __IO uint32_t index = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numPagesWritten = 0U, nandaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand);  
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numpageswritten = 0U;
+  uint32_t nandaddress;
+  uint32_t nbpages = NumPageToWrite;
+  uint8_t *buff = pBuffer;
 
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Page(s) write loop */
+    while ((nbpages != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Send write page command sequence */
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+      __DSB();
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+      __DSB();
+
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      /* Write data to memory */
+      for (index = 0U; index < hnand->Config.PageSize; index++)
+      {
+        *(__IO uint8_t *)deviceaddress = *buff;
+        buff++;
+        __DSB();
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
+      __DSB();
+
+      /* Get tick */
+      tickstart = HAL_GetTick();
+
+      /* Read status until NAND is ready */
+      while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+      {
+        if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+        {
+          /* Update the NAND controller state */
+          hnand->State = HAL_NAND_STATE_ERROR;
+
+          /* Process unlocked */
+          __HAL_UNLOCK(hnand);
+
+          return HAL_TIMEOUT;
+        }
+      }
+
+      /* Increment written pages number */
+      numpageswritten++;
+
+      /* Decrement pages to write */
+      nbpages--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
+    return HAL_ERROR;
   }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-    
-  /* Page(s) write loop */
-  while((NumPageToWrite != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = hnand->Config.PageSize + ((hnand->Config.PageSize) * numPagesWritten);
-    
-    /* Send write page command sequence */
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
 
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        __DSB();
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-        __DSB();
-      }
-    }
-  
-
-    /* Write data to memory */
-    for(; index < size; index++)
-    {
-      *(__IO uint8_t *)deviceaddress = *(uint8_t *)pBuffer++;
-    }
-   
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
-
-    /* Get tick */
-    tickstart = HAL_GetTick();
-
-    /* Read status until NAND is ready */
-    while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-    {
-      
-      if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-      {
-        return HAL_TIMEOUT; 
-      }
-    }
- 
-    /* Increment written pages number */
-    numPagesWritten++;
-    
-    /* Decrement pages to write */
-    NumPageToWrite--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
-  }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-  
   return HAL_OK;
 }
 
@@ -936,276 +1074,353 @@
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
   * @param  pBuffer  pointer to source buffer to write. pBuffer should be 16bits aligned
-  * @param  NumPageToWrite   number of pages to write to block 
+  * @param  NumPageToWrite   number of pages to write to block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToWrite)
+HAL_StatusTypeDef HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer,
+                                          uint32_t NumPageToWrite)
 {
-  __IO uint32_t index = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numPagesWritten = 0U, nandaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand);  
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numpageswritten = 0U;
+  uint32_t nandaddress;
+  uint32_t nbpages = NumPageToWrite;
+  uint16_t *buff = pBuffer;
 
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
-  }
-  else
-  {
-    deviceaddress = NAND_DEVICE2;
-  }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-  
-  /* Page(s) write loop */
-  while((NumPageToWrite != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.PageSize) + ((hnand->Config.PageSize) * numPagesWritten);
- 
-    /* Send write page command sequence */
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-    __DSB();
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
-    __DSB();
+    /* Process Locked */
+    __HAL_LOCK(hnand);
 
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
 
-    /* Calculate PageSize */
-#ifdef FSMC_PCR2_PWID
-    if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
-#else /* FMC_PCR2_PWID is defined */
-    if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
-#endif
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
     {
-      size = size / 2U;
+      deviceaddress = NAND_DEVICE1;
     }
     else
     {
-      /* Do nothing */
-      /* Keep the same PageSize for FMC_NAND_MEM_BUS_WIDTH_16*/
+      deviceaddress = NAND_DEVICE2;
     }
-  
-    /* Write data to memory */
-    for(; index < size; index++)
-    {
-      *(__IO uint16_t *)deviceaddress = *(uint16_t *)pBuffer++;
-    }
-   
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
-    
-    /* Get tick */
-    tickstart = HAL_GetTick();
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
 
-    /* Read status until NAND is ready */
-    while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-    { 
-      if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Page(s) write loop */
+    while ((nbpages != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Send write page command sequence */
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+      __DSB();
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+      __DSB();
+
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
       {
-        return HAL_TIMEOUT; 
-      } 
-    }   
- 
-    /* Increment written pages number */
-    numPagesWritten++;
-    
-    /* Decrement pages to write */
-    NumPageToWrite--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      /* Calculate PageSize */
+#if defined(FSMC_PCR2_PWID)
+    if (hnand->Init.MemoryDataWidth == FSMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#else
+    if (hnand->Init.MemoryDataWidth == FMC_NAND_PCC_MEM_BUS_WIDTH_8)
+#endif /* FSMC_PCR2_PWID */
+      {
+        hnand->Config.PageSize = hnand->Config.PageSize / 2U;
+      }
+      else
+      {
+        /* Do nothing */
+        /* Keep the same PageSize for FMC_NAND_MEM_BUS_WIDTH_16*/
+      }
+
+      /* Write data to memory */
+      for (index = 0U; index < hnand->Config.PageSize; index++)
+      {
+        *(__IO uint16_t *)deviceaddress = *buff;
+        buff++;
+        __DSB();
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
+      __DSB();
+
+      /* Get tick */
+      tickstart = HAL_GetTick();
+
+      /* Read status until NAND is ready */
+      while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+      {
+        if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+        {
+          /* Update the NAND controller state */
+          hnand->State = HAL_NAND_STATE_ERROR;
+
+          /* Process unlocked */
+          __HAL_UNLOCK(hnand);
+
+          return HAL_TIMEOUT;
+        }
+      }
+
+      /* Increment written pages number */
+      numpageswritten++;
+
+      /* Decrement pages to write */
+      nbpages--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
-  
-  /* Update the NAND controller state */ 
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);      
-  
+  else
+  {
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
 /**
-  * @brief  Read Spare area(s) from NAND memory 
+  * @brief  Read Spare area(s) from NAND memory (8-bits addressing)
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
-  * @param  pBuffer pointer to source buffer to write  
-  * @param  NumSpareAreaToRead Number of spare area to read  
+  * @param  pBuffer pointer to source buffer to write
+  * @param  NumSpareAreaToRead Number of spare area to read
   * @retval HAL status
-*/
-HAL_StatusTypeDef HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaToRead)
+  */
+HAL_StatusTypeDef HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer,
+                                             uint32_t NumSpareAreaToRead)
 {
-  __IO uint32_t index = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numSpareAreaRead = 0U, nandaddress = 0U, columnaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand);  
-  
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numsparearearead = 0U;
+  uint32_t nandaddress;
+  uint32_t columnaddress;
+  uint32_t nbspare = NumSpareAreaToRead;
+  uint8_t *buff = pBuffer;
+
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Column in page address */
+    columnaddress = COLUMN_ADDRESS(hnand);
+
+    /* Spare area(s) read loop */
+    while ((nbspare != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        /* Send read spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        /* Send read spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_TRUE1;
+      __DSB();
+
+      if (hnand->Config.ExtraCommandEnable == ENABLE)
+      {
+        /* Get tick */
+        tickstart = HAL_GetTick();
+
+        /* Read status until NAND is ready */
+        while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+        {
+          if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+          {
+            /* Update the NAND controller state */
+            hnand->State = HAL_NAND_STATE_ERROR;
+
+            /* Process unlocked */
+            __HAL_UNLOCK(hnand);
+
+            return HAL_TIMEOUT;
+          }
+        }
+
+        /* Go back to read mode */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
+        __DSB();
+      }
+
+      /* Get Data into Buffer */
+      for (index = 0U; index < hnand->Config.SpareAreaSize; index++)
+      {
+        *buff = *(uint8_t *)deviceaddress;
+        buff++;
+      }
+
+      /* Increment read spare areas number */
+      numsparearearead++;
+
+      /* Decrement spare areas to read */
+      nbspare--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
+    return HAL_ERROR;
   }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-  
-  /* Column in page address */
-  columnaddress = COLUMN_ADDRESS(hnand);
-  
-  /* Spare area(s) read loop */ 
-  while((NumSpareAreaToRead != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {     
-    /* update the buffer size */
-    size = (hnand->Config.SpareAreaSize) + ((hnand->Config.SpareAreaSize) * numSpareAreaRead);
 
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      /* Send read spare area command sequence */     
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
-      
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      /* Send read spare area command sequence */ 
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-      
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_TRUE1;
-    
-    if(hnand->Config.ExtraCommandEnable == ENABLE)
-    {
-      /* Get tick */
-      tickstart = HAL_GetTick();
-      
-      /* Read status until NAND is ready */
-      while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-      {
-        if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-        {
-          return HAL_TIMEOUT; 
-        }
-      }
-      
-      /* Go back to read mode */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
-    }
-    
-    /* Get Data into Buffer */
-    for(; index < size; index++)
-    {
-      *(uint8_t *)pBuffer++ = *(uint8_t *)deviceaddress;
-    }
-    
-    /* Increment read spare areas number */
-    numSpareAreaRead++;
-    
-    /* Decrement spare areas to read */
-    NumSpareAreaToRead--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
-  }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
@@ -1214,265 +1429,347 @@
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
   * @param  pBuffer pointer to source buffer to write. pBuffer should be 16bits aligned.
-  * @param  NumSpareAreaToRead Number of spare area to read  
+  * @param  NumSpareAreaToRead Number of spare area to read
   * @retval HAL status
-*/
-HAL_StatusTypeDef HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaToRead)
+  */
+HAL_StatusTypeDef HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                              uint16_t *pBuffer, uint32_t NumSpareAreaToRead)
 {
-  __IO uint32_t index = 0U; 
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numSpareAreaRead = 0U, nandaddress = 0U, columnaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand);
-  
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numsparearearead = 0U;
+  uint32_t nandaddress;
+  uint32_t columnaddress;
+  uint32_t nbspare = NumSpareAreaToRead;
+  uint16_t *buff = pBuffer;
+
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Column in page address */
+    columnaddress = (uint32_t)(COLUMN_ADDRESS(hnand));
+
+    /* Spare area(s) read loop */
+    while ((nbspare != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        /* Send read spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        /* Send read spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_TRUE1;
+      __DSB();
+
+      if (hnand->Config.ExtraCommandEnable == ENABLE)
+      {
+        /* Get tick */
+        tickstart = HAL_GetTick();
+
+        /* Read status until NAND is ready */
+        while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+        {
+          if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+          {
+            /* Update the NAND controller state */
+            hnand->State = HAL_NAND_STATE_ERROR;
+
+            /* Process unlocked */
+            __HAL_UNLOCK(hnand);
+
+            return HAL_TIMEOUT;
+          }
+        }
+
+        /* Go back to read mode */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
+        __DSB();
+      }
+
+      /* Get Data into Buffer */
+      for (index = 0U; index < hnand->Config.SpareAreaSize; index++)
+      {
+        *buff = *(uint16_t *)deviceaddress;
+        buff++;
+      }
+
+      /* Increment read spare areas number */
+      numsparearearead++;
+
+      /* Decrement spare areas to read */
+      nbspare--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
+    return HAL_ERROR;
   }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-  
-  /* Column in page address */
-  columnaddress = (uint32_t)(COLUMN_ADDRESS(hnand));
-  
-  /* Spare area(s) read loop */ 
-  while((NumSpareAreaToRead != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.SpareAreaSize) + ((hnand->Config.SpareAreaSize) * numSpareAreaRead);
 
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      /* Send read spare area command sequence */     
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
-      
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      /* Send read spare area command sequence */     
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-      
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_TRUE1;
-
-    if(hnand->Config.ExtraCommandEnable == ENABLE)
-    {
-      /* Get tick */
-      tickstart = HAL_GetTick();
-      
-      /* Read status until NAND is ready */
-      while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-      {
-        if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-        {
-          return HAL_TIMEOUT; 
-        }
-      }
-      
-      /* Go back to read mode */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = ((uint8_t)0x00);
-    }
-    
-    /* Get Data into Buffer */
-    for(; index < size; index++)
-    {
-      *(uint16_t *)pBuffer++ = *(uint16_t *)deviceaddress;
-    }
-    
-    /* Increment read spare areas number */
-    numSpareAreaRead++;
-    
-    /* Decrement spare areas to read */
-    NumSpareAreaToRead--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
-  }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);     
-
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
-  * @brief  Write Spare area(s) to NAND memory 
+  * @brief  Write Spare area(s) to NAND memory (8-bits addressing)
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
-  * @param  pBuffer  pointer to source buffer to write  
+  * @param  pBuffer  pointer to source buffer to write
   * @param  NumSpareAreaTowrite   number of spare areas to write to block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaTowrite)
+HAL_StatusTypeDef HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                              uint8_t *pBuffer, uint32_t NumSpareAreaTowrite)
 {
-  __IO uint32_t index = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numSpareAreaWritten = 0U, nandaddress = 0U, columnaddress = 0U;
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numspareareawritten = 0U;
+  uint32_t nandaddress;
+  uint32_t columnaddress;
+  uint32_t nbspare = NumSpareAreaTowrite;
+  uint8_t *buff = pBuffer;
 
-  /* Process Locked */
-  __HAL_LOCK(hnand); 
-  
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* Page address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Column in page address */
+    columnaddress = COLUMN_ADDRESS(hnand);
+
+    /* Spare area(s) write loop */
+    while ((nbspare != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        /* Send write Spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
+        __DSB();
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        /* Send write Spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+        __DSB();
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      /* Write data to memory */
+      for (index = 0U; index < hnand->Config.SpareAreaSize; index++)
+      {
+        *(__IO uint8_t *)deviceaddress = *buff;
+        buff++;
+        __DSB();
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
+      __DSB();
+
+      /* Get tick */
+      tickstart = HAL_GetTick();
+
+      /* Read status until NAND is ready */
+      while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+      {
+        if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+        {
+          /* Update the NAND controller state */
+          hnand->State = HAL_NAND_STATE_ERROR;
+
+          /* Process unlocked */
+          __HAL_UNLOCK(hnand);
+
+          return HAL_TIMEOUT;
+        }
+      }
+
+      /* Increment written spare areas number */
+      numspareareawritten++;
+
+      /* Decrement spare areas to write */
+      nbspare--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
-  }
-  
-  /* Update the FMC_NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;  
-  
-  /* Page address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand); 
-  
-  /* Column in page address */
-  columnaddress = COLUMN_ADDRESS(hnand);
-  
-  /* Spare area(s) write loop */
-  while((NumSpareAreaTowrite != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.SpareAreaSize) + ((hnand->Config.SpareAreaSize) * numSpareAreaWritten);
-
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      /* Send write Spare area command sequence */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
-      
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      /* Send write Spare area command sequence */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
-    
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-  
-    /* Write data to memory */
-    for(; index < size; index++)
-    {
-      *(__IO uint8_t *)deviceaddress = *(uint8_t *)pBuffer++;
-    }
-   
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
-    
-    /* Get tick */
-    tickstart = HAL_GetTick();
-    
-    /* Read status until NAND is ready */
-    while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-    {
-      if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-      {
-        return HAL_TIMEOUT; 
-      }
-    }
-
-    /* Increment written spare areas number */
-    numSpareAreaWritten++;
-    
-    /* Decrement spare areas to write */
-    NumSpareAreaTowrite--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
+    return HAL_ERROR;
   }
 
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-    
   return HAL_OK;
 }
 
@@ -1481,135 +1778,177 @@
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
-  * @param  pBuffer  pointer to source buffer to write. pBuffer should be 16bits aligned.  
+  * @param  pBuffer  pointer to source buffer to write. pBuffer should be 16bits aligned.
   * @param  NumSpareAreaTowrite   number of spare areas to write to block
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaTowrite)
+HAL_StatusTypeDef HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress,
+                                               uint16_t *pBuffer, uint32_t NumSpareAreaTowrite)
 {
-  __IO uint32_t index = 0U;
-  uint32_t tickstart = 0U;
-  uint32_t deviceaddress = 0U, size = 0U, numSpareAreaWritten = 0U, nandaddress = 0U, columnaddress = 0U;
+  uint32_t index;
+  uint32_t tickstart;
+  uint32_t deviceaddress;
+  uint32_t numspareareawritten = 0U;
+  uint32_t nandaddress;
+  uint32_t columnaddress;
+  uint32_t nbspare = NumSpareAreaTowrite;
+  uint16_t *buff = pBuffer;
 
-  /* Process Locked */
-  __HAL_LOCK(hnand); 
-  
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
+    {
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
+
+    /* NAND raw address calculation */
+    nandaddress = ARRAY_ADDRESS(pAddress, hnand);
+
+    /* Column in page address */
+    columnaddress = (uint32_t)(COLUMN_ADDRESS(hnand));
+
+    /* Spare area(s) write loop */
+    while ((nbspare != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
+    {
+      /* Cards with page size <= 512 bytes */
+      if ((hnand->Config.PageSize) <= 512U)
+      {
+        /* Send write Spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
+        __DSB();
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00U;
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+      else /* (hnand->Config.PageSize) > 512 */
+      {
+        /* Send write Spare area command sequence */
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
+        __DSB();
+        *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
+        __DSB();
+
+        if (((hnand->Config.BlockSize) * (hnand->Config.BlockNbr)) <= 65535U)
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+        }
+        else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
+        {
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
+          __DSB();
+          *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
+          __DSB();
+        }
+      }
+
+      /* Write data to memory */
+      for (index = 0U; index < hnand->Config.SpareAreaSize; index++)
+      {
+        *(__IO uint16_t *)deviceaddress = *buff;
+        buff++;
+        __DSB();
+      }
+
+      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
+      __DSB();
+
+      /* Get tick */
+      tickstart = HAL_GetTick();
+
+      /* Read status until NAND is ready */
+      while (HAL_NAND_Read_Status(hnand) != NAND_READY)
+      {
+        if ((HAL_GetTick() - tickstart) > NAND_WRITE_TIMEOUT)
+        {
+          /* Update the NAND controller state */
+          hnand->State = HAL_NAND_STATE_ERROR;
+
+          /* Process unlocked */
+          __HAL_UNLOCK(hnand);
+
+          return HAL_TIMEOUT;
+        }
+      }
+
+      /* Increment written spare areas number */
+      numspareareawritten++;
+
+      /* Decrement spare areas to write */
+      nbspare--;
+
+      /* Increment the NAND address */
+      nandaddress = (uint32_t)(nandaddress + 1U);
+    }
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
-  }
-  
-  /* Update the FMC_NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;  
-  
-  /* NAND raw address calculation */
-  nandaddress = ARRAY_ADDRESS(pAddress, hnand);
-  
-  /* Column in page address */
-  columnaddress = (uint32_t)(COLUMN_ADDRESS(hnand));
-  
-  /* Spare area(s) write loop */
-  while((NumSpareAreaTowrite != 0U) && (nandaddress < ((hnand->Config.BlockSize) * (hnand->Config.BlockNbr))))
-  {
-    /* update the buffer size */
-    size = (hnand->Config.SpareAreaSize) + ((hnand->Config.SpareAreaSize) * numSpareAreaWritten);
-
-    /* Cards with page size <= 512 bytes */
-    if((hnand->Config.PageSize) <= 512U)
-    {
-      /* Send write Spare area command sequence */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_C;
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
-    
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = 0x00;
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-    else /* (hnand->Config.PageSize) > 512 */
-    {
-      /* Send write Spare area command sequence */
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_AREA_A;
-      *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE0;
-    
-      if (((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) <= 65535U)
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-      }
-      else /* ((hnand->Config.BlockSize)*(hnand->Config.BlockNbr)) > 65535 */
-      {
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_1ST_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = COLUMN_2ND_CYCLE(columnaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(nandaddress);
-        *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(nandaddress);
-      }
-    }
-  
-    /* Write data to memory */
-    for(; index < size; index++)
-    {
-      *(__IO uint16_t *)deviceaddress = *(uint16_t *)pBuffer++;
-    }
-   
-    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_WRITE_TRUE1;
-   
-    /* Get tick */
-    tickstart = HAL_GetTick();
-
-    /* Read status until NAND is ready */
-    while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-    {    
-      if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
-      {
-        return HAL_TIMEOUT; 
-      }
-    }
-
-    /* Increment written spare areas number */
-    numSpareAreaWritten++;
-    
-    /* Decrement spare areas to write */
-    NumSpareAreaTowrite--;
-    
-    /* Increment the NAND address */
-    nandaddress = (uint32_t)(nandaddress + 1U);
+    return HAL_ERROR;
   }
 
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);
-
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
-  * @brief  NAND memory Block erase 
+  * @brief  NAND memory Block erase
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @param  pAddress  pointer to NAND address structure
@@ -1617,102 +1956,60 @@
   */
 HAL_StatusTypeDef HAL_NAND_Erase_Block(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress)
 {
-  uint32_t deviceaddress = 0U;
-  uint32_t tickstart = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnand);
-  
+  uint32_t deviceaddress;
+
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
+  else if (hnand->State == HAL_NAND_STATE_READY)
   {
-    deviceaddress = NAND_DEVICE1;
-  }
-  else
-  {
-    deviceaddress = NAND_DEVICE2;
-  }
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_BUSY;  
-  
-  /* Send Erase block command sequence */
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_ERASE0;
+    /* Process Locked */
+    __HAL_LOCK(hnand);
 
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
-    
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_ERASE1; 
-  
-  /* Update the NAND controller state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  /* Get tick */
-  tickstart = HAL_GetTick();
-  
-  /* Read status until NAND is ready */
-  while(HAL_NAND_Read_Status(hnand) != NAND_READY)
-  {
-    if((HAL_GetTick() - tickstart ) > NAND_WRITE_TIMEOUT)
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Identify the device address */
+#if defined(FMC_Bank2_3)
+    if (hnand->Init.NandBank == FMC_NAND_BANK2)
     {
-      /* Process unlocked */
-      __HAL_UNLOCK(hnand);    
-  
-      return HAL_TIMEOUT; 
-    } 
-  }    
- 
-  /* Process unlocked */
-  __HAL_UNLOCK(hnand);    
-  
-  return HAL_OK;  
-}
+      deviceaddress = NAND_DEVICE1;
+    }
+    else
+    {
+      deviceaddress = NAND_DEVICE2;
+    }
+#else
+    deviceaddress = NAND_DEVICE;
+#endif
 
-/**
-  * @brief  NAND memory read status 
-  * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
-  *                the configuration information for NAND module.
-  * @retval NAND status
-  */
-uint32_t HAL_NAND_Read_Status(NAND_HandleTypeDef *hnand)
-{
-  uint32_t data = 0U;
-  uint32_t deviceaddress = 0U;
-  
-  /* Identify the device address */
-  if(hnand->Init.NandBank == FMC_NAND_BANK2)
-  {
-    deviceaddress = NAND_DEVICE1;
+    /* Send Erase block command sequence */
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_ERASE0;
+    __DSB();
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_1ST_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
+    __DSB();
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_2ND_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
+    __DSB();
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | ADDR_AREA)) = ADDR_3RD_CYCLE(ARRAY_ADDRESS(pAddress, hnand));
+    __DSB();
+
+    *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_ERASE1;
+    __DSB();
+
+    /* Update the NAND controller state */
+    hnand->State = HAL_NAND_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnand);
   }
   else
   {
-    deviceaddress = NAND_DEVICE2;
-  } 
-
-  /* Send Read status operation command */
-  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_STATUS;
-  
-  /* Read status register data */
-  data = *(__IO uint8_t *)deviceaddress;
-
-  /* Return the status */
-  if((data & NAND_ERROR) == NAND_ERROR)
-  {
-    return NAND_ERROR;
-  } 
-  else if((data & NAND_READY) == NAND_READY)
-  {
-    return NAND_READY;
+    return HAL_ERROR;
   }
 
-  return NAND_BUSY; 
+  return HAL_OK;
 }
 
 /**
@@ -1727,28 +2024,28 @@
 uint32_t HAL_NAND_Address_Inc(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress)
 {
   uint32_t status = NAND_VALID_ADDRESS;
- 
+
   /* Increment page address */
   pAddress->Page++;
 
   /* Check NAND address is valid */
-  if(pAddress->Page == hnand->Config.BlockSize)
+  if (pAddress->Page == hnand->Config.BlockSize)
   {
-    pAddress->Page = 0U;
+    pAddress->Page = 0;
     pAddress->Block++;
-    
-    if(pAddress->Block == hnand->Config.PlaneSize)
+
+    if (pAddress->Block == hnand->Config.PlaneSize)
     {
-      pAddress->Block = 0U;
+      pAddress->Block = 0;
       pAddress->Plane++;
 
-      if(pAddress->Plane == (hnand->Config.PlaneNbr))
+      if (pAddress->Plane == (hnand->Config.PlaneNbr))
       {
         status = NAND_INVALID_ADDRESS;
       }
     }
-  } 
-  
+  }
+
   return (status);
 }
 
@@ -1765,11 +2062,12 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_NAND_RegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId, pNAND_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_NAND_RegisterCallback(NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId,
+                                            pNAND_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -1777,39 +2075,39 @@
   /* Process locked */
   __HAL_LOCK(hnand);
 
-  if(hnand->State == HAL_NAND_STATE_READY)
+  if (hnand->State == HAL_NAND_STATE_READY)
   {
     switch (CallbackId)
     {
-    case HAL_NAND_MSP_INIT_CB_ID :
-      hnand->MspInitCallback = pCallback;
-      break;
-    case HAL_NAND_MSP_DEINIT_CB_ID :
-      hnand->MspDeInitCallback = pCallback;
-      break;
-    case HAL_NAND_IT_CB_ID :
-      hnand->ItCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NAND_MSP_INIT_CB_ID :
+        hnand->MspInitCallback = pCallback;
+        break;
+      case HAL_NAND_MSP_DEINIT_CB_ID :
+        hnand->MspDeInitCallback = pCallback;
+        break;
+      case HAL_NAND_IT_CB_ID :
+        hnand->ItCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hnand->State == HAL_NAND_STATE_RESET)
+  else if (hnand->State == HAL_NAND_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_NAND_MSP_INIT_CB_ID :
-      hnand->MspInitCallback = pCallback;
-      break;
-    case HAL_NAND_MSP_DEINIT_CB_ID :
-      hnand->MspDeInitCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NAND_MSP_INIT_CB_ID :
+        hnand->MspInitCallback = pCallback;
+        break;
+      case HAL_NAND_MSP_DEINIT_CB_ID :
+        hnand->MspDeInitCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -1834,46 +2132,46 @@
   *          @arg @ref HAL_NAND_IT_CB_ID             NAND IT callback ID
   * @retval status
   */
-HAL_StatusTypeDef HAL_NAND_UnRegisterCallback (NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId)
+HAL_StatusTypeDef HAL_NAND_UnRegisterCallback(NAND_HandleTypeDef *hnand, HAL_NAND_CallbackIDTypeDef CallbackId)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
   /* Process locked */
   __HAL_LOCK(hnand);
 
-  if(hnand->State == HAL_NAND_STATE_READY)
+  if (hnand->State == HAL_NAND_STATE_READY)
   {
     switch (CallbackId)
     {
-    case HAL_NAND_MSP_INIT_CB_ID :
-      hnand->MspInitCallback = HAL_NAND_MspInit;
-      break;
-    case HAL_NAND_MSP_DEINIT_CB_ID :
-      hnand->MspDeInitCallback = HAL_NAND_MspDeInit;
-      break;
-    case HAL_NAND_IT_CB_ID :
-      hnand->ItCallback = HAL_NAND_ITCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NAND_MSP_INIT_CB_ID :
+        hnand->MspInitCallback = HAL_NAND_MspInit;
+        break;
+      case HAL_NAND_MSP_DEINIT_CB_ID :
+        hnand->MspDeInitCallback = HAL_NAND_MspDeInit;
+        break;
+      case HAL_NAND_IT_CB_ID :
+        hnand->ItCallback = HAL_NAND_ITCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hnand->State == HAL_NAND_STATE_RESET)
+  else if (hnand->State == HAL_NAND_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_NAND_MSP_INIT_CB_ID :
-      hnand->MspInitCallback = HAL_NAND_MspInit;
-      break;
-    case HAL_NAND_MSP_DEINIT_CB_ID :
-      hnand->MspDeInitCallback = HAL_NAND_MspDeInit;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NAND_MSP_INIT_CB_ID :
+        hnand->MspInitCallback = HAL_NAND_MspInit;
+        break;
+      case HAL_NAND_MSP_DEINIT_CB_ID :
+        hnand->MspDeInitCallback = HAL_NAND_MspDeInit;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -1886,51 +2184,57 @@
   __HAL_UNLOCK(hnand);
   return status;
 }
-#endif
+#endif /* USE_HAL_NAND_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
 
-/** @defgroup NAND_Exported_Functions_Group3 Peripheral Control functions 
- *  @brief   management functions 
- *
-@verbatim   
+/** @defgroup NAND_Exported_Functions_Group3 Peripheral Control functions
+  *  @brief   management functions
+  *
+@verbatim
   ==============================================================================
                          ##### NAND Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the NAND interface.
 
 @endverbatim
   * @{
-  */ 
+  */
 
-    
+
 /**
   * @brief  Enables dynamically NAND ECC feature.
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @retval HAL status
-  */    
+  */
 HAL_StatusTypeDef  HAL_NAND_ECC_Enable(NAND_HandleTypeDef *hnand)
 {
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
+  }
+  else if (hnand->State == HAL_NAND_STATE_READY)
+  {
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Enable ECC feature */
+    (void)FMC_NAND_ECC_Enable(hnand->Instance, hnand->Init.NandBank);
+
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
   }
 
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_BUSY;
-   
-  /* Enable ECC feature */
-  FMC_NAND_ECC_Enable(hnand->Instance, hnand->Init.NandBank);
-  
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
   return HAL_OK;
 }
 
@@ -1939,77 +2243,89 @@
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
   * @retval HAL status
-  */  
+  */
 HAL_StatusTypeDef  HAL_NAND_ECC_Disable(NAND_HandleTypeDef *hnand)
 {
   /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
+  if (hnand->State == HAL_NAND_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
+  }
+  else if (hnand->State == HAL_NAND_STATE_READY)
+  {
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Disable ECC feature */
+    (void)FMC_NAND_ECC_Disable(hnand->Instance, hnand->Init.NandBank);
+
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
   }
 
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_BUSY;
-    
-  /* Disable ECC feature */
-  FMC_NAND_ECC_Disable(hnand->Instance, hnand->Init.NandBank);
-  
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_READY;
-  
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
   * @brief  Disables dynamically NAND ECC feature.
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
   *                the configuration information for NAND module.
-  * @param  ECCval pointer to ECC value 
-  * @param  Timeout maximum timeout to wait    
+  * @param  ECCval pointer to ECC value
+  * @param  Timeout maximum timeout to wait
   * @retval HAL status
   */
 HAL_StatusTypeDef  HAL_NAND_GetECC(NAND_HandleTypeDef *hnand, uint32_t *ECCval, uint32_t Timeout)
 {
-  HAL_StatusTypeDef status = HAL_OK;
-  
-  /* Check the NAND controller state */
-  if(hnand->State == HAL_NAND_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_BUSY;  
-   
-  /* Get NAND ECC value */
-  status = FMC_NAND_GetECC(hnand->Instance, ECCval, hnand->Init.NandBank, Timeout);
-  
-  /* Update the NAND state */
-  hnand->State = HAL_NAND_STATE_READY;
+  HAL_StatusTypeDef status;
 
-  return status;  
+  /* Check the NAND controller state */
+  if (hnand->State == HAL_NAND_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (hnand->State == HAL_NAND_STATE_READY)
+  {
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_BUSY;
+
+    /* Get NAND ECC value */
+    status = FMC_NAND_GetECC(hnand->Instance, ECCval, hnand->Init.NandBank, Timeout);
+
+    /* Update the NAND state */
+    hnand->State = HAL_NAND_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
   * @}
   */
-  
-    
-/** @defgroup NAND_Exported_Functions_Group4 Peripheral State functions 
- *  @brief   Peripheral State functions 
- *
-@verbatim   
+
+
+/** @defgroup NAND_Exported_Functions_Group4 Peripheral State functions
+  *  @brief   Peripheral State functions
+  *
+@verbatim
   ==============================================================================
                          ##### NAND State functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This subsection permits to get in run-time the status of the NAND controller 
+    This subsection permits to get in run-time the status of the NAND controller
     and the data flow.
 
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  return the NAND state
   * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
@@ -2022,8 +2338,51 @@
 }
 
 /**
-  * @}
-  */  
+  * @brief  NAND memory read status
+  * @param  hnand pointer to a NAND_HandleTypeDef structure that contains
+  *                the configuration information for NAND module.
+  * @retval NAND status
+  */
+uint32_t HAL_NAND_Read_Status(NAND_HandleTypeDef *hnand)
+{
+  uint32_t data;
+  uint32_t deviceaddress;
+  UNUSED(hnand);
+
+  /* Identify the device address */
+#if defined(FMC_Bank2_3)
+  if (hnand->Init.NandBank == FMC_NAND_BANK2)
+  {
+    deviceaddress = NAND_DEVICE1;
+  }
+  else
+  {
+    deviceaddress = NAND_DEVICE2;
+  }
+#else
+  deviceaddress = NAND_DEVICE;
+#endif
+
+  /* Send Read status operation command */
+  *(__IO uint8_t *)((uint32_t)(deviceaddress | CMD_AREA)) = NAND_CMD_STATUS;
+
+  /* Read status register data */
+  data = *(__IO uint8_t *)deviceaddress;
+
+  /* Return the status */
+  if ((data & NAND_ERROR) == NAND_ERROR)
+  {
+    return NAND_ERROR;
+  }
+  else if ((data & NAND_READY) == NAND_READY)
+  {
+    return NAND_READY;
+  }
+  else
+  {
+    return NAND_BUSY;
+  }
+}
 
 /**
   * @}
@@ -2033,13 +2392,14 @@
   * @}
   */
 
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
-          STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\
-          STM32F446xx || STM32F469xx || STM32F479xx */
+/**
+  * @}
+  */
+
 #endif /* HAL_NAND_MODULE_ENABLED  */
 
 /**
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3) || defined(FSMC_Bank2_3 */
diff --git a/Src/stm32f4xx_hal_nor.c b/Src/stm32f4xx_hal_nor.c
index 34a009c..0a82044 100644
--- a/Src/stm32f4xx_hal_nor.c
+++ b/Src/stm32f4xx_hal_nor.c
@@ -3,50 +3,61 @@
   * @file    stm32f4xx_hal_nor.c
   * @author  MCD Application Team
   * @brief   NOR HAL module driver.
-  *          This file provides a generic firmware to drive NOR memories mounted 
+  *          This file provides a generic firmware to drive NOR memories mounted
   *          as external device.
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
-  ==============================================================================       
+  ==============================================================================
     [..]
-      This driver is a generic layered driver which contains a set of APIs used to 
-      control NOR flash memories. It uses the FMC/FSMC layer functions to interface 
+      This driver is a generic layered driver which contains a set of APIs used to
+      control NOR flash memories. It uses the FMC/FSMC layer functions to interface
       with NOR devices. This driver is used as follows:
-    
-      (+) NOR flash memory configuration sequence using the function HAL_NOR_Init() 
+
+      (+) NOR flash memory configuration sequence using the function HAL_NOR_Init()
           with control and timing parameters for both normal and extended mode.
-            
+
       (+) Read NOR flash memory manufacturer code and device IDs using the function
-          HAL_NOR_Read_ID(). The read information is stored in the NOR_ID_TypeDef 
-          structure declared by the function caller. 
-        
+          HAL_NOR_Read_ID(). The read information is stored in the NOR_ID_TypeDef
+          structure declared by the function caller.
+
       (+) Access NOR flash memory by read/write data unit operations using the functions
           HAL_NOR_Read(), HAL_NOR_Program().
-        
-      (+) Perform NOR flash erase block/chip operations using the functions 
+
+      (+) Perform NOR flash erase block/chip operations using the functions
           HAL_NOR_Erase_Block() and HAL_NOR_Erase_Chip().
-        
+
       (+) Read the NOR flash CFI (common flash interface) IDs using the function
           HAL_NOR_Read_CFI(). The read information is stored in the NOR_CFI_TypeDef
           structure declared by the function caller.
-        
+
       (+) You can also control the NOR device by calling the control APIs HAL_NOR_WriteOperation_Enable()/
-          HAL_NOR_WriteOperation_Disable() to respectively enable/disable the NOR write operation  
-       
+          HAL_NOR_WriteOperation_Disable() to respectively enable/disable the NOR write operation
+
       (+) You can monitor the NOR device HAL state by calling the function
-          HAL_NOR_GetState() 
+          HAL_NOR_GetState()
     [..]
      (@) This driver is a set of generic APIs which handle standard NOR flash operations.
-         If a NOR flash device contains different operations and/or implementations, 
+         If a NOR flash device contains different operations and/or implementations,
          it should be implemented separately.
 
      *** NOR HAL driver macros list ***
-     ============================================= 
+     =============================================
      [..]
        Below the list of most used macros in NOR HAL driver.
-       
+
       (+) NOR_WRITE : NOR memory write data to specified address
 
     *** Callback registration ***
@@ -55,25 +66,25 @@
       The compilation define  USE_HAL_NOR_REGISTER_CALLBACKS when set to 1
       allows the user to configure dynamically the driver callbacks.
 
-      Use Functions @ref HAL_NOR_RegisterCallback() to register a user callback,
+      Use Functions HAL_NOR_RegisterCallback() to register a user callback,
       it allows to register following callbacks:
         (+) MspInitCallback    : NOR MspInit.
         (+) MspDeInitCallback  : NOR MspDeInit.
       This function takes as parameters the HAL peripheral handle, the Callback ID
       and a pointer to the user callback function.
 
-      Use function @ref HAL_NOR_UnRegisterCallback() to reset a callback to the default
+      Use function HAL_NOR_UnRegisterCallback() to reset a callback to the default
       weak (surcharged) function. It allows to reset following callbacks:
         (+) MspInitCallback    : NOR MspInit.
         (+) MspDeInitCallback  : NOR MspDeInit.
       This function) takes as parameters the HAL peripheral handle and the Callback ID.
 
-      By default, after the @ref HAL_NOR_Init and if the state is HAL_NOR_STATE_RESET
+      By default, after the HAL_NOR_Init and if the state is HAL_NOR_STATE_RESET
       all callbacks are reset to the corresponding legacy weak (surcharged) functions.
       Exception done for MspInit and MspDeInit callbacks that are respectively
-      reset to the legacy weak (surcharged) functions in the @ref HAL_NOR_Init
-      and @ref  HAL_NOR_DeInit only when these callbacks are null (not registered beforehand).
-      If not, MspInit or MspDeInit are not null, the @ref HAL_NOR_Init and @ref HAL_NOR_DeInit
+      reset to the legacy weak (surcharged) functions in the HAL_NOR_Init
+      and  HAL_NOR_DeInit only when these callbacks are null (not registered beforehand).
+      If not, MspInit or MspDeInit are not null, the HAL_NOR_Init and HAL_NOR_DeInit
       keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
       Callbacks can be registered/unregistered in READY state only.
@@ -81,8 +92,8 @@
       in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
       during the Init/DeInit.
       In that case first register the MspInit/MspDeInit user callbacks
-      using @ref HAL_NOR_RegisterCallback before calling @ref HAL_NOR_DeInit
-      or @ref HAL_NOR_Init function.
+      using HAL_NOR_RegisterCallback before calling HAL_NOR_DeInit
+      or HAL_NOR_Init function.
 
       When The compilation define USE_HAL_NOR_REGISTER_CALLBACKS is set to 0 or
       not defined, the callback registering feature is not available
@@ -90,38 +101,27 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
 
+#if defined(FMC_Bank1) || defined(FSMC_Bank1)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
+#ifdef HAL_NOR_MODULE_ENABLED
+
 /** @defgroup NOR NOR
   * @brief NOR driver modules
   * @{
   */
-#ifdef HAL_NOR_MODULE_ENABLED
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
+
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-      
+
 /** @defgroup NOR_Private_Defines NOR Private Defines
   * @{
   */
@@ -151,14 +151,40 @@
 #define NOR_CMD_DATA_BUFFER_AND_PROG_CONFIRM  (uint8_t)0x29
 #define NOR_CMD_DATA_BLOCK_ERASE              (uint8_t)0x30
 
+#define NOR_CMD_READ_ARRAY                    (uint16_t)0x00FF
+#define NOR_CMD_WORD_PROGRAM                  (uint16_t)0x0040
+#define NOR_CMD_BUFFERED_PROGRAM              (uint16_t)0x00E8
+#define NOR_CMD_CONFIRM                       (uint16_t)0x00D0
+#define NOR_CMD_BLOCK_ERASE                   (uint16_t)0x0020
+#define NOR_CMD_BLOCK_UNLOCK                  (uint16_t)0x0060
+#define NOR_CMD_READ_STATUS_REG               (uint16_t)0x0070
+#define NOR_CMD_CLEAR_STATUS_REG              (uint16_t)0x0050
+
 /* Mask on NOR STATUS REGISTER */
+#define NOR_MASK_STATUS_DQ4                   (uint16_t)0x0010
 #define NOR_MASK_STATUS_DQ5                   (uint16_t)0x0020
 #define NOR_MASK_STATUS_DQ6                   (uint16_t)0x0040
+#define NOR_MASK_STATUS_DQ7                   (uint16_t)0x0080
+
+/* Address of the primary command set */
+#define NOR_ADDRESS_COMMAND_SET               (uint16_t)0x0013
+
+/* Command set code assignment (defined in JEDEC JEP137B version may 2004) */
+#define NOR_INTEL_SHARP_EXT_COMMAND_SET       (uint16_t)0x0001 /* Supported in this driver */
+#define NOR_AMD_FUJITSU_COMMAND_SET           (uint16_t)0x0002 /* Supported in this driver */
+#define NOR_INTEL_STANDARD_COMMAND_SET        (uint16_t)0x0003 /* Not Supported in this driver */
+#define NOR_AMD_FUJITSU_EXT_COMMAND_SET       (uint16_t)0x0004 /* Not Supported in this driver */
+#define NOR_WINDBOND_STANDARD_COMMAND_SET     (uint16_t)0x0006 /* Not Supported in this driver */
+#define NOR_MITSUBISHI_STANDARD_COMMAND_SET   (uint16_t)0x0100 /* Not Supported in this driver */
+#define NOR_MITSUBISHI_EXT_COMMAND_SET        (uint16_t)0x0101 /* Not Supported in this driver */
+#define NOR_PAGE_WRITE_COMMAND_SET            (uint16_t)0x0102 /* Not Supported in this driver */
+#define NOR_INTEL_PERFORMANCE_COMMAND_SET     (uint16_t)0x0200 /* Not Supported in this driver */
+#define NOR_INTEL_DATA_COMMAND_SET            (uint16_t)0x0210 /* Not Supported in this driver */
 
 /**
   * @}
   */
-      
+
 /* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /** @defgroup NOR_Private_Variables NOR Private Variables
@@ -177,44 +203,48 @@
   * @{
   */
 
-/** @defgroup NOR_Exported_Functions_Group1 Initialization and de-initialization functions 
-  * @brief    Initialization and Configuration functions 
+/** @defgroup NOR_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
            ##### NOR Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to initialize/de-initialize
     the NOR memory
-  
+
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Perform the NOR memory Initialization sequence
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
-  * @param  Timing pointer to NOR control timing structure 
-  * @param  ExtTiming pointer to NOR extended mode timing structure    
+  * @param  Timing pointer to NOR control timing structure
+  * @param  ExtTiming pointer to NOR extended mode timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming)
+HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing,
+                               FMC_NORSRAM_TimingTypeDef *ExtTiming)
 {
+  uint32_t deviceaddress;
+  HAL_StatusTypeDef status = HAL_OK;
+
   /* Check the NOR handle parameter */
-  if(hnor == NULL)
+  if (hnor == NULL)
   {
-     return HAL_ERROR;
+    return HAL_ERROR;
   }
-  
-  if(hnor->State == HAL_NOR_STATE_RESET)
+
+  if (hnor->State == HAL_NOR_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hnor->Lock = HAL_UNLOCKED;
 
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
-    if(hnor->MspInitCallback == NULL)
+    if (hnor->MspInitCallback == NULL)
     {
       hnor->MspInitCallback = HAL_NOR_MspInit;
     }
@@ -226,15 +256,15 @@
     HAL_NOR_MspInit(hnor);
 #endif /* (USE_HAL_NOR_REGISTER_CALLBACKS) */
   }
-  
+
   /* Initialize NOR control Interface */
-  FMC_NORSRAM_Init(hnor->Instance, &(hnor->Init));
+  (void)FMC_NORSRAM_Init(hnor->Instance, &(hnor->Init));
 
   /* Initialize NOR timing Interface */
-  FMC_NORSRAM_Timing_Init(hnor->Instance, Timing, hnor->Init.NSBank); 
+  (void)FMC_NORSRAM_Timing_Init(hnor->Instance, Timing, hnor->Init.NSBank);
 
   /* Initialize NOR extended mode timing Interface */
-  FMC_NORSRAM_Extended_Timing_Init(hnor->Extended, ExtTiming, hnor->Init.NSBank, hnor->Init.ExtendedMode);
+  (void)FMC_NORSRAM_Extended_Timing_Init(hnor->Extended, ExtTiming, hnor->Init.NSBank, hnor->Init.ExtendedMode);
 
   /* Enable the NORSRAM device */
   __FMC_NORSRAM_ENABLE(hnor->Instance, hnor->Init.NSBank);
@@ -249,10 +279,44 @@
     uwNORMemoryDataWidth = NOR_MEMORY_16B;
   }
 
-  /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY; 
-  
-  return HAL_OK;
+  /* Initialize the NOR controller state */
+  hnor->State = HAL_NOR_STATE_READY;
+
+  /* Select the NOR device address */
+  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+  {
+    deviceaddress = NOR_MEMORY_ADRESS1;
+  }
+  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+  {
+    deviceaddress = NOR_MEMORY_ADRESS2;
+  }
+  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+  {
+    deviceaddress = NOR_MEMORY_ADRESS3;
+  }
+  else /* FMC_NORSRAM_BANK4 */
+  {
+    deviceaddress = NOR_MEMORY_ADRESS4;
+  }
+
+  if (hnor->Init.WriteOperation == FMC_WRITE_OPERATION_DISABLE)
+  {
+    (void)FMC_NORSRAM_WriteOperation_Disable(hnor->Instance, hnor->Init.NSBank);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_PROTECTED;
+  }
+  else
+  {
+    /* Get the value of the command set */
+    NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST_CFI), NOR_CMD_DATA_CFI);
+    hnor->CommandSet = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_ADDRESS_COMMAND_SET);
+
+    status = HAL_NOR_ReturnToReadMode(hnor);
+  }
+
+  return status;
 }
 
 /**
@@ -261,10 +325,10 @@
   *                the configuration information for NOR module.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NOR_DeInit(NOR_HandleTypeDef *hnor)  
+HAL_StatusTypeDef HAL_NOR_DeInit(NOR_HandleTypeDef *hnor)
 {
 #if (USE_HAL_NOR_REGISTER_CALLBACKS == 1)
-  if(hnor->MspDeInitCallback == NULL)
+  if (hnor->MspDeInitCallback == NULL)
   {
     hnor->MspDeInitCallback = HAL_NOR_MspDeInit;
   }
@@ -277,9 +341,9 @@
 #endif /* (USE_HAL_NOR_REGISTER_CALLBACKS) */
 
   /* Configure the NOR registers with their reset values */
-  FMC_NORSRAM_DeInit(hnor->Instance, hnor->Extended, hnor->Init.NSBank);
-  
-  /* Update the NOR controller state */
+  (void)FMC_NORSRAM_DeInit(hnor->Instance, hnor->Extended, hnor->Init.NSBank);
+
+  /* Reset the NOR controller state */
   hnor->State = HAL_NOR_STATE_RESET;
 
   /* Release Lock */
@@ -298,9 +362,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnor);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NOR_MspInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -313,9 +378,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnor);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NOR_MspDeInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -330,30 +396,30 @@
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hnor);
   UNUSED(Timeout);
-  
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_NOR_MspWait could be implemented in the user file
-   */ 
+   */
 }
-  
+
 /**
   * @}
   */
 
-/** @defgroup NOR_Exported_Functions_Group2 Input and Output functions 
-  * @brief    Input Output and memory control functions 
+/** @defgroup NOR_Exported_Functions_Group2 Input and Output functions
+  * @brief    Input Output and memory control functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
                 ##### NOR Input and Output functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to use and control the NOR memory
-  
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Read NOR flash IDs
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
@@ -363,56 +429,87 @@
   */
 HAL_StatusTypeDef HAL_NOR_Read_ID(NOR_HandleTypeDef *hnor, NOR_IDTypeDef *pNOR_ID)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
-  /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }  
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send read ID command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_AUTO_SELECT);
+  uint32_t deviceaddress;
+  HAL_NOR_StateTypeDef state;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  /* Read the NOR IDs */
-  pNOR_ID->Manufacturer_Code = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, MC_ADDRESS);
-  pNOR_ID->Device_Code1      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, DEVICE_CODE1_ADDR);
-  pNOR_ID->Device_Code2      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, DEVICE_CODE2_ADDR);
-  pNOR_ID->Device_Code3      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, DEVICE_CODE3_ADDR);
-  
   /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);   
-  
-  return HAL_OK;
+  state = hnor->State;
+  if (state == HAL_NOR_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (state == HAL_NOR_STATE_PROTECTED)
+  {
+    return HAL_ERROR;
+  }
+  else if (state == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send read ID command */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_AUTO_SELECT);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE(deviceaddress, NOR_CMD_DATA_AUTO_SELECT);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    if (status != HAL_ERROR)
+    {
+      /* Read the NOR IDs */
+      pNOR_ID->Manufacturer_Code = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, MC_ADDRESS);
+      pNOR_ID->Device_Code1      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth,
+                                                                     DEVICE_CODE1_ADDR);
+      pNOR_ID->Device_Code2      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth,
+                                                                     DEVICE_CODE2_ADDR);
+      pNOR_ID->Device_Code3      = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth,
+                                                                     DEVICE_CODE3_ADDR);
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
@@ -423,487 +520,681 @@
   */
 HAL_StatusTypeDef HAL_NOR_ReturnToReadMode(NOR_HandleTypeDef *hnor)
 {
-  uint32_t deviceaddress = 0U;  
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
-  /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }  
-  
-  NOR_WRITE(deviceaddress, NOR_CMD_DATA_READ_RESET);
+  uint32_t deviceaddress;
+  HAL_NOR_StateTypeDef state;
+  HAL_StatusTypeDef status = HAL_OK;
 
   /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);   
-  
-  return HAL_OK;
+  state = hnor->State;
+  if (state == HAL_NOR_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (state == HAL_NOR_STATE_PROTECTED)
+  {
+    return HAL_ERROR;
+  }
+  else if (state == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(deviceaddress, NOR_CMD_DATA_READ_RESET);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE(deviceaddress, NOR_CMD_READ_ARRAY);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
-  * @brief  Read data from NOR memory 
+  * @brief  Read data from NOR memory
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
   * @param  pAddress pointer to Device address
-  * @param  pData  pointer to read data  
+  * @param  pData  pointer to read data
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_NOR_Read(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
-  /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  } 
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send read data command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST); 
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);  
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_READ_RESET);
+  uint32_t deviceaddress;
+  HAL_NOR_StateTypeDef state;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  /* Read the data */
-  *pData = *(__IO uint32_t *)(uint32_t)pAddress;
-  
   /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK;  
+  state = hnor->State;
+  if (state == HAL_NOR_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (state == HAL_NOR_STATE_PROTECTED)
+  {
+    return HAL_ERROR;
+  }
+  else if (state == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send read data command */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_READ_RESET);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE(pAddress, NOR_CMD_READ_ARRAY);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    if (status != HAL_ERROR)
+    {
+      /* Read the data */
+      *pData = (uint16_t)(*(__IO uint32_t *)pAddress);
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
-  * @brief  Program data to NOR memory 
+  * @brief  Program data to NOR memory
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
   * @param  pAddress Device address
-  * @param  pData  pointer to the data to write   
+  * @param  pData  pointer to the data to write
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_NOR_Program(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
-  /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  } 
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send program data command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_PROGRAM);
+  uint32_t deviceaddress;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  /* Write the data */
-  NOR_WRITE(pAddress, *pData);
-  
   /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK;  
+  if (hnor->State == HAL_NOR_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (hnor->State == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send program data command */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_PROGRAM);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE(pAddress, NOR_CMD_WORD_PROGRAM);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    if (status != HAL_ERROR)
+    {
+      /* Write the data */
+      NOR_WRITE(pAddress, *pData);
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = HAL_NOR_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
   * @brief  Reads a half-word buffer from the NOR memory.
   * @param  hnor pointer to the NOR handle
   * @param  uwAddress NOR memory internal address to read from.
-  * @param  pData pointer to the buffer that receives the data read from the 
+  * @param  pData pointer to the buffer that receives the data read from the
   *         NOR memory.
   * @param  uwBufferSize  number of Half word to read.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize)
+HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
+                                     uint32_t uwBufferSize)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
+  uint32_t deviceaddress;
+  uint32_t size = uwBufferSize;
+  uint32_t address = uwAddress;
+  uint16_t *data = pData;
+  HAL_NOR_StateTypeDef state;
+  HAL_StatusTypeDef status = HAL_OK;
+
   /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
+  state = hnor->State;
+  if (state == HAL_NOR_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+  else if (state == HAL_NOR_STATE_PROTECTED)
   {
-    deviceaddress = NOR_MEMORY_ADRESS1;
+    return HAL_ERROR;
   }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+  else if (state == HAL_NOR_STATE_READY)
   {
-    deviceaddress = NOR_MEMORY_ADRESS2;
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send read data command */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_READ_RESET);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE(deviceaddress, NOR_CMD_READ_ARRAY);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    if (status != HAL_ERROR)
+    {
+      /* Read buffer */
+      while (size > 0U)
+      {
+        *data = *(__IO uint16_t *)address;
+        data++;
+        address += 2U;
+        size--;
+      }
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
   }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+  else
   {
-    deviceaddress = NOR_MEMORY_ADRESS3;
+    return HAL_ERROR;
   }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }  
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send read data command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST); 
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);  
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_READ_RESET);
-  
-  /* Read buffer */
-  while( uwBufferSize > 0U) 
-  {
-    *pData++ = *(__IO uint16_t *)uwAddress;
-    uwAddress += 2U;
-    uwBufferSize--;
-  } 
-  
-  /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK;  
+
+  return status;
 }
 
 /**
-  * @brief  Writes a half-word buffer to the NOR memory. This function must be used 
-            only with S29GL128P NOR memory. 
+  * @brief  Writes a half-word buffer to the NOR memory. This function must be used
+            only with S29GL128P NOR memory.
   * @param  hnor pointer to the NOR handle
-  * @param  uwAddress NOR memory internal start write address 
-  * @param  pData pointer to source data buffer. 
+  * @param  uwAddress NOR memory internal start write address
+  * @param  pData pointer to source data buffer.
   * @param  uwBufferSize Size of the buffer to write
   * @retval HAL status
-  */ 
-HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize)
+  */
+HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
+                                        uint32_t uwBufferSize)
 {
-  uint16_t * p_currentaddress = (uint16_t *)NULL;
-  uint16_t * p_endaddress = (uint16_t *)NULL;
-  uint32_t lastloadedaddress = 0U, deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
+  uint16_t *p_currentaddress;
+  const uint16_t *p_endaddress;
+  uint16_t *data = pData;
+  uint32_t deviceaddress;
+  HAL_StatusTypeDef status = HAL_OK;
+
   /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
+  if (hnor->State == HAL_NOR_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+  else if (hnor->State == HAL_NOR_STATE_READY)
   {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }  
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Initialize variables */
-  p_currentaddress  = (uint16_t*)((uint32_t)(uwAddress));
-  p_endaddress      = p_currentaddress + (uwBufferSize-1U);
-  lastloadedaddress = (uint32_t)(uwAddress);
+    /* Process Locked */
+    __HAL_LOCK(hnor);
 
-  /* Issue unlock command sequence */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND); 
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
 
-  /* Write Buffer Load Command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, uwAddress), NOR_CMD_DATA_BUFFER_AND_PROG); 
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, uwAddress), (uwBufferSize - 1U)); 
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
 
-  /* Load Data into NOR Buffer */
-  while(p_currentaddress <= p_endaddress)
+    /* Initialize variables */
+    p_currentaddress  = (uint16_t *)(deviceaddress + uwAddress);
+    p_endaddress      = (uint16_t *)(deviceaddress + uwAddress + (2U * (uwBufferSize - 1U)));
+
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      /* Issue unlock command sequence */
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+
+      /* Write Buffer Load Command */
+      NOR_WRITE((deviceaddress + uwAddress), NOR_CMD_DATA_BUFFER_AND_PROG);
+      NOR_WRITE((deviceaddress + uwAddress), (uint16_t)(uwBufferSize - 1U));
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      /* Write Buffer Load Command */
+      NOR_WRITE((deviceaddress + uwAddress), NOR_CMD_BUFFERED_PROGRAM);
+      NOR_WRITE((deviceaddress + uwAddress), (uint16_t)(uwBufferSize - 1U));
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    if (status != HAL_ERROR)
+    {
+      /* Load Data into NOR Buffer */
+      while (p_currentaddress <= p_endaddress)
+      {
+        NOR_WRITE(p_currentaddress, *data);
+
+        data++;
+        p_currentaddress ++;
+      }
+
+      if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+      {
+        NOR_WRITE((deviceaddress + uwAddress), NOR_CMD_DATA_BUFFER_AND_PROG_CONFIRM);
+      }
+      else /* => hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET */
+      {
+        NOR_WRITE((deviceaddress + uwAddress), NOR_CMD_CONFIRM);
+      }
+    }
+
+    /* Check the NOR controller state */
+    hnor->State = HAL_NOR_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
   {
-    /* Store last loaded address & data value (for polling) */
-     lastloadedaddress = (uint32_t)p_currentaddress;
- 
-    NOR_WRITE(p_currentaddress, *pData++);
-    
-    p_currentaddress ++; 
+    return HAL_ERROR;
   }
 
-  NOR_WRITE((uint32_t)(lastloadedaddress), NOR_CMD_DATA_BUFFER_AND_PROG_CONFIRM);
-  
-  /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK; 
-  
+  return status;
+
 }
 
 /**
-  * @brief  Erase the specified block of the NOR memory 
+  * @brief  Erase the specified block of the NOR memory
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
-  * @param  BlockAddress  Block to erase address 
+  * @param  BlockAddress  Block to erase address
   * @param  Address Device address
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_NOR_Erase_Block(NOR_HandleTypeDef *hnor, uint32_t BlockAddress, uint32_t Address)
 {
-  uint32_t deviceaddress = 0U;
+  uint32_t deviceaddress;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
   /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
+  if (hnor->State == HAL_NOR_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+  else if (hnor->State == HAL_NOR_STATE_READY)
   {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send block erase command sequence */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_CHIP_BLOCK_ERASE_THIRD);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FOURTH), NOR_CMD_DATA_CHIP_BLOCK_ERASE_FOURTH);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIFTH), NOR_CMD_DATA_CHIP_BLOCK_ERASE_FIFTH);
-  NOR_WRITE((uint32_t)(BlockAddress + Address), NOR_CMD_DATA_BLOCK_ERASE);
+    /* Process Locked */
+    __HAL_LOCK(hnor);
 
-  /* Check the NOR memory status and update the controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-    
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK;
- 
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send block erase command sequence */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_THIRD);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FOURTH),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_FOURTH);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIFTH),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_FIFTH);
+      NOR_WRITE((uint32_t)(BlockAddress + Address), NOR_CMD_DATA_BLOCK_ERASE);
+    }
+    else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+    {
+      NOR_WRITE((BlockAddress + Address), NOR_CMD_BLOCK_UNLOCK);
+      NOR_WRITE((BlockAddress + Address), NOR_CMD_CONFIRM);
+      NOR_WRITE((BlockAddress + Address), NOR_CMD_BLOCK_ERASE);
+      NOR_WRITE((BlockAddress + Address), NOR_CMD_CONFIRM);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    /* Check the NOR memory status and update the controller state */
+    hnor->State = HAL_NOR_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return status;
+
 }
 
 /**
   * @brief  Erase the entire NOR chip.
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
-  * @param  Address  Device address  
+  * @param  Address  Device address
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_NOR_Erase_Chip(NOR_HandleTypeDef *hnor, uint32_t Address)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Prevent unused argument(s) compilation warning */
+  uint32_t deviceaddress;
+  HAL_StatusTypeDef status = HAL_OK;
   UNUSED(Address);
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
+
   /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
+  if (hnor->State == HAL_NOR_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+  else if (hnor->State == HAL_NOR_STATE_READY)
   {
-    deviceaddress = NOR_MEMORY_ADRESS1;
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send NOR chip erase command sequence */
+    if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
+    {
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_THIRD);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FOURTH),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_FOURTH);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIFTH),
+                NOR_CMD_DATA_CHIP_BLOCK_ERASE_FIFTH);
+      NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SIXTH), NOR_CMD_DATA_CHIP_ERASE);
+    }
+    else
+    {
+      /* Primary command set not supported by the driver */
+      status = HAL_ERROR;
+    }
+
+    /* Check the NOR memory status and update the controller state */
+    hnor->State = HAL_NOR_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
   }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+  else
   {
-    deviceaddress = NOR_MEMORY_ADRESS2;
+    return HAL_ERROR;
   }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;  
-    
-  /* Send NOR chip erase command sequence */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST), NOR_CMD_DATA_FIRST);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SECOND), NOR_CMD_DATA_SECOND);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_THIRD), NOR_CMD_DATA_CHIP_BLOCK_ERASE_THIRD);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FOURTH), NOR_CMD_DATA_CHIP_BLOCK_ERASE_FOURTH);
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIFTH), NOR_CMD_DATA_CHIP_BLOCK_ERASE_FIFTH);  
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_SIXTH), NOR_CMD_DATA_CHIP_ERASE);
-  
-  /* Check the NOR memory status and update the controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-    
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
-  return HAL_OK;  
+
+  return status;
 }
 
 /**
   * @brief  Read NOR flash CFI IDs
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
   *                the configuration information for NOR module.
-  * @param  pNOR_CFI  pointer to NOR CFI IDs structure  
+  * @param  pNOR_CFI  pointer to NOR CFI IDs structure
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_NOR_Read_CFI(NOR_HandleTypeDef *hnor, NOR_CFITypeDef *pNOR_CFI)
 {
-  uint32_t deviceaddress = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hnor);
-  
-  /* Check the NOR controller state */
-  if(hnor->State == HAL_NOR_STATE_BUSY)
-  {
-     return HAL_BUSY;
-  }
-  
-  /* Select the NOR device address */
-  if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS1;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS2;
-  }
-  else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
-  {
-    deviceaddress = NOR_MEMORY_ADRESS3;
-  }
-  else /* FMC_NORSRAM_BANK4 */
-  {
-    deviceaddress = NOR_MEMORY_ADRESS4;
-  }  
-    
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-  
-  /* Send read CFI query command */
-  NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST_CFI), NOR_CMD_DATA_CFI);
-
-  /* read the NOR CFI information */
-  pNOR_CFI->CFI_1 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI1_ADDRESS);
-  pNOR_CFI->CFI_2 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI2_ADDRESS);
-  pNOR_CFI->CFI_3 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI3_ADDRESS);
-  pNOR_CFI->CFI_4 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI4_ADDRESS);
+  uint32_t deviceaddress;
+  HAL_NOR_StateTypeDef state;
 
   /* Check the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor);
-  
+  state = hnor->State;
+  if (state == HAL_NOR_STATE_BUSY)
+  {
+    return HAL_BUSY;
+  }
+  else if (state == HAL_NOR_STATE_PROTECTED)
+  {
+    return HAL_ERROR;
+  }
+  else if (state == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Select the NOR device address */
+    if (hnor->Init.NSBank == FMC_NORSRAM_BANK1)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS1;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK2)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS2;
+    }
+    else if (hnor->Init.NSBank == FMC_NORSRAM_BANK3)
+    {
+      deviceaddress = NOR_MEMORY_ADRESS3;
+    }
+    else /* FMC_NORSRAM_BANK4 */
+    {
+      deviceaddress = NOR_MEMORY_ADRESS4;
+    }
+
+    /* Send read CFI query command */
+    NOR_WRITE(NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, NOR_CMD_ADDRESS_FIRST_CFI), NOR_CMD_DATA_CFI);
+
+    /* read the NOR CFI information */
+    pNOR_CFI->CFI_1 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI1_ADDRESS);
+    pNOR_CFI->CFI_2 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI2_ADDRESS);
+    pNOR_CFI->CFI_3 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI3_ADDRESS);
+    pNOR_CFI->CFI_4 = *(__IO uint16_t *) NOR_ADDR_SHIFT(deviceaddress, uwNORMemoryDataWidth, CFI4_ADDRESS);
+
+    /* Check the NOR controller state */
+    hnor->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
@@ -919,12 +1210,13 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_NOR_RegisterCallback (NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId, pNOR_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_NOR_RegisterCallback(NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId,
+                                           pNOR_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_NOR_StateTypeDef state;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -933,20 +1225,20 @@
   __HAL_LOCK(hnor);
 
   state = hnor->State;
-  if((state == HAL_NOR_STATE_READY) || (state == HAL_NOR_STATE_RESET) || (state == HAL_NOR_STATE_PROTECTED))
+  if ((state == HAL_NOR_STATE_READY) || (state == HAL_NOR_STATE_RESET) || (state == HAL_NOR_STATE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_NOR_MSP_INIT_CB_ID :
-      hnor->MspInitCallback = pCallback;
-      break;
-    case HAL_NOR_MSP_DEINIT_CB_ID :
-      hnor->MspDeInitCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NOR_MSP_INIT_CB_ID :
+        hnor->MspInitCallback = pCallback;
+        break;
+      case HAL_NOR_MSP_DEINIT_CB_ID :
+        hnor->MspDeInitCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -970,7 +1262,7 @@
   *          @arg @ref HAL_NOR_MSP_DEINIT_CB_ID     NOR MspDeInit callback ID
   * @retval status
   */
-HAL_StatusTypeDef HAL_NOR_UnRegisterCallback (NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId)
+HAL_StatusTypeDef HAL_NOR_UnRegisterCallback(NOR_HandleTypeDef *hnor, HAL_NOR_CallbackIDTypeDef CallbackId)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_NOR_StateTypeDef state;
@@ -979,20 +1271,20 @@
   __HAL_LOCK(hnor);
 
   state = hnor->State;
-  if((state == HAL_NOR_STATE_READY) || (state == HAL_NOR_STATE_RESET) || (state == HAL_NOR_STATE_PROTECTED))
+  if ((state == HAL_NOR_STATE_READY) || (state == HAL_NOR_STATE_RESET) || (state == HAL_NOR_STATE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_NOR_MSP_INIT_CB_ID :
-      hnor->MspInitCallback = HAL_NOR_MspInit;
-      break;
-    case HAL_NOR_MSP_DEINIT_CB_ID :
-      hnor->MspDeInitCallback = HAL_NOR_MspDeInit;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_NOR_MSP_INIT_CB_ID :
+        hnor->MspInitCallback = HAL_NOR_MspInit;
+        break;
+      case HAL_NOR_MSP_DEINIT_CB_ID :
+        hnor->MspDeInitCallback = HAL_NOR_MspDeInit;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -1006,14 +1298,15 @@
   return status;
 }
 #endif /* (USE_HAL_NOR_REGISTER_CALLBACKS) */
+
 /**
   * @}
   */
-  
+
 /** @defgroup NOR_Exported_Functions_Group3 NOR Control functions
- *  @brief   management functions 
- *
-@verbatim   
+  *  @brief   management functions
+  *
+@verbatim
   ==============================================================================
                         ##### NOR Control functions #####
   ==============================================================================
@@ -1024,7 +1317,7 @@
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Enables dynamically NOR write operation.
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
@@ -1033,19 +1326,30 @@
   */
 HAL_StatusTypeDef HAL_NOR_WriteOperation_Enable(NOR_HandleTypeDef *hnor)
 {
-  /* Process Locked */
-  __HAL_LOCK(hnor);
+  /* Check the NOR controller state */
+  if (hnor->State == HAL_NOR_STATE_PROTECTED)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
 
-  /* Enable write operation */
-  FMC_NORSRAM_WriteOperation_Enable(hnor->Instance, hnor->Init.NSBank); 
-  
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor); 
-  
-  return HAL_OK;  
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Enable write operation */
+    (void)FMC_NORSRAM_WriteOperation_Enable(hnor->Instance, hnor->Init.NSBank);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
@@ -1056,43 +1360,51 @@
   */
 HAL_StatusTypeDef HAL_NOR_WriteOperation_Disable(NOR_HandleTypeDef *hnor)
 {
-  /* Process Locked */
-  __HAL_LOCK(hnor);
+  /* Check the NOR controller state */
+  if (hnor->State == HAL_NOR_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hnor);
 
-  /* Update the SRAM controller state */
-  hnor->State = HAL_NOR_STATE_BUSY;
-    
-  /* Disable write operation */
-  FMC_NORSRAM_WriteOperation_Disable(hnor->Instance, hnor->Init.NSBank); 
-  
-  /* Update the NOR controller state */
-  hnor->State = HAL_NOR_STATE_PROTECTED;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hnor); 
-  
-  return HAL_OK;  
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_BUSY;
+
+    /* Disable write operation */
+    (void)FMC_NORSRAM_WriteOperation_Disable(hnor->Instance, hnor->Init.NSBank);
+
+    /* Update the NOR controller state */
+    hnor->State = HAL_NOR_STATE_PROTECTED;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hnor);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
   * @}
-  */  
-  
-/** @defgroup NOR_Exported_Functions_Group4 NOR State functions 
- *  @brief   Peripheral State functions 
- *
-@verbatim   
+  */
+
+/** @defgroup NOR_Exported_Functions_Group4 NOR State functions
+  *  @brief   Peripheral State functions
+  *
+@verbatim
   ==============================================================================
                       ##### NOR State functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This subsection permits to get in run-time the status of the NOR controller 
+    This subsection permits to get in run-time the status of the NOR controller
     and the data flow.
 
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  return the NOR controller state
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
@@ -1107,63 +1419,103 @@
 /**
   * @brief  Returns the NOR operation status.
   * @param  hnor pointer to a NOR_HandleTypeDef structure that contains
-  *                the configuration information for NOR module.   
+  *                the configuration information for NOR module.
   * @param  Address Device address
   * @param  Timeout NOR programming Timeout
-  * @retval NOR_Status: The returned value can be: HAL_NOR_STATUS_SUCCESS, HAL_NOR_STATUS_ERROR
+  * @retval NOR_Status The returned value can be: HAL_NOR_STATUS_SUCCESS, HAL_NOR_STATUS_ERROR
   *         or HAL_NOR_STATUS_TIMEOUT
   */
 HAL_NOR_StatusTypeDef HAL_NOR_GetStatus(NOR_HandleTypeDef *hnor, uint32_t Address, uint32_t Timeout)
-{ 
+{
   HAL_NOR_StatusTypeDef status = HAL_NOR_STATUS_ONGOING;
-  uint16_t tmpSR1 = 0, tmpSR2 = 0;
-  uint32_t tickstart = 0U;
+  uint16_t tmpsr1;
+  uint16_t tmpsr2;
+  uint32_t tickstart;
 
   /* Poll on NOR memory Ready/Busy signal ------------------------------------*/
   HAL_NOR_MspWait(hnor, Timeout);
-  
+
   /* Get the NOR memory operation status -------------------------------------*/
-  
+
   /* Get tick */
   tickstart = HAL_GetTick();
-  while((status != HAL_NOR_STATUS_SUCCESS ) && (status != HAL_NOR_STATUS_TIMEOUT))
+
+  if (hnor->CommandSet == NOR_AMD_FUJITSU_COMMAND_SET)
   {
-    /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
+    while ((status != HAL_NOR_STATUS_SUCCESS) && (status != HAL_NOR_STATUS_TIMEOUT))
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      /* Check for the Timeout */
+      if (Timeout != HAL_MAX_DELAY)
       {
-        status = HAL_NOR_STATUS_TIMEOUT; 
-      } 
-    } 
+        if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
+        {
+          status = HAL_NOR_STATUS_TIMEOUT;
+        }
+      }
 
-    /* Read NOR status register (DQ6 and DQ5) */
-    tmpSR1 = *(__IO uint16_t *)Address;
-    tmpSR2 = *(__IO uint16_t *)Address;
+      /* Read NOR status register (DQ6 and DQ5) */
+      tmpsr1 = *(__IO uint16_t *)Address;
+      tmpsr2 = *(__IO uint16_t *)Address;
 
-    /* If DQ6 did not toggle between the two reads then return HAL_NOR_STATUS_SUCCESS  */
-    if((tmpSR1 & NOR_MASK_STATUS_DQ6) == (tmpSR2 & NOR_MASK_STATUS_DQ6)) 
-    {
-      return HAL_NOR_STATUS_SUCCESS ;
-    }
-    
-    if((tmpSR1 & NOR_MASK_STATUS_DQ5) == NOR_MASK_STATUS_DQ5)
-    {
-      status = HAL_NOR_STATUS_ONGOING;
-    }
-    
-    tmpSR1 = *(__IO uint16_t *)Address;
-    tmpSR2 = *(__IO uint16_t *)Address;
+      /* If DQ6 did not toggle between the two reads then return HAL_NOR_STATUS_SUCCESS  */
+      if ((tmpsr1 & NOR_MASK_STATUS_DQ6) == (tmpsr2 & NOR_MASK_STATUS_DQ6))
+      {
+        return HAL_NOR_STATUS_SUCCESS ;
+      }
 
-    /* If DQ6 did not toggle between the two reads then return HAL_NOR_STATUS_SUCCESS  */
-    if((tmpSR1 & NOR_MASK_STATUS_DQ6) == (tmpSR2 & NOR_MASK_STATUS_DQ6)) 
-    {
-      return HAL_NOR_STATUS_SUCCESS;
+      if ((tmpsr1 & NOR_MASK_STATUS_DQ5) == NOR_MASK_STATUS_DQ5)
+      {
+        status = HAL_NOR_STATUS_ONGOING;
+      }
+
+      tmpsr1 = *(__IO uint16_t *)Address;
+      tmpsr2 = *(__IO uint16_t *)Address;
+
+      /* If DQ6 did not toggle between the two reads then return HAL_NOR_STATUS_SUCCESS  */
+      if ((tmpsr1 & NOR_MASK_STATUS_DQ6) == (tmpsr2 & NOR_MASK_STATUS_DQ6))
+      {
+        return HAL_NOR_STATUS_SUCCESS;
+      }
+      if ((tmpsr1 & NOR_MASK_STATUS_DQ5) == NOR_MASK_STATUS_DQ5)
+      {
+        return HAL_NOR_STATUS_ERROR;
+      }
     }
-    if((tmpSR1 & NOR_MASK_STATUS_DQ5) == NOR_MASK_STATUS_DQ5)
+  }
+  else if (hnor->CommandSet == NOR_INTEL_SHARP_EXT_COMMAND_SET)
+  {
+    do
     {
-      return HAL_NOR_STATUS_ERROR;
-    } 
+      NOR_WRITE(Address, NOR_CMD_READ_STATUS_REG);
+      tmpsr2 = *(__IO uint16_t *)(Address);
+
+      /* Check for the Timeout */
+      if (Timeout != HAL_MAX_DELAY)
+      {
+        if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
+        {
+          return HAL_NOR_STATUS_TIMEOUT;
+        }
+      }
+    } while ((tmpsr2 & NOR_MASK_STATUS_DQ7) == 0U);
+
+    NOR_WRITE(Address, NOR_CMD_READ_STATUS_REG);
+    tmpsr1 = *(__IO uint16_t *)(Address);
+    if ((tmpsr1  & (NOR_MASK_STATUS_DQ5 | NOR_MASK_STATUS_DQ4)) != 0U)
+    {
+      /* Clear the Status Register  */
+      NOR_WRITE(Address, NOR_CMD_READ_STATUS_REG);
+      status = HAL_NOR_STATUS_ERROR;
+    }
+    else
+    {
+      status = HAL_NOR_STATUS_SUCCESS;
+    }
+  }
+  else
+  {
+    /* Primary command set not supported by the driver */
+    status = HAL_NOR_STATUS_ERROR;
   }
 
   /* Return the operation status */
@@ -1177,17 +1529,15 @@
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx ||\
-          STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\
-          STM32F479xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx ||\
-          STM32F423xx */
+
+/**
+  * @}
+  */
+
 #endif /* HAL_NOR_MODULE_ENABLED */
-/**
-  * @}
-  */
 
 /**
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* FMC_Bank1 || FSMC_Bank1 */
diff --git a/Src/stm32f4xx_hal_pccard.c b/Src/stm32f4xx_hal_pccard.c
index 2f7d3e0..14deb47 100644
--- a/Src/stm32f4xx_hal_pccard.c
+++ b/Src/stm32f4xx_hal_pccard.c
@@ -3,72 +3,83 @@
   * @file    stm32f4xx_hal_pccard.c
   * @author  MCD Application Team
   * @brief   PCCARD HAL module driver.
-  *          This file provides a generic firmware to drive PCCARD memories mounted 
+  *          This file provides a generic firmware to drive PCCARD memories mounted
   *          as external device.
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                         ##### How to use this driver #####
- ===============================================================================  
+ ===============================================================================
    [..]
-     This driver is a generic layered driver which contains a set of APIs used to 
-     control PCCARD/compact flash memories. It uses the FMC/FSMC layer functions 
+     This driver is a generic layered driver which contains a set of APIs used to
+      control PCCARD/compact flash memories. It uses the FMC/FSMC layer functions
      to interface with PCCARD devices. This driver is used for:
-    
-    (+) PCCARD/Compact Flash memory configuration sequence using the function 
+
+    (+) PCCARD/Compact Flash memory configuration sequence using the function
         HAL_PCCARD_Init()/HAL_CF_Init() with control and timing parameters for
         both common and attribute spaces.
-            
+
     (+) Read PCCARD/Compact Flash memory maker and device IDs using the function
         HAL_PCCARD_Read_ID()/HAL_CF_Read_ID(). The read information is stored in
-        the CompactFlash_ID structure declared by the function caller. 
-        
+        the CompactFlash_ID structure declared by the function caller.
+
     (+) Access PCCARD/Compact Flash memory by read/write operations using the functions
-        HAL_PCCARD_Read_Sector()/ HAL_PCCARD_Write_Sector() - 
-        HAL_CF_Read_Sector()/HAL_CF_Write_Sector(), to read/write sector. 
-        
+        HAL_PCCARD_Read_Sector()/ HAL_PCCARD_Write_Sector() -
+        HAL_CF_Read_Sector()/HAL_CF_Write_Sector(), to read/write sector.
+
     (+) Perform PCCARD/Compact Flash Reset chip operation using the function
         HAL_PCCARD_Reset()/HAL_CF_Reset.
-        
-    (+) Perform PCCARD/Compact Flash erase sector operation using the function 
+
+    (+) Perform PCCARD/Compact Flash erase sector operation using the function
         HAL_PCCARD_Erase_Sector()/HAL_CF_Erase_Sector.
-    
+
     (+) Read the PCCARD/Compact Flash status operation using the function
         HAL_PCCARD_ReadStatus()/HAL_CF_ReadStatus().
-     
+
     (+) You can monitor the PCCARD/Compact Flash  device HAL state by calling
         the function HAL_PCCARD_GetState()/HAL_CF_GetState()
-        
+
    [..]
-     (@) This driver is a set of generic APIs which handle standard PCCARD/compact flash 
-         operations. If a PCCARD/Compact Flash device contains different operations 
+     (@) This driver is a set of generic APIs which handle standard PCCARD/compact flash
+         operations. If a PCCARD/Compact Flash device contains different operations
          and/or implementations, it should be implemented separately.
-   
+
       *** Callback registration ***
     =============================================
     [..]
       The compilation define  USE_HAL_PCCARD_REGISTER_CALLBACKS when set to 1
       allows the user to configure dynamically the driver callbacks.
 
-      Use Functions @ref HAL_PCCARD_RegisterCallback() to register a user callback,
+      Use Functions HAL_PCCARD_RegisterCallback() to register a user callback,
       it allows to register following callbacks:
         (+) MspInitCallback    : PCCARD MspInit.
         (+) MspDeInitCallback  : PCCARD MspDeInit.
       This function takes as parameters the HAL peripheral handle, the Callback ID
       and a pointer to the user callback function.
 
-      Use function @ref HAL_PCCARD_UnRegisterCallback() to reset a callback to the default
+      Use function HAL_PCCARD_UnRegisterCallback() to reset a callback to the default
       weak (surcharged) function. It allows to reset following callbacks:
         (+) MspInitCallback    : PCCARD MspInit.
         (+) MspDeInitCallback  : PCCARD MspDeInit.
       This function) takes as parameters the HAL peripheral handle and the Callback ID.
 
-      By default, after the @ref HAL_PCCARD_Init and if the state is HAL_PCCARD_STATE_RESET
+      By default, after the HAL_PCCARD_Init and if the state is HAL_PCCARD_STATE_RESET
       all callbacks are reset to the corresponding legacy weak (surcharged) functions.
       Exception done for MspInit and MspDeInit callbacks that are respectively
-      reset to the legacy weak (surcharged) functions in the @ref HAL_PCCARD_Init
-      and @ref  HAL_PCCARD_DeInit only when these callbacks are null (not registered beforehand).
-      If not, MspInit or MspDeInit are not null, the @ref HAL_PCCARD_Init and @ref HAL_PCCARD_DeInit
+      reset to the legacy weak (surcharged) functions in the HAL_PCCARD_Init
+      and  HAL_PCCARD_DeInit only when these callbacks are null (not registered beforehand).
+      If not, MspInit or MspDeInit are not null, the HAL_PCCARD_Init and HAL_PCCARD_DeInit
       keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
       Callbacks can be registered/unregistered in READY state only.
@@ -76,8 +87,8 @@
       in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
       during the Init/DeInit.
       In that case first register the MspInit/MspDeInit user callbacks
-      using @ref HAL_PCCARD_RegisterCallback before calling @ref HAL_PCCARD_DeInit
-      or @ref HAL_PCCARD_Init function.
+      using HAL_PCCARD_RegisterCallback before calling HAL_PCCARD_DeInit
+      or HAL_PCCARD_Init function.
 
       When The compilation define USE_HAL_PCCARD_REGISTER_CALLBACKS is set to 0 or
       not defined, the callback registering feature is not available
@@ -85,36 +96,26 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
 
+#if defined(FMC_Bank4) || defined(FSMC_Bank4)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
 #ifdef HAL_PCCARD_MODULE_ENABLED
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
-/** @defgroup PCCARD PCCARD  
+
+/** @defgroup PCCARD PCCARD
   * @brief PCCARD HAL module driver
   * @{
   */
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-    
+
 /** @defgroup PCCARD_Private_Defines PCCARD Private Defines
   * @{
   */
@@ -127,8 +128,8 @@
 #define PCCARD_STATUS_WRITE_OK                 (uint8_t)0x50
 /**
   * @}
-  */ 
-    
+  */
+
 /* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private function ----------------------------------------------------------*/
@@ -137,44 +138,45 @@
   * @{
   */
 
-/** @defgroup PCCARD_Exported_Functions_Group1 Initialization and de-initialization functions 
-  * @brief    Initialization and Configuration functions 
+/** @defgroup PCCARD_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
           ##### PCCARD Initialization and de-initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to initialize/de-initialize
     the PCCARD memory
-  
+
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Perform the PCCARD memory Initialization sequence
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
   *                the configuration information for PCCARD module.
   * @param  ComSpaceTiming Common space timing structure
   * @param  AttSpaceTiming Attribute space timing structure
-  * @param  IOSpaceTiming IO space timing structure     
+  * @param  IOSpaceTiming IO space timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_PCCARD_Init(PCCARD_HandleTypeDef *hpccard, FMC_NAND_PCC_TimingTypeDef *ComSpaceTiming, FMC_NAND_PCC_TimingTypeDef *AttSpaceTiming, FMC_NAND_PCC_TimingTypeDef *IOSpaceTiming)
+HAL_StatusTypeDef HAL_PCCARD_Init(PCCARD_HandleTypeDef *hpccard, FMC_NAND_PCC_TimingTypeDef *ComSpaceTiming,
+                                  FMC_NAND_PCC_TimingTypeDef *AttSpaceTiming, FMC_NAND_PCC_TimingTypeDef *IOSpaceTiming)
 {
   /* Check the PCCARD controller state */
-  if(hpccard == NULL)
+  if (hpccard == NULL)
   {
-     return HAL_ERROR;
+    return HAL_ERROR;
   }
-  
-  if(hpccard->State == HAL_PCCARD_STATE_RESET)
-  {  
+
+  if (hpccard->State == HAL_PCCARD_STATE_RESET)
+  {
     /* Allocate lock resource and initialize it */
     hpccard->Lock = HAL_UNLOCKED;
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
-    if(hpccard->MspInitCallback == NULL)
+    if (hpccard->MspInitCallback == NULL)
     {
       hpccard->MspInitCallback = HAL_PCCARD_MspInit;
     }
@@ -187,28 +189,28 @@
     HAL_PCCARD_MspInit(hpccard);
 #endif
   }
-  
+
   /* Initialize the PCCARD state */
-  hpccard->State = HAL_PCCARD_STATE_BUSY;    
+  hpccard->State = HAL_PCCARD_STATE_BUSY;
 
   /* Initialize PCCARD control Interface */
   FMC_PCCARD_Init(hpccard->Instance, &(hpccard->Init));
-  
+
   /* Init PCCARD common space timing Interface */
   FMC_PCCARD_CommonSpace_Timing_Init(hpccard->Instance, ComSpaceTiming);
-  
-  /* Init PCCARD attribute space timing Interface */  
+
+  /* Init PCCARD attribute space timing Interface */
   FMC_PCCARD_AttributeSpace_Timing_Init(hpccard->Instance, AttSpaceTiming);
-  
-  /* Init PCCARD IO space timing Interface */  
+
+  /* Init PCCARD IO space timing Interface */
   FMC_PCCARD_IOSpace_Timing_Init(hpccard->Instance, IOSpaceTiming);
-  
+
   /* Enable the PCCARD device */
-  __FMC_PCCARD_ENABLE(hpccard->Instance); 
-  
+  __FMC_PCCARD_ENABLE(hpccard->Instance);
+
   /* Update the PCCARD state */
-  hpccard->State = HAL_PCCARD_STATE_READY;  
-  
+  hpccard->State = HAL_PCCARD_STATE_READY;
+
   return HAL_OK;
 
 }
@@ -222,7 +224,7 @@
 HAL_StatusTypeDef  HAL_PCCARD_DeInit(PCCARD_HandleTypeDef *hpccard)
 {
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
-  if(hpccard->MspDeInitCallback == NULL)
+  if (hpccard->MspDeInitCallback == NULL)
   {
     hpccard->MspDeInitCallback = HAL_PCCARD_MspDeInit;
   }
@@ -236,14 +238,14 @@
 
   /* Configure the PCCARD registers with their reset values */
   FMC_PCCARD_DeInit(hpccard->Instance);
-  
+
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_RESET;
 
   /* Release Lock */
   __HAL_UNLOCK(hpccard);
 
-  return HAL_OK; 
+  return HAL_OK;
 }
 
 /**
@@ -258,7 +260,7 @@
   UNUSED(hpccard);
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_PCCARD_MspInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -273,90 +275,90 @@
   UNUSED(hpccard);
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_PCCARD_MspDeInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
   * @}
   */
 
-/** @defgroup PCCARD_Exported_Functions_Group2 Input and Output functions 
-  * @brief    Input Output and memory control functions 
+/** @defgroup PCCARD_Exported_Functions_Group2 Input and Output functions
+  * @brief    Input Output and memory control functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
                     ##### PCCARD Input and Output functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to use and control the PCCARD memory
-  
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Read Compact Flash's ID.
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
   *                the configuration information for PCCARD module.
-  * @param  CompactFlash_ID Compact flash ID structure.  
-  * @param  pStatus pointer to compact flash status         
+  * @param  CompactFlash_ID Compact flash ID structure.
+  * @param  pStatus pointer to compact flash status
   * @retval HAL status
-  *   
-  */ 
+  *
+  */
 HAL_StatusTypeDef HAL_PCCARD_Read_ID(PCCARD_HandleTypeDef *hpccard, uint8_t CompactFlash_ID[], uint8_t *pStatus)
 {
   uint32_t timeout = PCCARD_TIMEOUT_READ_ID, index = 0U;
   uint8_t status = 0;
-  
+
   /* Process Locked */
-  __HAL_LOCK(hpccard);  
-  
+  __HAL_LOCK(hpccard);
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
+
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_BUSY;
-  
+
   /* Initialize the PCCARD status */
-  *pStatus = PCCARD_READY;  
-  
+  *pStatus = PCCARD_READY;
+
   /* Send the Identify Command */
-  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)  = 0xECEC;
-    
+  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)  = (uint16_t)0xECEC;
+
   /* Read PCCARD IDs and timeout treatment */
-  do 
+  do
   {
-     /* Read the PCCARD status */
-     status = *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
-     
-     timeout--;
-  }while((status != PCCARD_STATUS_OK) && timeout); 
-  
-  if(timeout == 0U)
+    /* Read the PCCARD status */
+    status = *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
+
+    timeout--;
+  } while ((status != PCCARD_STATUS_OK) && timeout);
+
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
   }
   else
   {
-     /* Read PCCARD ID bytes */
-    for(index = 0U; index < 16U; index++)
+    /* Read PCCARD ID bytes */
+    for (index = 0U; index < 16U; index++)
     {
       CompactFlash_ID[index] = *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_DATA);
-    }    
+    }
   }
-  
+
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_READY;
-  
+
   /* Process unlocked */
-  __HAL_UNLOCK(hpccard);  
-  
+  __HAL_UNLOCK(hpccard);
+
   return HAL_OK;
 }
-   
+
 /**
   * @brief  Read sector from PCCARD memory
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
@@ -365,21 +367,22 @@
   * @param  SectorAddress Sector address to read
   * @param  pStatus pointer to PCCARD status
   * @retval HAL status
-  */    
-HAL_StatusTypeDef HAL_PCCARD_Read_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress, uint8_t *pStatus)
+  */
+HAL_StatusTypeDef HAL_PCCARD_Read_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,
+                                         uint8_t *pStatus)
 {
   uint32_t timeout = PCCARD_TIMEOUT_READ_WRITE_SECTOR, index = 0U;
   uint8_t status = 0;
 
   /* Process Locked */
   __HAL_LOCK(hpccard);
-  
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-  
+
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_BUSY;
 
@@ -387,22 +390,22 @@
   *pStatus = PCCARD_READY;
 
   /* Set the parameters to write a sector */
-  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_HIGH) = (uint16_t)0x00;
+  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_HIGH) = (uint16_t)0x0000;
   *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_SECTOR_COUNT)  = ((uint16_t)0x0100) | ((uint16_t)SectorAddress);
-  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)    = (uint16_t)0xE4A0;  
+  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)    = (uint16_t)0xE4A0;
 
   do
   {
     /* wait till the Status = 0x80 */
     status =  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
-  }while((status == 0x80) && timeout);
-  
-  if(timeout == 0U)
+  } while ((status == 0x80U) && timeout);
+
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
   }
-  
+
   timeout = PCCARD_TIMEOUT_READ_WRITE_SECTOR;
 
   do
@@ -410,25 +413,25 @@
     /* wait till the Status = PCCARD_STATUS_OK */
     status =  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
-  }while((status != PCCARD_STATUS_OK) && timeout);
-  
-  if(timeout == 0U)
+  } while ((status != PCCARD_STATUS_OK) && timeout);
+
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
   }
-  
+
   /* Read bytes */
-  for(; index < PCCARD_SECTOR_SIZE; index++)
+  for (; index < PCCARD_SECTOR_SIZE; index++)
   {
     *(uint16_t *)pBuffer++ = *(uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR);
-  } 
+  }
 
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_READY;
-  
+
   /* Process unlocked */
   __HAL_UNLOCK(hpccard);
-      
+
   return HAL_OK;
 }
 
@@ -442,45 +445,46 @@
   * @param  pStatus pointer to PCCARD status
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_PCCARD_Write_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,  uint8_t *pStatus)
+HAL_StatusTypeDef HAL_PCCARD_Write_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress,
+                                          uint8_t *pStatus)
 {
   uint32_t timeout = PCCARD_TIMEOUT_READ_WRITE_SECTOR, index = 0U;
   uint8_t status = 0;
 
   /* Process Locked */
-  __HAL_LOCK(hpccard);  
-  
+  __HAL_LOCK(hpccard);
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
-   
+
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_BUSY;
-    
+
   /* Initialize PCCARD status */
-  *pStatus = PCCARD_READY;  
-    
+  *pStatus = PCCARD_READY;
+
   /* Set the parameters to write a sector */
-  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_HIGH) = (uint16_t)0x00;
+  *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_HIGH) = (uint16_t)0x0000;
   *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_SECTOR_COUNT)  = ((uint16_t)0x0100) | ((uint16_t)SectorAddress);
   *(__IO uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)    = (uint16_t)0x30A0;
-  
+
   do
   {
     /* Wait till the Status = PCCARD_STATUS_OK */
     status =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
-  }while((status != PCCARD_STATUS_OK) && timeout);
-  
-  if(timeout == 0U)
+  } while ((status != PCCARD_STATUS_OK) && timeout);
+
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
   }
-  
+
   /* Write bytes */
-  for(; index < PCCARD_SECTOR_SIZE; index++)
+  for (; index < PCCARD_SECTOR_SIZE; index++)
   {
     *(uint16_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR) = *(uint16_t *)pBuffer++;
   }
@@ -490,25 +494,25 @@
     /* Wait till the Status = PCCARD_STATUS_WRITE_OK */
     status =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
-  }while((status != PCCARD_STATUS_WRITE_OK) && timeout);
+  } while ((status != PCCARD_STATUS_WRITE_OK) && timeout);
 
-  if(timeout == 0U)
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
-  }  
+  }
 
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_READY;
-  
+
   /* Process unlocked */
-  __HAL_UNLOCK(hpccard);  
-  
+  __HAL_UNLOCK(hpccard);
+
   return HAL_OK;
 }
 
 
 /**
-  * @brief  Erase sector from PCCARD memory 
+  * @brief  Erase sector from PCCARD memory
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
   *                the configuration information for PCCARD module.
   * @param  SectorAddress Sector address to erase
@@ -519,22 +523,22 @@
 {
   uint32_t timeout = PCCARD_TIMEOUT_ERASE_SECTOR;
   uint8_t status = 0;
-  
+
   /* Process Locked */
-  __HAL_LOCK(hpccard);  
-  
+  __HAL_LOCK(hpccard);
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
 
   /* Update the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_BUSY;
-  
-  /* Initialize PCCARD status */ 
+
+  /* Initialize PCCARD status */
   *pStatus = PCCARD_READY;
-    
+
   /* Set the parameters to write a sector */
   *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_LOW)  = 0x00;
   *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CYLINDER_HIGH) = 0x00;
@@ -542,32 +546,32 @@
   *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_SECTOR_COUNT)  = 0x01;
   *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_CARD_HEAD)     = 0xA0;
   *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD)    = ATA_ERASE_SECTOR_CMD;
-  
+
   /* wait till the PCCARD is ready */
   status =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
-  
-  while((status != PCCARD_STATUS_WRITE_OK) && timeout)
+
+  while ((status != PCCARD_STATUS_WRITE_OK) && timeout)
   {
     status =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
-  } 
-  
-  if(timeout == 0U)
+  }
+
+  if (timeout == 0U)
   {
     *pStatus = PCCARD_TIMEOUT_ERROR;
   }
-  
+
   /* Check the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_READY;
-  
+
   /* Process unlocked */
-  __HAL_UNLOCK(hpccard);   
-  
+  __HAL_UNLOCK(hpccard);
+
   return HAL_OK;
 }
 
 /**
-  * @brief  Reset the PCCARD memory 
+  * @brief  Reset the PCCARD memory
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
   *                the configuration information for PCCARD module.
   * @retval HAL status
@@ -575,12 +579,12 @@
 HAL_StatusTypeDef HAL_PCCARD_Reset(PCCARD_HandleTypeDef *hpccard)
 {
   /* Process Locked */
-  __HAL_LOCK(hpccard);  
-  
+  __HAL_LOCK(hpccard);
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_BUSY;
+    return HAL_BUSY;
   }
 
   /* Provide a SW reset and Read and verify the:
@@ -592,15 +596,15 @@
 
   /* Check the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_BUSY;
-  
-  *(__IO uint8_t *)(PCCARD_ATTRIBUTE_SPACE_ADDRESS | ATA_CARD_CONFIGURATION ) = 0x01;
-    
+
+  *(__IO uint8_t *)(PCCARD_ATTRIBUTE_SPACE_ADDRESS | ATA_CARD_CONFIGURATION) = 0x01;
+
   /* Check the PCCARD controller state */
   hpccard->State = HAL_PCCARD_STATE_READY;
-  
+
   /* Process unlocked */
-  __HAL_UNLOCK(hpccard);  
-  
+  __HAL_UNLOCK(hpccard);
+
   return HAL_OK;
 }
 
@@ -609,11 +613,11 @@
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
   *                the configuration information for PCCARD module.
   * @retval HAL status
-*/
+  */
 void HAL_PCCARD_IRQHandler(PCCARD_HandleTypeDef *hpccard)
 {
   /* Check PCCARD interrupt Rising edge flag */
-  if(__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_RISING_EDGE))
+  if (__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_RISING_EDGE))
   {
     /* PCCARD interrupt callback*/
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
@@ -625,9 +629,9 @@
     /* Clear PCCARD interrupt Rising edge pending bit */
     __FMC_PCCARD_CLEAR_FLAG(hpccard->Instance, FMC_FLAG_RISING_EDGE);
   }
-  
+
   /* Check PCCARD interrupt Level flag */
-  if(__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_LEVEL))
+  if (__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_LEVEL))
   {
     /* PCCARD interrupt callback*/
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
@@ -641,7 +645,7 @@
   }
 
   /* Check PCCARD interrupt Falling edge flag */
-  if(__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_FALLING_EDGE))
+  if (__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_FALLING_EDGE))
   {
     /* PCCARD interrupt callback*/
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
@@ -653,9 +657,9 @@
     /* Clear PCCARD interrupt Falling edge pending bit */
     __FMC_PCCARD_CLEAR_FLAG(hpccard->Instance, FMC_FLAG_FALLING_EDGE);
   }
-  
+
   /* Check PCCARD interrupt FIFO empty flag */
-  if(__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_FEMPT))
+  if (__FMC_PCCARD_GET_FLAG(hpccard->Instance, FMC_FLAG_FEMPT))
   {
     /* PCCARD interrupt callback*/
 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
@@ -666,7 +670,7 @@
 
     /* Clear PCCARD interrupt FIFO empty pending bit */
     __FMC_PCCARD_CLEAR_FLAG(hpccard->Instance, FMC_FLAG_FEMPT);
-  }  
+  }
 }
 
 /**
@@ -697,11 +701,12 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_PCCARD_RegisterCallback (PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId, pPCCARD_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_PCCARD_RegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId,
+                                              pPCCARD_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -709,39 +714,39 @@
   /* Process locked */
   __HAL_LOCK(hpccard);
 
-  if(hpccard->State == HAL_PCCARD_STATE_READY)
+  if (hpccard->State == HAL_PCCARD_STATE_READY)
   {
     switch (CallbackId)
     {
-    case HAL_PCCARD_MSP_INIT_CB_ID :
-      hpccard->MspInitCallback = pCallback;
-      break;
-    case HAL_PCCARD_MSP_DEINIT_CB_ID :
-      hpccard->MspDeInitCallback = pCallback;
-      break;
-    case HAL_PCCARD_IT_CB_ID :
-      hpccard->ItCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_PCCARD_MSP_INIT_CB_ID :
+        hpccard->MspInitCallback = pCallback;
+        break;
+      case HAL_PCCARD_MSP_DEINIT_CB_ID :
+        hpccard->MspDeInitCallback = pCallback;
+        break;
+      case HAL_PCCARD_IT_CB_ID :
+        hpccard->ItCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hpccard->State == HAL_PCCARD_STATE_RESET)
+  else if (hpccard->State == HAL_PCCARD_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_PCCARD_MSP_INIT_CB_ID :
-      hpccard->MspInitCallback = pCallback;
-      break;
-    case HAL_PCCARD_MSP_DEINIT_CB_ID :
-      hpccard->MspDeInitCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_PCCARD_MSP_INIT_CB_ID :
+        hpccard->MspInitCallback = pCallback;
+        break;
+      case HAL_PCCARD_MSP_DEINIT_CB_ID :
+        hpccard->MspDeInitCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -766,46 +771,46 @@
   *          @arg @ref HAL_PCCARD_IT_CB_ID             PCCARD IT callback ID
   * @retval status
   */
-HAL_StatusTypeDef HAL_PCCARD_UnRegisterCallback (PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId)
+HAL_StatusTypeDef HAL_PCCARD_UnRegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
   /* Process locked */
   __HAL_LOCK(hpccard);
 
-  if(hpccard->State == HAL_PCCARD_STATE_READY)
+  if (hpccard->State == HAL_PCCARD_STATE_READY)
   {
     switch (CallbackId)
     {
-    case HAL_PCCARD_MSP_INIT_CB_ID :
-      hpccard->MspInitCallback = HAL_PCCARD_MspInit;
-      break;
-    case HAL_PCCARD_MSP_DEINIT_CB_ID :
-      hpccard->MspDeInitCallback = HAL_PCCARD_MspDeInit;
-      break;
-    case HAL_PCCARD_IT_CB_ID :
-      hpccard->ItCallback = HAL_PCCARD_ITCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_PCCARD_MSP_INIT_CB_ID :
+        hpccard->MspInitCallback = HAL_PCCARD_MspInit;
+        break;
+      case HAL_PCCARD_MSP_DEINIT_CB_ID :
+        hpccard->MspDeInitCallback = HAL_PCCARD_MspDeInit;
+        break;
+      case HAL_PCCARD_IT_CB_ID :
+        hpccard->ItCallback = HAL_PCCARD_ITCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hpccard->State == HAL_PCCARD_STATE_RESET)
+  else if (hpccard->State == HAL_PCCARD_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_PCCARD_MSP_INIT_CB_ID :
-      hpccard->MspInitCallback = HAL_PCCARD_MspInit;
-      break;
-    case HAL_PCCARD_MSP_DEINIT_CB_ID :
-      hpccard->MspDeInitCallback = HAL_PCCARD_MspDeInit;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_PCCARD_MSP_INIT_CB_ID :
+        hpccard->MspInitCallback = HAL_PCCARD_MspInit;
+        break;
+      case HAL_PCCARD_MSP_DEINIT_CB_ID :
+        hpccard->MspDeInitCallback = HAL_PCCARD_MspDeInit;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -824,21 +829,21 @@
   * @}
   */
 
-/** @defgroup PCCARD_Exported_Functions_Group3 State functions 
- *  @brief   Peripheral State functions 
- *
-@verbatim   
+/** @defgroup PCCARD_Exported_Functions_Group3 State functions
+  *  @brief   Peripheral State functions
+  *
+@verbatim
   ==============================================================================
                       ##### PCCARD State functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This subsection permits to get in run-time the status of the PCCARD controller 
+    This subsection permits to get in run-time the status of the PCCARD controller
     and the data flow.
 
 @endverbatim
   * @{
-  */ 
-  
+  */
+
 /**
   * @brief  return the PCCARD controller state
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
@@ -848,95 +853,94 @@
 HAL_PCCARD_StateTypeDef HAL_PCCARD_GetState(PCCARD_HandleTypeDef *hpccard)
 {
   return hpccard->State;
-}  
- 
+}
+
 /**
   * @brief  Get the compact flash memory status
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
-  *                the configuration information for PCCARD module.       
+  *                the configuration information for PCCARD module.
   * @retval New status of the PCCARD operation. This parameter can be:
-  *          - CompactFlash_TIMEOUT_ERROR: when the previous operation generate 
+  *          - CompactFlash_TIMEOUT_ERROR: when the previous operation generate
   *            a Timeout error
-  *          - CompactFlash_READY: when memory is ready for the next operation          
+  *          - CompactFlash_READY: when memory is ready for the next operation
   */
 HAL_PCCARD_StatusTypeDef HAL_PCCARD_GetStatus(PCCARD_HandleTypeDef *hpccard)
 {
-  uint32_t timeout = PCCARD_TIMEOUT_STATUS, status_pccard = 0U;  
-  
+  uint32_t timeout = PCCARD_TIMEOUT_STATUS, status_pccard = 0U;
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_PCCARD_STATUS_ONGOING;
+    return HAL_PCCARD_STATUS_ONGOING;
   }
 
   status_pccard =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
-  
-  while((status_pccard == PCCARD_BUSY) && timeout)
+
+  while ((status_pccard == PCCARD_BUSY) && timeout)
   {
     status_pccard =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
     timeout--;
   }
 
-  if(timeout == 0U)
-  {          
-    status_pccard =  PCCARD_TIMEOUT_ERROR;      
-  }   
+  if (timeout == 0U)
+  {
+    status_pccard =  PCCARD_TIMEOUT_ERROR;
+  }
 
   /* Return the operation status */
-  return (HAL_PCCARD_StatusTypeDef) status_pccard;      
+  return (HAL_PCCARD_StatusTypeDef) status_pccard;
 }
-  
+
 /**
   * @brief  Reads the Compact Flash memory status using the Read status command
   * @param  hpccard pointer to a PCCARD_HandleTypeDef structure that contains
-  *                the configuration information for PCCARD module.      
+  *                the configuration information for PCCARD module.
   * @retval The status of the Compact Flash memory. This parameter can be:
   *          - CompactFlash_BUSY: when memory is busy
-  *          - CompactFlash_READY: when memory is ready for the next operation    
-  *          - CompactFlash_ERROR: when the previous operation generates error                
+  *          - CompactFlash_READY: when memory is ready for the next operation
+  *          - CompactFlash_ERROR: when the previous operation generates error
   */
 HAL_PCCARD_StatusTypeDef HAL_PCCARD_ReadStatus(PCCARD_HandleTypeDef *hpccard)
 {
   uint8_t data = 0U, status_pccard = PCCARD_BUSY;
-  
+
   /* Check the PCCARD controller state */
-  if(hpccard->State == HAL_PCCARD_STATE_BUSY)
+  if (hpccard->State == HAL_PCCARD_STATE_BUSY)
   {
-     return HAL_PCCARD_STATUS_ONGOING;
-  } 
+    return HAL_PCCARD_STATUS_ONGOING;
+  }
 
   /* Read status operation */
   data =  *(__IO uint8_t *)(PCCARD_IO_SPACE_PRIMARY_ADDR | ATA_STATUS_CMD_ALTERNATE);
 
-  if((data & PCCARD_TIMEOUT_ERROR) == PCCARD_TIMEOUT_ERROR)
+  if ((data & PCCARD_TIMEOUT_ERROR) == PCCARD_TIMEOUT_ERROR)
   {
     status_pccard = PCCARD_TIMEOUT_ERROR;
-  } 
-  else if((data & PCCARD_READY) == PCCARD_READY)
+  }
+  else if ((data & PCCARD_READY) == PCCARD_READY)
   {
     status_pccard = PCCARD_READY;
   }
-  
+
   return (HAL_PCCARD_StatusTypeDef) status_pccard;
-}  
- 
+}
+
 /**
   * @}
   */
-  
+
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
-          STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+
+/**
+  * @}
+  */
+
 #endif /* HAL_PCCARD_MODULE_ENABLED */
 
 /**
   * @}
   */
 
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /*  FMC_Bank4 || FSMC_Bank4 */
diff --git a/Src/stm32f4xx_hal_pcd.c b/Src/stm32f4xx_hal_pcd.c
index aa9702e..7e46592 100644
--- a/Src/stm32f4xx_hal_pcd.c
+++ b/Src/stm32f4xx_hal_pcd.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### How to use this driver #####
@@ -41,17 +52,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -422,7 +422,7 @@
 
 /**
   * @brief  Unregister an USB PCD Callback
-  *         USB PCD callabck is redirected to the weak predefined callback
+  *         USB PCD callback is redirected to the weak predefined callback
   * @param  hpcd USB PCD handle
   * @param  CallbackID ID of the callback to be unregistered
   *         This parameter can be one of the following values:
@@ -1061,7 +1061,7 @@
   uint32_t epint;
   uint32_t epnum;
   uint32_t fifoemptymsk;
-  uint32_t temp;
+  uint32_t RegVal;
 
   /* ensure that we are in device mode */
   if (USB_GetMode(hpcd->Instance) == USB_OTG_MODE_DEVICE)
@@ -1072,6 +1072,9 @@
       return;
     }
 
+    /* store current frame number */
+    hpcd->FrameNumber = (USBx_DEVICE->DSTS & USB_OTG_DSTS_FNSOF_Msk) >> USB_OTG_DSTS_FNSOF_Pos;
+
     if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_MMIS))
     {
       /* incorrect mode, acknowledge the interrupt */
@@ -1083,30 +1086,31 @@
     {
       USB_MASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL);
 
-      temp = USBx->GRXSTSP;
+      RegVal = USBx->GRXSTSP;
 
-      ep = &hpcd->OUT_ep[temp & USB_OTG_GRXSTSP_EPNUM];
+      ep = &hpcd->OUT_ep[RegVal & USB_OTG_GRXSTSP_EPNUM];
 
-      if (((temp & USB_OTG_GRXSTSP_PKTSTS) >> 17) ==  STS_DATA_UPDT)
+      if (((RegVal & USB_OTG_GRXSTSP_PKTSTS) >> 17) ==  STS_DATA_UPDT)
       {
-        if ((temp & USB_OTG_GRXSTSP_BCNT) != 0U)
+        if ((RegVal & USB_OTG_GRXSTSP_BCNT) != 0U)
         {
           (void)USB_ReadPacket(USBx, ep->xfer_buff,
-                               (uint16_t)((temp & USB_OTG_GRXSTSP_BCNT) >> 4));
+                               (uint16_t)((RegVal & USB_OTG_GRXSTSP_BCNT) >> 4));
 
-          ep->xfer_buff += (temp & USB_OTG_GRXSTSP_BCNT) >> 4;
-          ep->xfer_count += (temp & USB_OTG_GRXSTSP_BCNT) >> 4;
+          ep->xfer_buff += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4;
+          ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4;
         }
       }
-      else if (((temp & USB_OTG_GRXSTSP_PKTSTS) >> 17) ==  STS_SETUP_UPDT)
+      else if (((RegVal & USB_OTG_GRXSTSP_PKTSTS) >> 17) == STS_SETUP_UPDT)
       {
         (void)USB_ReadPacket(USBx, (uint8_t *)hpcd->Setup, 8U);
-        ep->xfer_count += (temp & USB_OTG_GRXSTSP_BCNT) >> 4;
+        ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4;
       }
       else
       {
         /* ... */
       }
+
       USB_UNMASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL);
     }
 
@@ -1141,6 +1145,30 @@
             CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_OTEPDIS);
           }
 
+          /* Clear OUT Endpoint disable interrupt */
+          if ((epint & USB_OTG_DOEPINT_EPDISD) == USB_OTG_DOEPINT_EPDISD)
+          {
+            if ((USBx->GINTSTS & USB_OTG_GINTSTS_BOUTNAKEFF) == USB_OTG_GINTSTS_BOUTNAKEFF)
+            {
+              USBx_DEVICE->DCTL |= USB_OTG_DCTL_CGONAK;
+            }
+
+            ep = &hpcd->OUT_ep[epnum];
+
+            if (ep->is_iso_incomplete == 1U)
+            {
+              ep->is_iso_incomplete = 0U;
+
+#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
+              hpcd->ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum);
+#else
+              HAL_PCD_ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum);
+#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+            }
+
+            CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_EPDISD);
+          }
+
           /* Clear Status Phase Received interrupt */
           if ((epint & USB_OTG_DOEPINT_OTEPSPR) == USB_OTG_DOEPINT_OTEPSPR)
           {
@@ -1210,6 +1238,21 @@
           }
           if ((epint & USB_OTG_DIEPINT_EPDISD) == USB_OTG_DIEPINT_EPDISD)
           {
+            (void)USB_FlushTxFifo(USBx, epnum);
+
+            ep = &hpcd->IN_ep[epnum];
+
+            if (ep->is_iso_incomplete == 1U)
+            {
+              ep->is_iso_incomplete = 0U;
+
+#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
+              hpcd->ISOINIncompleteCallback(hpcd, (uint8_t)epnum);
+#else
+              HAL_PCD_ISOINIncompleteCallback(hpcd, (uint8_t)epnum);
+#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+            }
+
             CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_EPDISD);
           }
           if ((epint & USB_OTG_DIEPINT_TXFE) == USB_OTG_DIEPINT_TXFE)
@@ -1300,7 +1343,6 @@
       {
         USBx_INEP(i)->DIEPINT = 0xFB7FU;
         USBx_INEP(i)->DIEPCTL &= ~USB_OTG_DIEPCTL_STALL;
-        USBx_INEP(i)->DIEPCTL |= USB_OTG_DIEPCTL_SNAK;
         USBx_OUTEP(i)->DOEPINT = 0xFB7FU;
         USBx_OUTEP(i)->DOEPCTL &= ~USB_OTG_DOEPCTL_STALL;
         USBx_OUTEP(i)->DOEPCTL |= USB_OTG_DOEPCTL_SNAK;
@@ -1372,18 +1414,37 @@
       __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SOF);
     }
 
+    /* Handle Global OUT NAK effective Interrupt */
+    if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_BOUTNAKEFF))
+    {
+      USBx->GINTMSK &= ~USB_OTG_GINTMSK_GONAKEFFM;
+
+      for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++)
+      {
+        if (hpcd->OUT_ep[epnum].is_iso_incomplete == 1U)
+        {
+          /* Abort current transaction and disable the EP */
+          (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)epnum);
+        }
+      }
+    }
+
     /* Handle Incomplete ISO IN Interrupt */
     if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR))
     {
-      /* Keep application checking the corresponding Iso IN endpoint
-      causing the incomplete Interrupt */
-      epnum = 0U;
+      for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++)
+      {
+        RegVal = USBx_INEP(epnum)->DIEPCTL;
 
-#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
-      hpcd->ISOINIncompleteCallback(hpcd, (uint8_t)epnum);
-#else
-      HAL_PCD_ISOINIncompleteCallback(hpcd, (uint8_t)epnum);
-#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+        if ((hpcd->IN_ep[epnum].type == EP_TYPE_ISOC) &&
+            ((RegVal & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA))
+        {
+          hpcd->IN_ep[epnum].is_iso_incomplete = 1U;
+
+          /* Abort current transaction and disable the EP */
+          (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)(epnum | 0x80U));
+        }
+      }
 
       __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR);
     }
@@ -1391,15 +1452,25 @@
     /* Handle Incomplete ISO OUT Interrupt */
     if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT))
     {
-      /* Keep application checking the corresponding Iso OUT endpoint
-      causing the incomplete Interrupt */
-      epnum = 0U;
+      for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++)
+      {
+        RegVal = USBx_OUTEP(epnum)->DOEPCTL;
 
-#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
-      hpcd->ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum);
-#else
-      HAL_PCD_ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum);
-#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+        if ((hpcd->OUT_ep[epnum].type == EP_TYPE_ISOC) &&
+            ((RegVal & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) &&
+            ((RegVal & (0x1U << 16)) == (hpcd->FrameNumber & 0x1U)))
+        {
+          hpcd->OUT_ep[epnum].is_iso_incomplete = 1U;
+
+          USBx->GINTMSK |= USB_OTG_GINTMSK_GONAKEFFM;
+
+          if ((USBx->GINTSTS & USB_OTG_GINTSTS_BOUTNAKEFF) == 0U)
+          {
+            USBx_DEVICE->DCTL |= USB_OTG_DCTL_SGONAK;
+            break;
+          }
+        }
+      }
 
       __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT);
     }
@@ -1419,9 +1490,9 @@
     /* Handle Disconnection event Interrupt */
     if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_OTGINT))
     {
-      temp = hpcd->Instance->GOTGINT;
+      RegVal = hpcd->Instance->GOTGINT;
 
-      if ((temp & USB_OTG_GOTGINT_SEDET) == USB_OTG_GOTGINT_SEDET)
+      if ((RegVal & USB_OTG_GOTGINT_SEDET) == USB_OTG_GOTGINT_SEDET)
       {
 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
         hpcd->DisconnectCallback(hpcd);
@@ -1429,7 +1500,7 @@
         HAL_PCD_DisconnectCallback(hpcd);
 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
       }
-      hpcd->Instance->GOTGINT |= temp;
+      hpcd->Instance->GOTGINT |= RegVal;
     }
   }
 }
@@ -1955,6 +2026,32 @@
 }
 
 /**
+   * @brief  Abort an USB EP transaction.
+   * @param  hpcd PCD handle
+   * @param  ep_addr endpoint address
+   * @retval HAL status
+   */
+HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
+{
+  HAL_StatusTypeDef ret;
+  PCD_EPTypeDef *ep;
+
+  if ((0x80U & ep_addr) == 0x80U)
+  {
+    ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK];
+  }
+  else
+  {
+    ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK];
+  }
+
+  /* Stop Xfer */
+  ret = USB_EPStopXfer(hpcd->Instance, ep);
+
+  return ret;
+}
+
+/**
   * @brief  Flush an endpoint
   * @param  hpcd PCD handle
   * @param  ep_addr endpoint address
@@ -2028,6 +2125,33 @@
 }
 
 /**
+  * @brief  Set the USB Device high speed test mode.
+  * @param  hpcd PCD handle
+  * @param  testmode USB Device high speed test mode
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_PCD_SetTestMode(PCD_HandleTypeDef *hpcd, uint8_t testmode)
+{
+  USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
+  uint32_t USBx_BASE = (uint32_t)USBx;
+
+  switch (testmode)
+  {
+    case TEST_J:
+    case TEST_K:
+    case TEST_SE0_NAK:
+    case TEST_PACKET:
+    case TEST_FORCE_EN:
+      USBx_DEVICE->DCTL |= (uint32_t)testmode << 4;
+      break;
+
+    default:
+      break;
+  }
+
+  return HAL_OK;
+}
+/**
   * @}
   */
 
@@ -2108,6 +2232,7 @@
   */
 static HAL_StatusTypeDef PCD_EP_OutXfrComplete_int(PCD_HandleTypeDef *hpcd, uint32_t epnum)
 {
+  USB_OTG_EPTypeDef *ep;
   USB_OTG_GlobalTypeDef *USBx = hpcd->Instance;
   uint32_t USBx_BASE = (uint32_t)USBx;
   uint32_t gSNPSiD = *(__IO uint32_t *)(&USBx->CID + 0x1U);
@@ -2138,18 +2263,24 @@
       }
       else
       {
-        /* out data packet received over EP0 */
-        hpcd->OUT_ep[epnum].xfer_count =
-          hpcd->OUT_ep[epnum].maxpacket -
-          (USBx_OUTEP(epnum)->DOEPTSIZ & USB_OTG_DOEPTSIZ_XFRSIZ);
+        ep = &hpcd->OUT_ep[epnum];
 
-        hpcd->OUT_ep[epnum].xfer_buff += hpcd->OUT_ep[epnum].maxpacket;
+        /* out data packet received over EP */
+        ep->xfer_count = ep->xfer_size - (USBx_OUTEP(epnum)->DOEPTSIZ & USB_OTG_DOEPTSIZ_XFRSIZ);
 
-        if ((epnum == 0U) && (hpcd->OUT_ep[epnum].xfer_len == 0U))
+        if (epnum == 0U)
         {
-          /* this is ZLP, so prepare EP0 for next setup */
-          (void)USB_EP0_OutStart(hpcd->Instance, 1U, (uint8_t *)hpcd->Setup);
+          if (ep->xfer_len == 0U)
+          {
+            /* this is ZLP, so prepare EP0 for next setup */
+            (void)USB_EP0_OutStart(hpcd->Instance, 1U, (uint8_t *)hpcd->Setup);
+          }
+          else
+          {
+            ep->xfer_buff += ep->xfer_count;
+          }
         }
+
 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
         hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum);
 #else
@@ -2254,5 +2385,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_pcd_ex.c b/Src/stm32f4xx_hal_pcd_ex.c
index 7c7697c..292faf1 100644
--- a/Src/stm32f4xx_hal_pcd_ex.c
+++ b/Src/stm32f4xx_hal_pcd_ex.c
@@ -10,13 +10,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -164,26 +163,10 @@
   /* Enable DCD : Data Contact Detect */
   USBx->GCCFG |= USB_OTG_GCCFG_DCDEN;
 
-  /* Wait Detect flag or a timeout is happen */
-  while ((USBx->GCCFG & USB_OTG_GCCFG_DCDET) == 0U)
-  {
-    /* Check for the Timeout */
-    if ((HAL_GetTick() - tickstart) > 1000U)
-    {
-#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
-      hpcd->BCDCallback(hpcd, PCD_BCD_ERROR);
-#else
-      HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR);
-#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+  /* Wait for Min DCD Timeout */
+  HAL_Delay(300U);
 
-      return;
-    }
-  }
-
-  /* Right response got */
-  HAL_Delay(200U);
-
-  /* Check Detect flag*/
+  /* Check Detect flag */
   if ((USBx->GCCFG & USB_OTG_GCCFG_DCDET) == USB_OTG_GCCFG_DCDET)
   {
 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
@@ -193,7 +176,7 @@
 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
   }
 
-  /*Primary detection: checks if connected to Standard Downstream Port
+  /* Primary detection: checks if connected to Standard Downstream Port
   (without charging capability) */
   USBx->GCCFG &= ~ USB_OTG_GCCFG_DCDEN;
   HAL_Delay(50U);
@@ -229,7 +212,7 @@
     }
     else
     {
-      /* case Charging Downstream Port  */
+      /* case Charging Downstream Port */
 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
       hpcd->BCDCallback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
 #else
@@ -241,11 +224,23 @@
   /* Battery Charging capability discovery finished */
   (void)HAL_PCDEx_DeActivateBCD(hpcd);
 
+  /* Check for the Timeout, else start USB Device */
+  if ((HAL_GetTick() - tickstart) > 1000U)
+  {
 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
-  hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
+    hpcd->BCDCallback(hpcd, PCD_BCD_ERROR);
 #else
-  HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
+    HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR);
 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+  }
+  else
+  {
+#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
+    hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
+#else
+    HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
+#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
+  }
 }
 
 /**
@@ -344,5 +339,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_pwr.c b/Src/stm32f4xx_hal_pwr.c
index f895a26..b4bb483 100644
--- a/Src/stm32f4xx_hal_pwr.c
+++ b/Src/stm32f4xx_hal_pwr.c
@@ -11,14 +11,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -571,5 +569,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_pwr_ex.c b/Src/stm32f4xx_hal_pwr_ex.c
index 0d26083..77f9c35 100644
--- a/Src/stm32f4xx_hal_pwr_ex.c
+++ b/Src/stm32f4xx_hal_pwr_ex.c
@@ -10,14 +10,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */ 
 
@@ -600,5 +598,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_qspi.c b/Src/stm32f4xx_hal_qspi.c
index 5763d07..a3326f2 100644
--- a/Src/stm32f4xx_hal_qspi.c
+++ b/Src/stm32f4xx_hal_qspi.c
@@ -14,6 +14,17 @@
   *           + Errors management and abort functionality
   *
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                         ##### How to use this driver #####
@@ -111,7 +122,7 @@
     =================================================
     [..]
       (#) HAL_QSPI_GetError() function gives the error raised during the last operation.
-      (#) HAL_QSPI_Abort() and HAL_QSPI_AbortIT() functions aborts any on-going operation and
+      (#) HAL_QSPI_Abort() and HAL_QSPI_Abort_IT() functions aborts any on-going operation and
           flushes the fifo :
          (++) In polling mode, the output of the function is done when the transfer
               complete bit is set and the busy bit cleared.
@@ -194,17 +205,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -286,7 +286,7 @@
 /**
   * @brief Initialize the QSPI mode according to the specified parameters
   *        in the QSPI_InitTypeDef and initialize the associated handle.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_QSPI_Init(QSPI_HandleTypeDef *hqspi)
@@ -387,7 +387,7 @@
 
 /**
   * @brief De-Initialize the QSPI peripheral.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_QSPI_DeInit(QSPI_HandleTypeDef *hqspi)
@@ -428,7 +428,7 @@
 
 /**
   * @brief Initialize the QSPI MSP.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_MspInit(QSPI_HandleTypeDef *hqspi)
@@ -443,7 +443,7 @@
 
 /**
   * @brief DeInitialize the QSPI MSP.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi)
@@ -482,7 +482,7 @@
 
 /**
   * @brief Handle QSPI interrupt request.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @retval None
   */
 void HAL_QSPI_IRQHandler(QSPI_HandleTypeDef *hqspi)
@@ -772,9 +772,9 @@
 
 /**
   * @brief Set the command configuration.
-  * @param hqspi : QSPI handle
+  * @param hqspi QSPI handle
   * @param cmd : structure that contains the command configuration information
-  * @param Timeout : Timeout duration
+  * @param Timeout Timeout duration
   * @note   This function is used only in Indirect Read or Write Modes
   * @retval HAL status
   */
@@ -862,15 +862,14 @@
 
 /**
   * @brief Set the command configuration in interrupt mode.
-  * @param hqspi : QSPI handle
-  * @param cmd : structure that contains the command configuration information
+  * @param hqspi QSPI handle
+  * @param cmd structure that contains the command configuration information
   * @note   This function is used only in Indirect Read or Write Modes
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_QSPI_Command_IT(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd)
 {
   HAL_StatusTypeDef status;
-  uint32_t tickstart = HAL_GetTick();
 
   /* Check the parameters */
   assert_param(IS_QSPI_INSTRUCTION_MODE(cmd->InstructionMode));
@@ -961,11 +960,10 @@
 
 /**
   * @brief Transmit an amount of data in blocking mode.
-  * @param hqspi : QSPI handle
-  * @param pData : pointer to data buffer
-  * @param Timeout : Timeout duration
+  * @param hqspi QSPI handle
+  * @param pData pointer to data buffer
+  * @param Timeout Timeout duration
   * @note   This function is used only in Indirect Write Mode
-  
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_QSPI_Transmit(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout)
@@ -1047,9 +1045,9 @@
 
 /**
   * @brief Receive an amount of data in blocking mode.
-  * @param hqspi : QSPI handle
-  * @param pData : pointer to data buffer
-  * @param Timeout : Timeout duration
+  * @param hqspi QSPI handle
+  * @param pData pointer to data buffer
+  * @param Timeout Timeout duration
   * @note   This function is used only in Indirect Read Mode
   * @retval HAL status
   */
@@ -1135,8 +1133,8 @@
 
 /**
   * @brief  Send an amount of data in non-blocking mode with interrupt.
-  * @param  hqspi : QSPI handle
-  * @param  pData : pointer to data buffer
+  * @param  hqspi QSPI handle
+  * @param  pData pointer to data buffer
   * @note   This function is used only in Indirect Write Mode
   * @retval HAL status
   */
@@ -1195,8 +1193,8 @@
 
 /**
   * @brief  Receive an amount of data in non-blocking mode with interrupt.
-  * @param  hqspi : QSPI handle
-  * @param  pData : pointer to data buffer
+  * @param  hqspi QSPI handle
+  * @param  pData pointer to data buffer
   * @note   This function is used only in Indirect Read Mode
   * @retval HAL status
   */
@@ -1259,8 +1257,8 @@
 
 /**
   * @brief  Send an amount of data in non-blocking mode with DMA.
-  * @param  hqspi : QSPI handle
-  * @param  pData : pointer to data buffer
+  * @param  hqspi QSPI handle
+  * @param  pData pointer to data buffer
   * @note   This function is used only in Indirect Write Mode
   * @note   If DMA peripheral access is configured as halfword, the number
   *         of data and the fifo threshold should be aligned on halfword
@@ -1426,8 +1424,8 @@
 
 /**
   * @brief  Receive an amount of data in non-blocking mode with DMA.
-  * @param  hqspi : QSPI handle
-  * @param  pData : pointer to data buffer.
+  * @param  hqspi QSPI handle
+  * @param  pData pointer to data buffer.
   * @note   This function is used only in Indirect Read Mode
   * @note   If DMA peripheral access is configured as halfword, the number
   *         of data and the fifo threshold should be aligned on halfword
@@ -1634,10 +1632,10 @@
 
 /**
   * @brief  Configure the QSPI Automatic Polling Mode in blocking mode.
-  * @param  hqspi : QSPI handle
-  * @param  cmd : structure that contains the command configuration information.
-  * @param  cfg : structure that contains the polling configuration information.
-  * @param  Timeout : Timeout duration
+  * @param  hqspi QSPI handle
+  * @param  cmd structure that contains the command configuration information.
+  * @param  cfg structure that contains the polling configuration information.
+  * @param  Timeout Timeout duration
   * @note   This function is used only in Automatic Polling Mode
   * @retval HAL status
   */
@@ -1735,9 +1733,9 @@
 
 /**
   * @brief  Configure the QSPI Automatic Polling Mode in non-blocking mode.
-  * @param  hqspi : QSPI handle
-  * @param  cmd : structure that contains the command configuration information.
-  * @param  cfg : structure that contains the polling configuration information.
+  * @param  hqspi QSPI handle
+  * @param  cmd structure that contains the command configuration information.
+  * @param  cfg structure that contains the polling configuration information.
   * @note   This function is used only in Automatic Polling Mode
   * @retval HAL status
   */
@@ -1838,9 +1836,9 @@
 
 /**
   * @brief  Configure the Memory Mapped mode.
-  * @param  hqspi : QSPI handle
-  * @param  cmd : structure that contains the command configuration information.
-  * @param  cfg : structure that contains the memory mapped configuration information.
+  * @param  hqspi QSPI handle
+  * @param  cmd structure that contains the command configuration information.
+  * @param  cfg structure that contains the memory mapped configuration information.
   * @note   This function is used only in Memory mapped Mode
   * @retval HAL status
   */
@@ -1927,7 +1925,7 @@
 
 /**
   * @brief  Transfer Error callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_ErrorCallback(QSPI_HandleTypeDef *hqspi)
@@ -1942,7 +1940,7 @@
 
 /**
   * @brief  Abort completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_AbortCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -1957,7 +1955,7 @@
 
 /**
   * @brief  Command completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_CmdCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -1972,7 +1970,7 @@
 
 /**
   * @brief  Rx Transfer completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_RxCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -1987,7 +1985,7 @@
 
 /**
   * @brief  Tx Transfer completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_TxCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -2002,7 +2000,7 @@
 
 /**
   * @brief  Rx Half Transfer completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_RxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -2017,7 +2015,7 @@
 
 /**
   * @brief  Tx Half Transfer completed callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_TxHalfCpltCallback(QSPI_HandleTypeDef *hqspi)
@@ -2032,7 +2030,7 @@
 
 /**
   * @brief  FIFO Threshold callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_FifoThresholdCallback(QSPI_HandleTypeDef *hqspi)
@@ -2047,7 +2045,7 @@
 
 /**
   * @brief  Status Match callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_StatusMatchCallback(QSPI_HandleTypeDef *hqspi)
@@ -2062,7 +2060,7 @@
 
 /**
   * @brief  Timeout callback.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval None
   */
 __weak void HAL_QSPI_TimeOutCallback(QSPI_HandleTypeDef *hqspi)
@@ -2078,8 +2076,8 @@
 /**
   * @brief  Register a User QSPI Callback
   *         To be used instead of the weak (surcharged) predefined callback
-  * @param hqspi : QSPI handle
-  * @param CallbackId : ID of the callback to be registered
+  * @param hqspi QSPI handle
+  * @param CallbackId ID of the callback to be registered
   *        This parameter can be one of the following values:
   *          @arg @ref HAL_QSPI_ERROR_CB_ID          QSPI Error Callback ID
   *          @arg @ref HAL_QSPI_ABORT_CB_ID          QSPI Abort Callback ID
@@ -2093,7 +2091,7 @@
   *          @arg @ref HAL_QSPI_TIMEOUT_CB_ID        QSPI Timeout Callback ID
   *          @arg @ref HAL_QSPI_MSP_INIT_CB_ID       QSPI MspInit callback ID
   *          @arg @ref HAL_QSPI_MSP_DEINIT_CB_ID     QSPI MspDeInit callback ID
-  * @param pCallback : pointer to the Callback function
+  * @param pCallback pointer to the Callback function
   * @retval status
   */
 HAL_StatusTypeDef HAL_QSPI_RegisterCallback (QSPI_HandleTypeDef *hqspi, HAL_QSPI_CallbackIDTypeDef CallbackId, pQSPI_CallbackTypeDef pCallback)
@@ -2192,8 +2190,8 @@
 /**
   * @brief  Unregister a User QSPI Callback
   *         QSPI Callback is redirected to the weak (surcharged) predefined callback
-  * @param hqspi : QSPI handle
-  * @param CallbackId : ID of the callback to be unregistered
+  * @param hqspi QSPI handle
+  * @param CallbackId ID of the callback to be unregistered
   *        This parameter can be one of the following values:
   *          @arg @ref HAL_QSPI_ERROR_CB_ID          QSPI Error Callback ID
   *          @arg @ref HAL_QSPI_ABORT_CB_ID          QSPI Abort Callback ID
@@ -2320,7 +2318,7 @@
 
 /**
   * @brief  Return the QSPI handle state.
-  * @param  hqspi : QSPI handle
+  * @param  hqspi QSPI handle
   * @retval HAL state
   */
 HAL_QSPI_StateTypeDef HAL_QSPI_GetState(QSPI_HandleTypeDef *hqspi)
@@ -2331,7 +2329,7 @@
 
 /**
 * @brief  Return the QSPI error code.
-* @param  hqspi : QSPI handle
+* @param  hqspi QSPI handle
 * @retval QSPI Error Code
 */
 uint32_t HAL_QSPI_GetError(QSPI_HandleTypeDef *hqspi)
@@ -2341,7 +2339,7 @@
 
 /**
 * @brief  Abort the current transmission.
-* @param  hqspi : QSPI handle
+* @param  hqspi QSPI handle
 * @retval HAL status
 */
 HAL_StatusTypeDef HAL_QSPI_Abort(QSPI_HandleTypeDef *hqspi)
@@ -2368,25 +2366,33 @@
       }
     }
 
-    /* Configure QSPI: CR register with Abort request */
-    SET_BIT(hqspi->Instance->CR, QUADSPI_CR_ABORT);
-
-    /* Wait until TC flag is set to go back in idle state */
-    status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_TC, SET, tickstart, hqspi->Timeout);
-
-    if (status == HAL_OK)
+    if (__HAL_QSPI_GET_FLAG(hqspi, QSPI_FLAG_BUSY) != RESET)
     {
-      __HAL_QSPI_CLEAR_FLAG(hqspi, QSPI_FLAG_TC);
+      /* Configure QSPI: CR register with Abort request */
+      SET_BIT(hqspi->Instance->CR, QUADSPI_CR_ABORT);
+      
+      /* Wait until TC flag is set to go back in idle state */
+      status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_TC, SET, tickstart, hqspi->Timeout);
+      
+      if (status == HAL_OK)
+      {
+        __HAL_QSPI_CLEAR_FLAG(hqspi, QSPI_FLAG_TC);
+        
+        /* Wait until BUSY flag is reset */
+        status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_BUSY, RESET, tickstart, hqspi->Timeout);
+      }
 
-      /* Wait until BUSY flag is reset */
-      status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_BUSY, RESET, tickstart, hqspi->Timeout);
+      if (status == HAL_OK)
+      {
+        /* Reset functional mode configuration to indirect write mode by default */
+        CLEAR_BIT(hqspi->Instance->CCR, QUADSPI_CCR_FMODE);
+        
+        /* Update state */
+        hqspi->State = HAL_QSPI_STATE_READY;
+      }
     }
-
-    if (status == HAL_OK)
+    else
     {
-      /* Reset functional mode configuration to indirect write mode by default */
-      CLEAR_BIT(hqspi->Instance->CCR, QUADSPI_CCR_FMODE);
-
       /* Update state */
       hqspi->State = HAL_QSPI_STATE_READY;
     }
@@ -2397,7 +2403,7 @@
 
 /**
 * @brief  Abort the current transmission (non-blocking function)
-* @param  hqspi : QSPI handle
+* @param  hqspi QSPI handle
 * @retval HAL status
 */
 HAL_StatusTypeDef HAL_QSPI_Abort_IT(QSPI_HandleTypeDef *hqspi)
@@ -2438,22 +2444,30 @@
     }
     else
     {
-      /* Clear interrupt */
-      __HAL_QSPI_CLEAR_FLAG(hqspi, QSPI_FLAG_TC);
-
-      /* Enable the QSPI Transfer Complete Interrupt */
-      __HAL_QSPI_ENABLE_IT(hqspi, QSPI_IT_TC);
-
-      /* Configure QSPI: CR register with Abort request */
-      SET_BIT(hqspi->Instance->CR, QUADSPI_CR_ABORT);
+      if (__HAL_QSPI_GET_FLAG(hqspi, QSPI_FLAG_BUSY) != RESET)
+      {
+        /* Clear interrupt */
+        __HAL_QSPI_CLEAR_FLAG(hqspi, QSPI_FLAG_TC);
+        
+        /* Enable the QSPI Transfer Complete Interrupt */
+        __HAL_QSPI_ENABLE_IT(hqspi, QSPI_IT_TC);
+        
+        /* Configure QSPI: CR register with Abort request */
+        SET_BIT(hqspi->Instance->CR, QUADSPI_CR_ABORT);
+      }    
+      else
+      {
+        /* Change state of QSPI */
+        hqspi->State = HAL_QSPI_STATE_READY;
+      }
     }
   }
   return status;
 }
 
 /** @brief Set QSPI timeout.
-  * @param  hqspi : QSPI handle.
-  * @param  Timeout : Timeout for the QSPI memory access.
+  * @param  hqspi QSPI handle.
+  * @param  Timeout Timeout for the QSPI memory access.
   * @retval None
   */
 void HAL_QSPI_SetTimeout(QSPI_HandleTypeDef *hqspi, uint32_t Timeout)
@@ -2462,8 +2476,8 @@
 }
 
 /** @brief Set QSPI Fifo threshold.
-  * @param  hqspi : QSPI handle.
-  * @param  Threshold : Threshold of the Fifo (value between 1 and 16).
+  * @param  hqspi QSPI handle.
+  * @param  Threshold Threshold of the Fifo (value between 1 and 16).
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_QSPI_SetFifoThreshold(QSPI_HandleTypeDef *hqspi, uint32_t Threshold)
@@ -2495,7 +2509,7 @@
 }
 
 /** @brief Get QSPI Fifo threshold.
-  * @param  hqspi : QSPI handle.
+  * @param  hqspi QSPI handle.
   * @retval Fifo threshold (value between 1 and 16)
   */
 uint32_t HAL_QSPI_GetFifoThreshold(QSPI_HandleTypeDef *hqspi)
@@ -2504,8 +2518,8 @@
 }
 
 /** @brief  Set FlashID.
-  * @param  hqspi : QSPI handle.
-  * @param  FlashID : Index of the flash memory to be accessed.
+  * @param  hqspi QSPI handle.
+  * @param  FlashID Index of the flash memory to be accessed.
   *                   This parameter can be a value of @ref QSPI_Flash_Select.
   * @note   The FlashID is ignored when dual flash mode is enabled.
   * @retval HAL status
@@ -2554,7 +2568,7 @@
 
 /**
   * @brief  DMA QSPI receive process complete callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMARxCplt(DMA_HandleTypeDef *hdma)
@@ -2568,7 +2582,7 @@
 
 /**
   * @brief  DMA QSPI transmit process complete callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMATxCplt(DMA_HandleTypeDef *hdma)
@@ -2582,7 +2596,7 @@
 
 /**
   * @brief  DMA QSPI receive process half complete callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
@@ -2598,7 +2612,7 @@
 
 /**
   * @brief  DMA QSPI transmit process half complete callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
@@ -2614,7 +2628,7 @@
 
 /**
   * @brief  DMA QSPI communication error callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMAError(DMA_HandleTypeDef *hdma)
@@ -2639,7 +2653,7 @@
 
 /**
   * @brief  DMA QSPI abort complete callback.
-  * @param  hdma : DMA handle
+  * @param  hdma DMA handle
   * @retval None
   */
 static void QSPI_DMAAbortCplt(DMA_HandleTypeDef *hdma)
@@ -2678,11 +2692,11 @@
 
 /**
   * @brief  Wait for a flag state until timeout.
-  * @param  hqspi : QSPI handle
-  * @param  Flag : Flag checked
-  * @param  State : Value of the flag expected
-  * @param  Tickstart : Tick start value
-  * @param  Timeout : Duration of the timeout
+  * @param  hqspi QSPI handle
+  * @param  Flag Flag checked
+  * @param  State Value of the flag expected
+  * @param  Tickstart Tick start value
+  * @param  Timeout Duration of the timeout
   * @retval HAL status
   */
 static HAL_StatusTypeDef QSPI_WaitFlagStateUntilTimeout(QSPI_HandleTypeDef *hqspi, uint32_t Flag,
@@ -2733,9 +2747,9 @@
 
 /**
   * @brief  Configure the communication registers.
-  * @param  hqspi : QSPI handle
-  * @param  cmd : structure that contains the command configuration information
-  * @param  FunctionalMode : functional mode to configured
+  * @param  hqspi QSPI handle
+  * @param  cmd structure that contains the command configuration information
+  * @param  FunctionalMode functional mode to configured
   *           This parameter can be one of the following values:
   *            @arg QSPI_FUNCTIONAL_MODE_INDIRECT_WRITE: Indirect write mode
   *            @arg QSPI_FUNCTIONAL_MODE_INDIRECT_READ: Indirect read mode
@@ -2899,5 +2913,3 @@
   */
 
 #endif /* defined(QUADSPI) */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_rcc.c b/Src/stm32f4xx_hal_rcc.c
index 552ef18..f187348 100644
--- a/Src/stm32f4xx_hal_rcc.c
+++ b/Src/stm32f4xx_hal_rcc.c
@@ -54,14 +54,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -1122,4 +1120,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_rcc_ex.c b/Src/stm32f4xx_hal_rcc_ex.c
index e42b850..5076628 100644
--- a/Src/stm32f4xx_hal_rcc_ex.c
+++ b/Src/stm32f4xx_hal_rcc_ex.c
@@ -10,14 +10,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 
@@ -3784,4 +3782,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_rng.c b/Src/stm32f4xx_hal_rng.c
index a9b2338..bd50438 100644
--- a/Src/stm32f4xx_hal_rng.c
+++ b/Src/stm32f4xx_hal_rng.c
@@ -9,6 +9,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -79,17 +90,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -369,7 +369,7 @@
 
 /**
   * @brief  Unregister an RNG Callback
-  *         RNG callabck is redirected to the weak predefined callback
+  *         RNG callback is redirected to the weak predefined callback
   * @param  hrng RNG handle
   * @param  CallbackID ID of the callback to be unregistered
   *         This parameter can be one of the following values:
@@ -865,4 +865,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_rtc.c b/Src/stm32f4xx_hal_rtc.c
index 00f9e4b..2d2be66 100644
--- a/Src/stm32f4xx_hal_rtc.c
+++ b/Src/stm32f4xx_hal_rtc.c
@@ -4,21 +4,32 @@
   * @author  MCD Application Team
   * @brief   RTC HAL module driver.
   *          This file provides firmware functions to manage the following
-  *          functionalities of the Real Time Clock (RTC) peripheral:
+  *          functionalities of the Real-Time Clock (RTC) peripheral:
   *           + Initialization and de-initialization functions
-  *           + RTC Time and Date functions
-  *           + RTC Alarm functions
+  *           + RTC Calendar (Time and Date) configuration functions
+  *           + RTC Alarms (Alarm A and Alarm B) configuration functions
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
-              ##### Backup Domain Operating Condition #####
+               ##### RTC and Backup Domain Operating Condition #####
   ==============================================================================
   [..] The real-time clock (RTC), the RTC backup registers, and the backup
        SRAM (BKP SRAM) can be powered from the VBAT voltage when the main
        VDD supply is powered off.
-       To retain the content of the RTC backup registers, backup SRAM, and supply
+       To retain the content of the RTC backup registers, BKP SRAM, and supply
        the RTC when VDD is turned off, VBAT pin can be connected to an optional
        standby voltage supplied by a battery or by another source.
 
@@ -26,7 +37,7 @@
        off, the VBAT pin powers the following blocks:
     (#) The RTC
     (#) The LSE oscillator
-    (#) The backup SRAM when the low power backup regulator is enabled
+    (#) The BKP SRAM when the low power backup regulator is enabled
     (#) PC13 to PC15 I/Os, plus PI8 I/O (when available)
 
   [..] When the backup domain is supplied by VDD (analog switch connected to VDD),
@@ -44,9 +55,10 @@
                    ##### Backup Domain Reset #####
   ==================================================================
   [..] The backup domain reset sets all RTC registers and the RCC_BDCR register
-       to their reset values. The BKPSRAM is not affected by this reset. The only
-       way to reset the BKPSRAM is through the Flash interface by requesting
-       a protection level change from 1 to 0.
+       to their reset values.
+       The BKP SRAM is not affected by this reset. The only way to reset the BKP
+       SRAM is through the Flash interface by requesting a protection level
+       change from 1 to 0.
   [..] A backup domain reset is generated when one of the following events occurs:
     (#) Software reset, triggered by setting the BDRST bit in the
         RCC Backup domain control register (RCC_BDCR).
@@ -54,19 +66,18 @@
 
                    ##### Backup Domain Access #####
   ==================================================================
-  [..] After reset, the backup domain (RTC registers, RTC backup data
-       registers and backup SRAM) is protected against possible unwanted write
-       accesses.
+  [..] After reset, the backup domain (RTC registers, RTC backup data registers
+       and BKP SRAM) is protected against possible unwanted write accesses.
   [..] To enable access to the RTC Domain and RTC registers, proceed as follows:
     (+) Enable the Power Controller (PWR) APB1 interface clock using the
-        __HAL_RCC_PWR_CLK_ENABLE() function.
+        __HAL_RCC_PWR_CLK_ENABLE() macro.
     (+) Enable access to RTC domain using the HAL_PWR_EnableBkUpAccess() function.
-    (+) Select the RTC clock source using the __HAL_RCC_RTC_CONFIG() function.
-    (+) Enable RTC Clock using the __HAL_RCC_RTC_ENABLE() function.
+    (+) Select the RTC clock source using the __HAL_RCC_RTC_CONFIG() macro.
+    (+) Enable RTC Clock using the __HAL_RCC_RTC_ENABLE() macro.
 
-
-                  ##### How to use this driver #####
-  ==================================================================
+  ==============================================================================
+                        ##### How to use this driver #####
+  ==============================================================================
   [..]
     (+) Enable the RTC domain access (see description in the section above).
     (+) Configure the RTC Prescaler (Asynchronous and Synchronous) and RTC hour
@@ -77,13 +88,21 @@
   [..]
     (+) To configure the RTC Calendar (Time and Date) use the HAL_RTC_SetTime()
         and HAL_RTC_SetDate() functions.
-    (+) To read the RTC Calendar, use the HAL_RTC_GetTime() and HAL_RTC_GetDate() functions.
+    (+) To read the RTC Calendar, use the HAL_RTC_GetTime() and HAL_RTC_GetDate()
+        functions.
+    (+) To manage the RTC summer or winter time change, use the following
+        functions:
+        (++) HAL_RTC_DST_Add1Hour() or HAL_RTC_DST_Sub1Hour to add or subtract
+             1 hour from the calendar time.
+        (++) HAL_RTC_DST_SetStoreOperation() or HAL_RTC_DST_ClearStoreOperation
+             to memorize whether the time change has been performed or not.
 
   *** Alarm configuration ***
   ===========================
   [..]
     (+) To configure the RTC Alarm use the HAL_RTC_SetAlarm() function.
-        You can also configure the RTC Alarm with interrupt mode using the HAL_RTC_SetAlarm_IT() function.
+        You can also configure the RTC Alarm with interrupt mode using the
+        HAL_RTC_SetAlarm_IT() function.
     (+) To read the RTC Alarm, use the HAL_RTC_GetAlarm() function.
 
                   ##### RTC and low power modes #####
@@ -91,30 +110,28 @@
   [..] The MCU can be woken up from a low power mode by an RTC alternate
        function.
   [..] The RTC alternate functions are the RTC alarms (Alarm A and Alarm B),
-       RTC wake-up, RTC tamper event detection and RTC time stamp event detection.
+       RTC wakeup, RTC tamper event detection and RTC timestamp event detection.
        These RTC alternate functions can wake up the system from the Stop and
        Standby low power modes.
   [..] The system can also wake up from low power modes without depending
-       on an external interrupt (Auto-wake-up mode), by using the RTC alarm
-       or the RTC wake-up events.
+       on an external interrupt (Auto-wakeup mode), by using the RTC alarm
+       or the RTC wakeup events.
   [..] The RTC provides a programmable time base for waking up from the
        Stop or Standby mode at regular intervals.
-       Wake-up from STOP and STANDBY modes is possible only when the RTC clock source
-       is LSE or LSI.
+       Wakeup from STOP and STANDBY modes is possible only when the RTC clock
+       source is LSE or LSI.
 
   *** Callback registration ***
   =============================================
-
   [..]
   The compilation define  USE_HAL_RTC_REGISTER_CALLBACKS when set to 1
   allows the user to configure dynamically the driver callbacks.
   Use Function HAL_RTC_RegisterCallback() to register an interrupt callback.
-
   [..]
   Function HAL_RTC_RegisterCallback() allows to register following callbacks:
     (+) AlarmAEventCallback          : RTC Alarm A Event callback.
     (+) AlarmBEventCallback          : RTC Alarm B Event callback.
-    (+) TimeStampEventCallback       : RTC TimeStamp Event callback.
+    (+) TimeStampEventCallback       : RTC Timestamp Event callback.
     (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
     (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
     (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
@@ -123,7 +140,6 @@
   [..]
   This function takes as parameters the HAL peripheral handle, the Callback ID
   and a pointer to the user callback function.
-
   [..]
   Use function HAL_RTC_UnRegisterCallback() to reset a callback to the default
   weak function.
@@ -132,49 +148,36 @@
   This function allows to reset following callbacks:
     (+) AlarmAEventCallback          : RTC Alarm A Event callback.
     (+) AlarmBEventCallback          : RTC Alarm B Event callback.
-    (+) TimeStampEventCallback       : RTC TimeStamp Event callback.
+    (+) TimeStampEventCallback       : RTC Timestamp Event callback.
     (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
     (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
     (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
     (+) MspInitCallback              : RTC MspInit callback.
     (+) MspDeInitCallback            : RTC MspDeInit callback.
-
   [..]
   By default, after the HAL_RTC_Init() and when the state is HAL_RTC_STATE_RESET,
-  all callbacks are set to the corresponding weak functions :
+  all callbacks are set to the corresponding weak functions:
   examples AlarmAEventCallback(), WakeUpTimerEventCallback().
-  Exception done for MspInit and MspDeInit callbacks that are reset to the legacy weak function
-  in the HAL_RTC_Init()/HAL_RTC_DeInit() only when these callbacks are null
-  (not registered beforehand).
-  If not, MspInit or MspDeInit are not null, HAL_RTC_Init()/HAL_RTC_DeInit()
-  keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
-
+  Exception done for MspInit() and MspDeInit() callbacks that are reset to the
+  legacy weak function in the HAL_RTC_Init()/HAL_RTC_DeInit() only
+  when these callbacks are null (not registered beforehand).
+  If not, MspInit() or MspDeInit() are not null, HAL_RTC_Init()/HAL_RTC_DeInit()
+  keep and use the user MspInit()/MspDeInit() callbacks (registered beforehand).
   [..]
   Callbacks can be registered/unregistered in HAL_RTC_STATE_READY state only.
-  Exception done MspInit/MspDeInit that can be registered/unregistered
-  in HAL_RTC_STATE_READY or HAL_RTC_STATE_RESET state,
-  thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
-  In that case first register the MspInit/MspDeInit user callbacks
+  Exception done MspInit()/MspDeInit() that can be registered/unregistered
+  in HAL_RTC_STATE_READY or HAL_RTC_STATE_RESET state.
+  Thus registered (user) MspInit()/MspDeInit() callbacks can be used during the
+  Init/DeInit.
+  In that case first register the MspInit()/MspDeInit() user callbacks
   using HAL_RTC_RegisterCallback() before calling HAL_RTC_DeInit()
-  or HAL_RTC_Init() function.
-
+  or HAL_RTC_Init() functions.
   [..]
   When The compilation define USE_HAL_RTC_REGISTER_CALLBACKS is set to 0 or
-  not defined, the callback registration feature is not available and all callbacks
-  are set to the corresponding weak functions.
-   @endverbatim
+  not defined, the callback registration feature is not available and all
+  callbacks are set to the corresponding weak functions.
 
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  @endverbatim
   ******************************************************************************
   */
 
@@ -186,7 +189,7 @@
   */
 
 /** @defgroup RTC RTC
-  * @brief RTC HAL module driver
+  * @brief    RTC HAL module driver
   * @{
   */
 
@@ -204,8 +207,8 @@
   */
 
 /** @defgroup RTC_Exported_Functions_Group1 Initialization and de-initialization functions
- *  @brief    Initialization and Configuration functions
- *
+  * @brief    Initialization and Configuration functions
+  *
 @verbatim
  ===============================================================================
               ##### Initialization and de-initialization functions #####
@@ -216,7 +219,7 @@
          RTC registers synchronization check and reference clock detection enable.
          (#) The RTC Prescaler is programmed to generate the RTC 1Hz time base.
              It is split into 2 programmable prescalers to minimize power consumption.
-             (++) A 7-bit asynchronous prescaler and a 13-bit synchronous prescaler.
+             (++) A 7-bit asynchronous prescaler and a 15-bit synchronous prescaler.
              (++) When both prescalers are used, it is recommended to configure the
                  asynchronous prescaler to a high value to minimize power consumption.
          (#) All RTC registers are Write protected. Writing to the RTC registers
@@ -226,11 +229,11 @@
              and its value can be updated. When the initialization sequence is
              complete, the calendar restarts counting after 4 RTCCLK cycles.
          (#) To read the calendar through the shadow registers after Calendar
-             initialization, calendar update or after wake-up from low power modes
+             initialization, calendar update or after wakeup from low power modes
              the software must first clear the RSF flag. The software must then
              wait until it is set again before reading the calendar, which means
              that the calendar registers have been correctly copied into the
-             RTC_TR and RTC_DR shadow registers.The HAL_RTC_WaitForSynchro() function
+             RTC_TR and RTC_DR shadow registers. The HAL_RTC_WaitForSynchro() function
              implements the above software sequence (RSF clear and RSF check).
 
 @endverbatim
@@ -245,22 +248,25 @@
   */
 HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc)
 {
-  /* Check the RTC peripheral state */
-  if(hrtc == NULL)
+  HAL_StatusTypeDef status = HAL_ERROR;
+
+  /* Check RTC handler validity */
+  if (hrtc == NULL)
   {
-     return HAL_ERROR;
+    return HAL_ERROR;
   }
 
   /* Check the parameters */
+  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
   assert_param(IS_RTC_HOUR_FORMAT(hrtc->Init.HourFormat));
   assert_param(IS_RTC_ASYNCH_PREDIV(hrtc->Init.AsynchPrediv));
   assert_param(IS_RTC_SYNCH_PREDIV(hrtc->Init.SynchPrediv));
-  assert_param (IS_RTC_OUTPUT(hrtc->Init.OutPut));
-  assert_param (IS_RTC_OUTPUT_POL(hrtc->Init.OutPutPolarity));
+  assert_param(IS_RTC_OUTPUT(hrtc->Init.OutPut));
+  assert_param(IS_RTC_OUTPUT_POL(hrtc->Init.OutPutPolarity));
   assert_param(IS_RTC_OUTPUT_TYPE(hrtc->Init.OutPutType));
 
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
-  if(hrtc->State == HAL_RTC_STATE_RESET)
+  if (hrtc->State == HAL_RTC_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hrtc->Lock = HAL_UNLOCKED;
@@ -270,22 +276,24 @@
     hrtc->TimeStampEventCallback       =  HAL_RTCEx_TimeStampEventCallback;   /* Legacy weak TimeStampEventCallback   */
     hrtc->WakeUpTimerEventCallback     =  HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
     hrtc->Tamper1EventCallback         =  HAL_RTCEx_Tamper1EventCallback;     /* Legacy weak Tamper1EventCallback     */
+#if defined(RTC_TAMPER2_SUPPORT)
     hrtc->Tamper2EventCallback         =  HAL_RTCEx_Tamper2EventCallback;     /* Legacy weak Tamper2EventCallback     */
+#endif /* RTC_TAMPER2_SUPPORT */
 
-    if(hrtc->MspInitCallback == NULL)
+    if (hrtc->MspInitCallback == NULL)
     {
       hrtc->MspInitCallback = HAL_RTC_MspInit;
     }
     /* Init the low level hardware */
     hrtc->MspInitCallback(hrtc);
 
-    if(hrtc->MspDeInitCallback == NULL)
+    if (hrtc->MspDeInitCallback == NULL)
     {
       hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
     }
   }
-#else
-  if(hrtc->State == HAL_RTC_STATE_RESET)
+#else /* USE_HAL_RTC_REGISTER_CALLBACKS */
+  if (hrtc->State == HAL_RTC_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hrtc->Lock = HAL_UNLOCKED;
@@ -293,7 +301,7 @@
     /* Initialize RTC MSP */
     HAL_RTC_MspInit(hrtc);
   }
-#endif /* (USE_HAL_RTC_REGISTER_CALLBACKS) */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
   /* Set RTC state */
   hrtc->State = HAL_RTC_STATE_BUSY;
@@ -301,18 +309,10 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
-  {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
 
-    /* Set RTC state */
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    return HAL_ERROR;
-  }
-  else
+  if (status == HAL_OK)
   {
     /* Clear RTC_CR FMT, OSEL and POL Bits */
     hrtc->Instance->CR &= ((uint32_t)~(RTC_CR_FMT | RTC_CR_OSEL | RTC_CR_POL));
@@ -321,48 +321,39 @@
 
     /* Configure the RTC PRER */
     hrtc->Instance->PRER = (uint32_t)(hrtc->Init.SynchPrediv);
-    hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << 16U);
+    hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << RTC_PRER_PREDIV_A_Pos);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
+    status = RTC_ExitInitMode(hrtc);
+  }
 
-    /* If  CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
-    if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET)
-    {
-      if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        hrtc->State = HAL_RTC_STATE_ERROR;
-
-        return HAL_ERROR;
-      }
-    }
-
-    hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_ALARMOUTTYPE;
+  if (status == HAL_OK)
+  {
+    hrtc->Instance->TAFCR &= (uint32_t)~RTC_OUTPUT_TYPE_PUSHPULL;
     hrtc->Instance->TAFCR |= (uint32_t)(hrtc->Init.OutPutType);
 
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-    /* Set RTC state */
     hrtc->State = HAL_RTC_STATE_READY;
-
-    return HAL_OK;
   }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  return status;
 }
 
 /**
   * @brief  DeInitializes the RTC peripheral
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
-  * @note   This function doesn't reset the RTC Backup Data registers.
+  * @note   This function does not reset the RTC Backup Data registers.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc)
 {
-  uint32_t tickstart = 0U;
+  HAL_StatusTypeDef status = HAL_ERROR;
+
+  /* Check the parameters */
+  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
 
   /* Set RTC state */
   hrtc->State = HAL_RTC_STATE_BUSY;
@@ -370,116 +361,76 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
-  {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
 
-    /* Set RTC state */
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    return HAL_ERROR;
-  }
-  else
+  if (status == HAL_OK)
   {
-    /* Reset TR, DR and CR registers */
+    /* Reset RTC registers */
     hrtc->Instance->TR = 0x00000000U;
-    hrtc->Instance->DR = 0x00002101U;
-    /* Reset All CR bits except CR[2:0] */
-    hrtc->Instance->CR &= 0x00000007U;
-
-    /* Get tick */
-    tickstart = HAL_GetTick();
-
-    /* Wait till WUTWF flag is set and if Time out is reached exit */
-    while(((hrtc->Instance->ISR) & RTC_ISR_WUTWF) == (uint32_t)RESET)
-    {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        /* Set RTC state */
-        hrtc->State = HAL_RTC_STATE_TIMEOUT;
-
-        return HAL_TIMEOUT;
-      }
-    }
-
-    /* Reset all RTC CR register bits */
-    hrtc->Instance->CR &= 0x00000000U;
-    hrtc->Instance->WUTR = 0x0000FFFFU;
-    hrtc->Instance->PRER = 0x007F00FFU;
+    hrtc->Instance->DR = (RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0);
+    hrtc->Instance->CR  &= 0x00000000U;
+    hrtc->Instance->WUTR = RTC_WUTR_WUT;
+    hrtc->Instance->PRER = (uint32_t)(RTC_PRER_PREDIV_A | 0x000000FFU);
     hrtc->Instance->CALIBR = 0x00000000U;
-    hrtc->Instance->ALRMAR = 0x00000000U;
-    hrtc->Instance->ALRMBR = 0x00000000U;
-    hrtc->Instance->SHIFTR = 0x00000000U;
-    hrtc->Instance->CALR = 0x00000000U;
+    hrtc->Instance->ALRMAR   = 0x00000000U;
+    hrtc->Instance->ALRMBR   = 0x00000000U;
+    hrtc->Instance->CALR     = 0x00000000U;
+    hrtc->Instance->SHIFTR   = 0x00000000U;
     hrtc->Instance->ALRMASSR = 0x00000000U;
     hrtc->Instance->ALRMBSSR = 0x00000000U;
 
-    /* Reset ISR register and exit initialization mode */
-    hrtc->Instance->ISR = 0x00000000U;
-
-    /* Reset Tamper and alternate functions configuration register */
-    hrtc->Instance->TAFCR = 0x00000000U;
-
-    /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
-    if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET)
-    {
-      if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        hrtc->State = HAL_RTC_STATE_ERROR;
-
-        return HAL_ERROR;
-      }
-    }
+    /* Exit Initialization mode */
+    status = RTC_ExitInitMode(hrtc);
   }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
-  if(hrtc->MspDeInitCallback == NULL)
+  if (status == HAL_OK)
   {
-    hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+    /* Reset Tamper and alternate functions configuration register */
+    hrtc->Instance->TAFCR = 0x00000000U;
+
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+    if (hrtc->MspDeInitCallback == NULL)
+    {
+      hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+    }
+
+    /* DeInit the low level hardware: CLOCK, NVIC.*/
+    hrtc->MspDeInitCallback(hrtc);
+#else /* USE_HAL_RTC_REGISTER_CALLBACKS */
+    /* De-Initialize RTC MSP */
+    HAL_RTC_MspDeInit(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+
+    hrtc->State = HAL_RTC_STATE_RESET;
   }
 
-  /* DeInit the low level hardware: CLOCK, NVIC.*/
-  hrtc->MspDeInitCallback(hrtc);
-
-#else
-  /* De-Initialize RTC MSP */
-  HAL_RTC_MspDeInit(hrtc);
-#endif /* (USE_HAL_RTC_REGISTER_CALLBACKS) */
-
-  hrtc->State = HAL_RTC_STATE_RESET;
-
   /* Release Lock */
   __HAL_UNLOCK(hrtc);
 
-  return HAL_OK;
+  return status;
 }
 
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
 /**
-  * @brief  Register a User RTC Callback
+  * @brief  Registers a User RTC Callback
   *         To be used instead of the weak predefined callback
-  * @param  hrtc RTC handle
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
   * @param  CallbackID ID of the callback to be registered
   *         This parameter can be one of the following values:
   *          @arg @ref HAL_RTC_ALARM_A_EVENT_CB_ID          Alarm A Event Callback ID
   *          @arg @ref HAL_RTC_ALARM_B_EVENT_CB_ID          Alarm B Event Callback ID
-  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        TimeStamp Event Callback ID
-  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wake-Up Timer Event Callback ID
+  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        Timestamp Event Callback ID
+  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wakeup Timer Event Callback ID
   *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
   *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
   *          @arg @ref HAL_RTC_MSPINIT_CB_ID                Msp Init callback ID
   *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID              Msp DeInit callback ID
+  * @note   HAL_RTC_TAMPER2_EVENT_CB_ID is not applicable to all devices.
   * @param  pCallback pointer to the Callback function
   * @retval HAL status
   */
@@ -487,7 +438,7 @@
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -495,64 +446,66 @@
   /* Process locked */
   __HAL_LOCK(hrtc);
 
-  if(HAL_RTC_STATE_READY == hrtc->State)
+  if (HAL_RTC_STATE_READY == hrtc->State)
   {
     switch (CallbackID)
     {
-    case HAL_RTC_ALARM_A_EVENT_CB_ID :
-      hrtc->AlarmAEventCallback = pCallback;
-      break;
+      case HAL_RTC_ALARM_A_EVENT_CB_ID :
+        hrtc->AlarmAEventCallback = pCallback;
+        break;
 
-    case HAL_RTC_ALARM_B_EVENT_CB_ID :
-      hrtc->AlarmBEventCallback = pCallback;
-      break;
+      case HAL_RTC_ALARM_B_EVENT_CB_ID :
+        hrtc->AlarmBEventCallback = pCallback;
+        break;
 
-    case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
-      hrtc->TimeStampEventCallback = pCallback;
-      break;
+      case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
+        hrtc->TimeStampEventCallback = pCallback;
+        break;
 
-    case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
-      hrtc->WakeUpTimerEventCallback = pCallback;
-      break;
+      case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
+        hrtc->WakeUpTimerEventCallback = pCallback;
+        break;
 
-    case HAL_RTC_TAMPER1_EVENT_CB_ID :
-      hrtc->Tamper1EventCallback = pCallback;
-      break;
+      case HAL_RTC_TAMPER1_EVENT_CB_ID :
+        hrtc->Tamper1EventCallback = pCallback;
+        break;
 
-    case HAL_RTC_TAMPER2_EVENT_CB_ID :
-      hrtc->Tamper2EventCallback = pCallback;
-      break;
+#if defined(RTC_TAMPER2_SUPPORT)
+      case HAL_RTC_TAMPER2_EVENT_CB_ID :
+        hrtc->Tamper2EventCallback = pCallback;
+        break;
+#endif /* RTC_TAMPER2_SUPPORT */
 
-   case HAL_RTC_MSPINIT_CB_ID :
-      hrtc->MspInitCallback = pCallback;
-      break;
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = pCallback;
+        break;
 
-   case HAL_RTC_MSPDEINIT_CB_ID :
-      hrtc->MspDeInitCallback = pCallback;
-      break;
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = pCallback;
+        break;
 
-    default :
-     /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(HAL_RTC_STATE_RESET == hrtc->State)
+  else if (HAL_RTC_STATE_RESET == hrtc->State)
   {
     switch (CallbackID)
     {
-    case HAL_RTC_MSPINIT_CB_ID :
-      hrtc->MspInitCallback = pCallback;
-      break;
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = pCallback;
+        break;
 
-   case HAL_RTC_MSPDEINIT_CB_ID :
-      hrtc->MspDeInitCallback = pCallback;
-      break;
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = pCallback;
+        break;
 
-    default :
-     /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -568,19 +521,21 @@
 }
 
 /**
-  * @brief  Unregister an RTC Callback
+  * @brief  Unregisters an RTC Callback
   *         RTC callabck is redirected to the weak predefined callback
-  * @param  hrtc RTC handle
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
   * @param  CallbackID ID of the callback to be unregistered
   *         This parameter can be one of the following values:
   *          @arg @ref HAL_RTC_ALARM_A_EVENT_CB_ID          Alarm A Event Callback ID
   *          @arg @ref HAL_RTC_ALARM_B_EVENT_CB_ID          Alarm B Event Callback ID
-  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        TimeStamp Event Callback ID
-  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wake-Up Timer Event Callback ID
+  *          @arg @ref HAL_RTC_TIMESTAMP_EVENT_CB_ID        Timestamp Event Callback ID
+  *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      Wakeup Timer Event Callback ID
   *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
   *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
   *          @arg @ref HAL_RTC_MSPINIT_CB_ID Msp Init callback ID
   *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID Msp DeInit callback ID
+  * @note   HAL_RTC_TAMPER2_EVENT_CB_ID is not applicable to all devices.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_UnRegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID)
@@ -590,64 +545,66 @@
   /* Process locked */
   __HAL_LOCK(hrtc);
 
-  if(HAL_RTC_STATE_READY == hrtc->State)
+  if (HAL_RTC_STATE_READY == hrtc->State)
   {
     switch (CallbackID)
     {
-    case HAL_RTC_ALARM_A_EVENT_CB_ID :
-      hrtc->AlarmAEventCallback = HAL_RTC_AlarmAEventCallback;         /* Legacy weak AlarmAEventCallback    */
-      break;
+      case HAL_RTC_ALARM_A_EVENT_CB_ID :
+        hrtc->AlarmAEventCallback = HAL_RTC_AlarmAEventCallback;             /* Legacy weak AlarmAEventCallback    */
+        break;
 
-    case HAL_RTC_ALARM_B_EVENT_CB_ID :
-      hrtc->AlarmBEventCallback = HAL_RTCEx_AlarmBEventCallback;          /* Legacy weak AlarmBEventCallback */
-      break;
+      case HAL_RTC_ALARM_B_EVENT_CB_ID :
+        hrtc->AlarmBEventCallback = HAL_RTCEx_AlarmBEventCallback;           /* Legacy weak AlarmBEventCallback */
+        break;
 
-    case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
-      hrtc->TimeStampEventCallback = HAL_RTCEx_TimeStampEventCallback;    /* Legacy weak TimeStampEventCallback    */
-      break;
+      case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
+        hrtc->TimeStampEventCallback = HAL_RTCEx_TimeStampEventCallback;     /* Legacy weak TimeStampEventCallback    */
+        break;
 
-    case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
-      hrtc->WakeUpTimerEventCallback = HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
-      break;
+      case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
+        hrtc->WakeUpTimerEventCallback = HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
+        break;
 
-    case HAL_RTC_TAMPER1_EVENT_CB_ID :
-      hrtc->Tamper1EventCallback = HAL_RTCEx_Tamper1EventCallback;         /* Legacy weak Tamper1EventCallback   */
-      break;
+      case HAL_RTC_TAMPER1_EVENT_CB_ID :
+        hrtc->Tamper1EventCallback = HAL_RTCEx_Tamper1EventCallback;         /* Legacy weak Tamper1EventCallback   */
+        break;
 
-    case HAL_RTC_TAMPER2_EVENT_CB_ID :
-      hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;         /* Legacy weak Tamper2EventCallback         */
-      break;
+#if defined(RTC_TAMPER2_SUPPORT)
+      case HAL_RTC_TAMPER2_EVENT_CB_ID :
+        hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;         /* Legacy weak Tamper2EventCallback         */
+        break;
+#endif /* RTC_TAMPER2_SUPPORT */
 
-    case HAL_RTC_MSPINIT_CB_ID :
-      hrtc->MspInitCallback = HAL_RTC_MspInit;
-      break;
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = HAL_RTC_MspInit;
+        break;
 
-    case HAL_RTC_MSPDEINIT_CB_ID :
-      hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
-      break;
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+        break;
 
-    default :
-     /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(HAL_RTC_STATE_RESET == hrtc->State)
+  else if (HAL_RTC_STATE_RESET == hrtc->State)
   {
     switch (CallbackID)
     {
-    case HAL_RTC_MSPINIT_CB_ID :
-      hrtc->MspInitCallback = HAL_RTC_MspInit;
-      break;
+      case HAL_RTC_MSPINIT_CB_ID :
+        hrtc->MspInitCallback = HAL_RTC_MspInit;
+        break;
 
-    case HAL_RTC_MSPDEINIT_CB_ID :
-      hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
-      break;
+      case HAL_RTC_MSPDEINIT_CB_ID :
+        hrtc->MspDeInitCallback = HAL_RTC_MspDeInit;
+        break;
 
-    default :
-     /* Return error status */
-      status =  HAL_ERROR;
-      break;
+      default :
+        /* Return error status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -669,12 +626,13 @@
   *                the configuration information for RTC.
   * @retval None
   */
-__weak void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
+__weak void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_MspInit could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_MspInit could be implemented in the user file
    */
 }
 
@@ -684,12 +642,13 @@
   *                the configuration information for RTC.
   * @retval None
   */
-__weak void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
+__weak void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_MspDeInit could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_MspDeInit could be implemented in the user file
    */
 }
 
@@ -698,8 +657,8 @@
   */
 
 /** @defgroup RTC_Exported_Functions_Group2 RTC Time and Date functions
- *  @brief   RTC Time and Date functions
- *
+  * @brief    RTC Time and Date functions
+  *
 @verbatim
  ===============================================================================
                  ##### RTC Time and Date functions #####
@@ -716,6 +675,8 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  sTime Pointer to Time structure
+  * @note   DayLightSaving and StoreOperation interfaces are deprecated.
+  *         To manage Daylight Saving Time, please use HAL_RTC_DST_xxx functions.
   * @param  Format Specifies the format of the entered parameters.
   *          This parameter can be one of the following values:
   *            @arg RTC_FORMAT_BIN: Binary data format
@@ -725,8 +686,9 @@
 HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
 {
   uint32_t tmpreg = 0U;
+  HAL_StatusTypeDef status;
 
- /* Check the parameters */
+  /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
   assert_param(IS_RTC_DAYLIGHT_SAVING(sTime->DayLightSaving));
   assert_param(IS_RTC_STORE_OPERATION(sTime->StoreOperation));
@@ -736,9 +698,9 @@
 
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(sTime->Hours));
       assert_param(IS_RTC_HOURFORMAT12(sTime->TimeFormat));
@@ -751,14 +713,14 @@
     assert_param(IS_RTC_MINUTES(sTime->Minutes));
     assert_param(IS_RTC_SECONDS(sTime->Seconds));
 
-    tmpreg = (uint32_t)(((uint32_t)RTC_ByteToBcd2(sTime->Hours) << 16U) | \
-                        ((uint32_t)RTC_ByteToBcd2(sTime->Minutes) << 8U) | \
-                        ((uint32_t)RTC_ByteToBcd2(sTime->Seconds)) | \
-                        (((uint32_t)sTime->TimeFormat) << 16U));
+    tmpreg = (uint32_t)(( (uint32_t)RTC_ByteToBcd2(sTime->Hours)   << RTC_TR_HU_Pos)  | \
+                        ( (uint32_t)RTC_ByteToBcd2(sTime->Minutes) << RTC_TR_MNU_Pos) | \
+                        ( (uint32_t)RTC_ByteToBcd2(sTime->Seconds))                   | \
+                        (((uint32_t)sTime->TimeFormat)             << RTC_TR_PM_Pos));
   }
   else
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sTime->Hours)));
       assert_param(IS_RTC_HOURFORMAT12(sTime->TimeFormat));
@@ -770,69 +732,45 @@
     }
     assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sTime->Minutes)));
     assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sTime->Seconds)));
-    tmpreg = (((uint32_t)(sTime->Hours) << 16U) | \
-              ((uint32_t)(sTime->Minutes) << 8U) | \
-              ((uint32_t)sTime->Seconds) | \
-              ((uint32_t)(sTime->TimeFormat) << 16U));
+    tmpreg = (((uint32_t)(sTime->Hours)      << RTC_TR_HU_Pos)  | \
+              ((uint32_t)(sTime->Minutes)    << RTC_TR_MNU_Pos) | \
+              ((uint32_t) sTime->Seconds)                       | \
+              ((uint32_t)(sTime->TimeFormat) << RTC_TR_PM_Pos));
   }
 
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
-  {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
 
-    /* Set RTC state */
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
+  if (status == HAL_OK)
   {
     /* Set the RTC_TR register */
     hrtc->Instance->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
 
-    /* This interface is deprecated. To manage Daylight Saving Time, please use HAL_RTC_DST_xxx functions */
-    hrtc->Instance->CR &= (uint32_t)~RTC_CR_BCK;
+    /* Clear the bits to be configured (Deprecated. Use HAL_RTC_DST_xxx functions instead) */
+    hrtc->Instance->CR &= (uint32_t)~RTC_CR_BKP;
 
-    /* This interface is deprecated. To manage Daylight Saving Time, please use HAL_RTC_DST_xxx functions */
+    /* Configure the RTC_CR register (Deprecated. Use HAL_RTC_DST_xxx functions instead) */
     hrtc->Instance->CR |= (uint32_t)(sTime->DayLightSaving | sTime->StoreOperation);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
-
-    /* If  CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
-    if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET)
-    {
-      if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        hrtc->State = HAL_RTC_STATE_ERROR;
-
-        /* Process Unlocked */
-        __HAL_UNLOCK(hrtc);
-
-        return HAL_ERROR;
-      }
-    }
-
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-   hrtc->State = HAL_RTC_STATE_READY;
-
-   __HAL_UNLOCK(hrtc);
-
-   return HAL_OK;
+    status = RTC_ExitInitMode(hrtc);
   }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
 }
 
 /**
@@ -844,13 +782,19 @@
   *          This parameter can be one of the following values:
   *            @arg RTC_FORMAT_BIN: Binary data format
   *            @arg RTC_FORMAT_BCD: BCD data format
-  * @note  You can use SubSeconds and SecondFraction (sTime structure fields returned) to convert SubSeconds
-  *        value in second fraction ratio with time unit following generic formula:
-  *        Second fraction ratio * time_unit= [(SecondFraction-SubSeconds)/(SecondFraction+1)] * time_unit
-  *        This conversion can be performed only if no shift operation is pending (ie. SHFP=0) when PREDIV_S >= SS
-  * @note You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the values
-  *        in the higher-order calendar shadow registers to ensure consistency between the time and date values.
-  *        Reading RTC current time locks the values in calendar shadow registers until current date is read.
+  * @note  You can use SubSeconds and SecondFraction (sTime structure fields
+  *        returned) to convert SubSeconds value in second fraction ratio with
+  *        time unit following generic formula:
+  *        Second fraction ratio * time_unit =
+  *           [(SecondFraction - SubSeconds) / (SecondFraction + 1)] * time_unit
+  *        This conversion can be performed only if no shift operation is pending
+  *        (ie. SHFP=0) when PREDIV_S >= SS
+  * @note  You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the
+  *        values in the higher-order calendar shadow registers to ensure
+  *        consistency between the time and date values.
+  *        Reading RTC current time locks the values in calendar shadow registers
+  *        until current date is read to ensure consistency between the time and
+  *        date values.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
@@ -860,7 +804,7 @@
   /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
 
-  /* Get subseconds structure field from the corresponding register */
+  /* Get subseconds value from the corresponding register */
   sTime->SubSeconds = (uint32_t)(hrtc->Instance->SSR);
 
   /* Get SecondFraction structure field from the corresponding register field*/
@@ -870,13 +814,13 @@
   tmpreg = (uint32_t)(hrtc->Instance->TR & RTC_TR_RESERVED_MASK);
 
   /* Fill the structure fields with the read parameters */
-  sTime->Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16U);
-  sTime->Minutes = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >> 8U);
-  sTime->Seconds = (uint8_t)(tmpreg & (RTC_TR_ST | RTC_TR_SU));
-  sTime->TimeFormat = (uint8_t)((tmpreg & (RTC_TR_PM)) >> 16U);
+  sTime->Hours      = (uint8_t)((tmpreg & (RTC_TR_HT  | RTC_TR_HU))  >> RTC_TR_HU_Pos);
+  sTime->Minutes    = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >> RTC_TR_MNU_Pos);
+  sTime->Seconds    = (uint8_t)( tmpreg & (RTC_TR_ST  | RTC_TR_SU));
+  sTime->TimeFormat = (uint8_t)((tmpreg & (RTC_TR_PM))               >> RTC_TR_PM_Pos);
 
   /* Check the input parameters format */
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
     /* Convert the time structure parameters to Binary format */
     sTime->Hours = (uint8_t)RTC_Bcd2ToByte(sTime->Hours);
@@ -901,32 +845,33 @@
 HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
 {
   uint32_t datetmpreg = 0U;
+  HAL_StatusTypeDef status;
 
- /* Check the parameters */
+  /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
 
- /* Process Locked */
- __HAL_LOCK(hrtc);
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
 
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  if((Format == RTC_FORMAT_BIN) && ((sDate->Month & 0x10U) == 0x10U))
+  if ((Format == RTC_FORMAT_BIN) && ((sDate->Month & 0x10U) == 0x10U))
   {
     sDate->Month = (uint8_t)((sDate->Month & (uint8_t)~(0x10U)) + (uint8_t)0x0AU);
   }
 
   assert_param(IS_RTC_WEEKDAY(sDate->WeekDay));
 
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
     assert_param(IS_RTC_YEAR(sDate->Year));
     assert_param(IS_RTC_MONTH(sDate->Month));
     assert_param(IS_RTC_DATE(sDate->Date));
 
-   datetmpreg = (((uint32_t)RTC_ByteToBcd2(sDate->Year) << 16U) | \
-                 ((uint32_t)RTC_ByteToBcd2(sDate->Month) << 8U) | \
-                 ((uint32_t)RTC_ByteToBcd2(sDate->Date)) | \
-                 ((uint32_t)sDate->WeekDay << 13U));
+    datetmpreg = (((uint32_t)RTC_ByteToBcd2(sDate->Year)  << RTC_DR_YU_Pos) | \
+                  ((uint32_t)RTC_ByteToBcd2(sDate->Month) << RTC_DR_MU_Pos) | \
+                  ((uint32_t)RTC_ByteToBcd2(sDate->Date))                   | \
+                  ((uint32_t)sDate->WeekDay               << RTC_DR_WDU_Pos));
   }
   else
   {
@@ -934,64 +879,39 @@
     assert_param(IS_RTC_MONTH(RTC_Bcd2ToByte(sDate->Month)));
     assert_param(IS_RTC_DATE(RTC_Bcd2ToByte(sDate->Date)));
 
-    datetmpreg = ((((uint32_t)sDate->Year) << 16U) | \
-                  (((uint32_t)sDate->Month) << 8U) | \
-                  ((uint32_t)sDate->Date) | \
-                  (((uint32_t)sDate->WeekDay) << 13U));
+    datetmpreg = ((((uint32_t)sDate->Year)    << RTC_DR_YU_Pos) | \
+                  (((uint32_t)sDate->Month)   << RTC_DR_MU_Pos) | \
+                  ((uint32_t) sDate->Date)                      | \
+                  (((uint32_t)sDate->WeekDay) << RTC_DR_WDU_Pos));
   }
 
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
-  {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
 
-    /* Set RTC state*/
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
+  if (status == HAL_OK)
   {
     /* Set the RTC_DR register */
     hrtc->Instance->DR = (uint32_t)(datetmpreg & RTC_DR_RESERVED_MASK);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
-
-    /* If  CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
-    if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET)
-    {
-      if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        hrtc->State = HAL_RTC_STATE_ERROR;
-
-        /* Process Unlocked */
-        __HAL_UNLOCK(hrtc);
-
-        return HAL_ERROR;
-      }
-    }
-
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-    hrtc->State = HAL_RTC_STATE_READY ;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_OK;
+    status = RTC_ExitInitMode(hrtc);
   }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return status;
 }
 
 /**
@@ -1003,9 +923,12 @@
   *          This parameter can be one of the following values:
   *            @arg RTC_FORMAT_BIN:  Binary data format
   *            @arg RTC_FORMAT_BCD:  BCD data format
-  * @note You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the values
-  * in the higher-order calendar shadow registers to ensure consistency between the time and date values.
-  * Reading RTC current time locks the values in calendar shadow registers until Current date is read.
+  * @note  You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the
+  *        values in the higher-order calendar shadow registers to ensure
+  *        consistency between the time and date values.
+  *        Reading RTC current time locks the values in calendar shadow registers
+  *        until current date is read to ensure consistency between the time and
+  *        date values.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
@@ -1019,18 +942,18 @@
   datetmpreg = (uint32_t)(hrtc->Instance->DR & RTC_DR_RESERVED_MASK);
 
   /* Fill the structure fields with the read parameters */
-  sDate->Year = (uint8_t)((datetmpreg & (RTC_DR_YT | RTC_DR_YU)) >> 16U);
-  sDate->Month = (uint8_t)((datetmpreg & (RTC_DR_MT | RTC_DR_MU)) >> 8U);
-  sDate->Date = (uint8_t)(datetmpreg & (RTC_DR_DT | RTC_DR_DU));
-  sDate->WeekDay = (uint8_t)((datetmpreg & (RTC_DR_WDU)) >> 13U);
+  sDate->Year    = (uint8_t)((datetmpreg & (RTC_DR_YT | RTC_DR_YU)) >> RTC_DR_YU_Pos);
+  sDate->Month   = (uint8_t)((datetmpreg & (RTC_DR_MT | RTC_DR_MU)) >> RTC_DR_MU_Pos);
+  sDate->Date    = (uint8_t) (datetmpreg & (RTC_DR_DT | RTC_DR_DU));
+  sDate->WeekDay = (uint8_t)((datetmpreg & (RTC_DR_WDU))            >> RTC_DR_WDU_Pos);
 
   /* Check the input parameters format */
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
     /* Convert the date structure parameters to Binary format */
-    sDate->Year = (uint8_t)RTC_Bcd2ToByte(sDate->Year);
+    sDate->Year  = (uint8_t)RTC_Bcd2ToByte(sDate->Year);
     sDate->Month = (uint8_t)RTC_Bcd2ToByte(sDate->Month);
-    sDate->Date = (uint8_t)RTC_Bcd2ToByte(sDate->Date);
+    sDate->Date  = (uint8_t)RTC_Bcd2ToByte(sDate->Date);
   }
   return HAL_OK;
 }
@@ -1040,8 +963,8 @@
   */
 
 /** @defgroup RTC_Exported_Functions_Group3 RTC Alarm functions
- *  @brief   RTC Alarm functions
- *
+  * @brief    RTC Alarm functions
+  *
 @verbatim
  ===============================================================================
                  ##### RTC Alarm functions #####
@@ -1061,12 +984,16 @@
   *          This parameter can be one of the following values:
   *             @arg RTC_FORMAT_BIN: Binary data format
   *             @arg RTC_FORMAT_BCD: BCD data format
+  * @note   The Alarm register can only be written when the corresponding Alarm
+  *         is disabled (Use the HAL_RTC_DeactivateAlarm()).
+  * @note   The HAL_RTC_SetTime() must be called before enabling the Alarm feature.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
 {
   uint32_t tickstart = 0U;
-  uint32_t tmpreg = 0U, subsecondtmpreg = 0U;
+  uint32_t tmpreg = 0U;
+  uint32_t subsecondtmpreg = 0U;
 
   /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
@@ -1079,11 +1006,14 @@
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
+  /* Change RTC state to BUSY */
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  if(Format == RTC_FORMAT_BIN)
+  /* Check the data format (binary or BCD) and store the Alarm time and date
+     configuration accordingly */
+  if (Format == RTC_FORMAT_BIN)
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(sAlarm->AlarmTime.Hours));
       assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
@@ -1096,7 +1026,7 @@
     assert_param(IS_RTC_MINUTES(sAlarm->AlarmTime.Minutes));
     assert_param(IS_RTC_SECONDS(sAlarm->AlarmTime.Seconds));
 
-    if(sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(sAlarm->AlarmDateWeekDay));
     }
@@ -1105,17 +1035,17 @@
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(sAlarm->AlarmDateWeekDay));
     }
 
-    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours) << 16U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << 8U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds)) | \
-              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << 16U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay) << 24U) | \
-              ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
+    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours)   << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds))                       | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat)            << RTC_TR_PM_Pos)      | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay)  << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t)sAlarm->AlarmDateWeekDaySel)                                     | \
               ((uint32_t)sAlarm->AlarmMask));
   }
   else
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
       assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
@@ -1129,7 +1059,7 @@
     assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes)));
     assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds)));
 
-    if(sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
     }
@@ -1138,37 +1068,41 @@
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
     }
 
-    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours) << 16U) | \
-              ((uint32_t)(sAlarm->AlarmTime.Minutes) << 8U) | \
-              ((uint32_t) sAlarm->AlarmTime.Seconds) | \
-              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << 16U) | \
-              ((uint32_t)(sAlarm->AlarmDateWeekDay) << 24U) | \
-              ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
-              ((uint32_t)sAlarm->AlarmMask));
+    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours)      << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)(sAlarm->AlarmTime.Minutes)    << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t) sAlarm->AlarmTime.Seconds)                           | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_TR_PM_Pos)      | \
+              ((uint32_t)(sAlarm->AlarmDateWeekDay)     << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t) sAlarm->AlarmDateWeekDaySel)                         | \
+              ((uint32_t) sAlarm->AlarmMask));
   }
 
-  /* Configure the Alarm A or Alarm B Sub Second registers */
-  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | (uint32_t)(sAlarm->AlarmSubSecondMask));
+  /* Store the Alarm subseconds configuration */
+  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | \
+                               (uint32_t)(sAlarm->AlarmSubSecondMask));
 
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
   /* Configure the Alarm register */
-  if(sAlarm->Alarm == RTC_ALARM_A)
+  if (sAlarm->Alarm == RTC_ALARM_A)
   {
-    /* Disable the Alarm A interrupt */
+    /* Disable the Alarm A */
     __HAL_RTC_ALARMA_DISABLE(hrtc);
 
-    /* In case of interrupt mode is used, the interrupt source must disabled */
+    /* In case interrupt mode is used, the interrupt source must be disabled */
     __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
 
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
+
     /* Get tick */
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC ALRAWF flag is set and if Time out is reached exit */
-    while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == RESET)
+    /* Wait till RTC ALRAWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1183,26 +1117,29 @@
     }
 
     hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
-    /* Configure the Alarm A Sub Second register */
+    /* Configure the Alarm A Subseconds register */
     hrtc->Instance->ALRMASSR = subsecondtmpreg;
     /* Configure the Alarm state: Enable Alarm */
     __HAL_RTC_ALARMA_ENABLE(hrtc);
   }
   else
   {
-    /* Disable the Alarm B interrupt */
+    /* Disable the Alarm B */
     __HAL_RTC_ALARMB_DISABLE(hrtc);
 
-    /* In case of interrupt mode is used, the interrupt source must disabled */
+    /* In case interrupt mode is used, the interrupt source must be disabled */
     __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
 
+    /* Clear the Alarm flag */
+    __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
+
     /* Get tick */
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC ALRBWF flag is set and if Time out is reached exit */
-    while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == RESET)
+    /* Wait till RTC ALRBWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1217,7 +1154,7 @@
     }
 
     hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
-    /* Configure the Alarm B Sub Second register */
+    /* Configure the Alarm B Subseconds register */
     hrtc->Instance->ALRMBSSR = subsecondtmpreg;
     /* Configure the Alarm state: Enable Alarm */
     __HAL_RTC_ALARMB_ENABLE(hrtc);
@@ -1226,7 +1163,7 @@
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-  /* Change RTC state */
+  /* Change RTC state back to READY */
   hrtc->State = HAL_RTC_STATE_READY;
 
   /* Process Unlocked */
@@ -1236,7 +1173,7 @@
 }
 
 /**
-  * @brief  Sets the specified RTC Alarm with Interrupt
+  * @brief  Sets the specified RTC Alarm with Interrupt.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  sAlarm Pointer to Alarm structure
@@ -1244,12 +1181,16 @@
   *          This parameter can be one of the following values:
   *             @arg RTC_FORMAT_BIN: Binary data format
   *             @arg RTC_FORMAT_BCD: BCD data format
+  * @note   The Alarm register can only be written when the corresponding Alarm
+  *         is disabled (Use the HAL_RTC_DeactivateAlarm()).
+  * @note   The HAL_RTC_SetTime() must be called before enabling the Alarm feature.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
 {
-  uint32_t tmpreg = 0U, subsecondtmpreg = 0U;
-  __IO uint32_t count = RTC_TIMEOUT_VALUE  * (SystemCoreClock / 32U / 1000U) ;
+  __IO uint32_t count  = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+       uint32_t tmpreg = 0U;
+       uint32_t subsecondtmpreg = 0U;
 
   /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
@@ -1262,11 +1203,14 @@
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
+  /* Change RTC state to BUSY */
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  if(Format == RTC_FORMAT_BIN)
+  /* Check the data format (binary or BCD) and store the Alarm time and date
+     configuration accordingly */
+  if (Format == RTC_FORMAT_BIN)
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(sAlarm->AlarmTime.Hours));
       assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
@@ -1279,7 +1223,7 @@
     assert_param(IS_RTC_MINUTES(sAlarm->AlarmTime.Minutes));
     assert_param(IS_RTC_SECONDS(sAlarm->AlarmTime.Seconds));
 
-    if(sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(sAlarm->AlarmDateWeekDay));
     }
@@ -1287,17 +1231,18 @@
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(sAlarm->AlarmDateWeekDay));
     }
-    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours) << 16U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << 8U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds)) | \
-              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << 16U) | \
-              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay) << 24U) | \
-              ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
+
+    tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours)   << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds))                       | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat)            << RTC_TR_PM_Pos)      | \
+              ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay)  << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t)sAlarm->AlarmDateWeekDaySel)                                     | \
               ((uint32_t)sAlarm->AlarmMask));
   }
   else
   {
-    if((hrtc->Instance->CR & RTC_CR_FMT) != (uint32_t)RESET)
+    if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
     {
       assert_param(IS_RTC_HOUR12(RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours)));
       assert_param(IS_RTC_HOURFORMAT12(sAlarm->AlarmTime.TimeFormat));
@@ -1311,7 +1256,7 @@
     assert_param(IS_RTC_MINUTES(RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes)));
     assert_param(IS_RTC_SECONDS(RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds)));
 
-    if(sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
+    if (sAlarm->AlarmDateWeekDaySel == RTC_ALARMDATEWEEKDAYSEL_DATE)
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_DATE(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
     }
@@ -1319,30 +1264,33 @@
     {
       assert_param(IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay)));
     }
-    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours) << 16U) | \
-              ((uint32_t)(sAlarm->AlarmTime.Minutes) << 8U) | \
-              ((uint32_t) sAlarm->AlarmTime.Seconds) | \
-              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << 16U) | \
-              ((uint32_t)(sAlarm->AlarmDateWeekDay) << 24U) | \
-              ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
-              ((uint32_t)sAlarm->AlarmMask));
+
+    tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours)      << RTC_ALRMAR_HU_Pos)  | \
+              ((uint32_t)(sAlarm->AlarmTime.Minutes)    << RTC_ALRMAR_MNU_Pos) | \
+              ((uint32_t) sAlarm->AlarmTime.Seconds)                           | \
+              ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_TR_PM_Pos)      | \
+              ((uint32_t)(sAlarm->AlarmDateWeekDay)     << RTC_ALRMAR_DU_Pos)  | \
+              ((uint32_t) sAlarm->AlarmDateWeekDaySel)                         | \
+              ((uint32_t) sAlarm->AlarmMask));
   }
-  /* Configure the Alarm A or Alarm B Sub Second registers */
-  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | (uint32_t)(sAlarm->AlarmSubSecondMask));
+
+  /* Store the Alarm subseconds configuration */
+  subsecondtmpreg = (uint32_t)((uint32_t)(sAlarm->AlarmTime.SubSeconds) | \
+                               (uint32_t)(sAlarm->AlarmSubSecondMask));
 
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
   /* Configure the Alarm register */
-  if(sAlarm->Alarm == RTC_ALARM_A)
+  if (sAlarm->Alarm == RTC_ALARM_A)
   {
-    /* Disable the Alarm A interrupt */
+    /* Disable the Alarm A */
     __HAL_RTC_ALARMA_DISABLE(hrtc);
 
-    /* Clear flag alarm A */
+    /* Clear the Alarm flag */
     __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
 
-    /* Wait till RTC ALRAWF flag is set and if Time out is reached exit */
+    /* Wait till RTC ALRAWF flag is set and if timeout is reached exit */
     do
     {
       if (count-- == 0U)
@@ -1357,26 +1305,28 @@
 
         return HAL_TIMEOUT;
       }
-    }
-    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == RESET);
+    } while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U);
 
     hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
-    /* Configure the Alarm A Sub Second register */
+    /* Configure the Alarm A Subseconds register */
     hrtc->Instance->ALRMASSR = subsecondtmpreg;
     /* Configure the Alarm state: Enable Alarm */
     __HAL_RTC_ALARMA_ENABLE(hrtc);
     /* Configure the Alarm interrupt */
-    __HAL_RTC_ALARM_ENABLE_IT(hrtc,RTC_IT_ALRA);
+    __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRA);
   }
   else
   {
-    /* Disable the Alarm B interrupt */
+    /* Disable the Alarm B */
     __HAL_RTC_ALARMB_DISABLE(hrtc);
 
-    /* Clear flag alarm B */
+    /* Clear the Alarm flag */
     __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
 
-    /* Wait till RTC ALRBWF flag is set and if Time out is reached exit */
+    /* Reload the counter */
+    count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+
+    /* Wait till RTC ALRBWF flag is set and if timeout is reached exit */
     do
     {
       if (count-- == 0U)
@@ -1391,11 +1341,10 @@
 
         return HAL_TIMEOUT;
       }
-    }
-    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == RESET);
+    } while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U);
 
     hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
-    /* Configure the Alarm B Sub Second register */
+    /* Configure the Alarm B Subseconds register */
     hrtc->Instance->ALRMBSSR = subsecondtmpreg;
     /* Configure the Alarm state: Enable Alarm */
     __HAL_RTC_ALARMB_ENABLE(hrtc);
@@ -1405,12 +1354,12 @@
 
   /* RTC Alarm Interrupt Configuration: EXTI configuration */
   __HAL_RTC_ALARM_EXTI_ENABLE_IT();
-
-  EXTI->RTSR |= RTC_EXTI_LINE_ALARM_EVENT;
+  __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
+  /* Change RTC state back to READY */
   hrtc->State = HAL_RTC_STATE_READY;
 
   /* Process Unlocked */
@@ -1420,13 +1369,13 @@
 }
 
 /**
-  * @brief  Deactivate the specified RTC Alarm
+  * @brief  Deactivates the specified RTC Alarm.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Alarm Specifies the Alarm.
   *          This parameter can be one of the following values:
-  *            @arg RTC_ALARM_A:  AlarmA
-  *            @arg RTC_ALARM_B:  AlarmB
+  *            @arg RTC_ALARM_A: Alarm A
+  *            @arg RTC_ALARM_B: Alarm B
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
@@ -1444,21 +1393,21 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  if(Alarm == RTC_ALARM_A)
+  if (Alarm == RTC_ALARM_A)
   {
-    /* AlarmA */
+    /* Disable Alarm A */
     __HAL_RTC_ALARMA_DISABLE(hrtc);
 
-    /* In case of interrupt mode is used, the interrupt source must disabled */
+    /* In case interrupt mode is used, the interrupt source must be disabled */
     __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
 
     /* Get tick */
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC ALRxWF flag is set and if Time out is reached exit */
-    while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == RESET)
+    /* Wait till RTC ALRxWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1474,19 +1423,19 @@
   }
   else
   {
-    /* AlarmB */
+    /* Disable Alarm B */
     __HAL_RTC_ALARMB_DISABLE(hrtc);
 
-    /* In case of interrupt mode is used, the interrupt source must disabled */
-    __HAL_RTC_ALARM_DISABLE_IT(hrtc,RTC_IT_ALRB);
+    /* In case interrupt mode is used, the interrupt source must be disabled */
+    __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
 
     /* Get tick */
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC ALRxWF flag is set and if Time out is reached exit */
-    while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == RESET)
+    /* Wait till RTC ALRxWF flag is set and if timeout is reached exit */
+    while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1500,6 +1449,7 @@
       }
     }
   }
+
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
@@ -1518,8 +1468,8 @@
   * @param  sAlarm Pointer to Date structure
   * @param  Alarm Specifies the Alarm.
   *          This parameter can be one of the following values:
-  *             @arg RTC_ALARM_A: AlarmA
-  *             @arg RTC_ALARM_B: AlarmB
+  *            @arg RTC_ALARM_A: Alarm A
+  *            @arg RTC_ALARM_B: Alarm B
   * @param  Format Specifies the format of the entered parameters.
   *          This parameter can be one of the following values:
   *             @arg RTC_FORMAT_BIN: Binary data format
@@ -1528,19 +1478,19 @@
   */
 HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format)
 {
-  uint32_t tmpreg = 0U, subsecondtmpreg = 0U;
+  uint32_t tmpreg = 0U;
+  uint32_t subsecondtmpreg = 0U;
 
   /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
   assert_param(IS_RTC_ALARM(Alarm));
 
-  if(Alarm == RTC_ALARM_A)
+  if (Alarm == RTC_ALARM_A)
   {
-    /* AlarmA */
     sAlarm->Alarm = RTC_ALARM_A;
 
     tmpreg = (uint32_t)(hrtc->Instance->ALRMAR);
-    subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMASSR ) & RTC_ALRMASSR_SS);
+    subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMASSR) & RTC_ALRMASSR_SS);
   }
   else
   {
@@ -1551,67 +1501,67 @@
   }
 
   /* Fill the structure with the read parameters */
-  sAlarm->AlarmTime.Hours = (uint32_t)((tmpreg & (RTC_ALRMAR_HT | RTC_ALRMAR_HU)) >> 16U);
-  sAlarm->AlarmTime.Minutes = (uint32_t)((tmpreg & (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU)) >> 8U);
-  sAlarm->AlarmTime.Seconds = (uint32_t)(tmpreg & (RTC_ALRMAR_ST | RTC_ALRMAR_SU));
-  sAlarm->AlarmTime.TimeFormat = (uint32_t)((tmpreg & RTC_ALRMAR_PM) >> 16U);
+  sAlarm->AlarmTime.Hours      = (uint8_t) ((tmpreg & (RTC_ALRMAR_HT  | RTC_ALRMAR_HU))  >> RTC_ALRMAR_HU_Pos);
+  sAlarm->AlarmTime.Minutes    = (uint8_t) ((tmpreg & (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU)) >> RTC_ALRMAR_MNU_Pos);
+  sAlarm->AlarmTime.Seconds    = (uint8_t) ( tmpreg & (RTC_ALRMAR_ST  | RTC_ALRMAR_SU));
+  sAlarm->AlarmTime.TimeFormat = (uint8_t) ((tmpreg & RTC_ALRMAR_PM)                     >> RTC_TR_PM_Pos);
   sAlarm->AlarmTime.SubSeconds = (uint32_t) subsecondtmpreg;
-  sAlarm->AlarmDateWeekDay = (uint32_t)((tmpreg & (RTC_ALRMAR_DT | RTC_ALRMAR_DU)) >> 24U);
-  sAlarm->AlarmDateWeekDaySel = (uint32_t)(tmpreg & RTC_ALRMAR_WDSEL);
-  sAlarm->AlarmMask = (uint32_t)(tmpreg & RTC_ALARMMASK_ALL);
+  sAlarm->AlarmDateWeekDay     = (uint8_t) ((tmpreg & (RTC_ALRMAR_DT  | RTC_ALRMAR_DU))  >> RTC_ALRMAR_DU_Pos);
+  sAlarm->AlarmDateWeekDaySel  = (uint32_t) (tmpreg & RTC_ALRMAR_WDSEL);
+  sAlarm->AlarmMask            = (uint32_t) (tmpreg & RTC_ALARMMASK_ALL);
 
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
-    sAlarm->AlarmTime.Hours = RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours);
+    sAlarm->AlarmTime.Hours   = RTC_Bcd2ToByte(sAlarm->AlarmTime.Hours);
     sAlarm->AlarmTime.Minutes = RTC_Bcd2ToByte(sAlarm->AlarmTime.Minutes);
     sAlarm->AlarmTime.Seconds = RTC_Bcd2ToByte(sAlarm->AlarmTime.Seconds);
-    sAlarm->AlarmDateWeekDay = RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay);
+    sAlarm->AlarmDateWeekDay  = RTC_Bcd2ToByte(sAlarm->AlarmDateWeekDay);
   }
 
   return HAL_OK;
 }
 
 /**
-  * @brief  This function handles Alarm interrupt request.
+  * @brief  Handles Alarm interrupt request.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval None
   */
-void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef* hrtc)
+void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
 {
-  /* Get the AlarmA interrupt source enable status */
-  if(__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRA) != (uint32_t)RESET)
+  /* Get the Alarm A interrupt source enable status */
+  if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRA) != 0U)
   {
-    /* Get the pending status of the AlarmA Interrupt */
-    if(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) != (uint32_t)RESET)
+    /* Get the pending status of the Alarm A Interrupt */
+    if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) != 0U)
     {
-      /* AlarmA callback */
-    #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      /* Alarm A callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
       hrtc->AlarmAEventCallback(hrtc);
-    #else
+#else
       HAL_RTC_AlarmAEventCallback(hrtc);
-    #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
-      /* Clear the AlarmA interrupt pending bit */
-      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc,RTC_FLAG_ALRAF);
+      /* Clear the Alarm A interrupt pending bit */
+      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
     }
   }
 
-  /* Get the AlarmB interrupt source enable status */
-  if(__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRB) != (uint32_t)RESET)
+  /* Get the Alarm B interrupt source enable status */
+  if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRB) != 0U)
   {
-    /* Get the pending status of the AlarmB Interrupt */
-    if(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) != (uint32_t)RESET)
+    /* Get the pending status of the Alarm B Interrupt */
+    if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) != 0U)
     {
-      /* AlarmB callback */
-    #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
+      /* Alarm B callback */
+#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
       hrtc->AlarmBEventCallback(hrtc);
-    #else
+#else
       HAL_RTCEx_AlarmBEventCallback(hrtc);
-    #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
-      /* Clear the AlarmB interrupt pending bit */
-      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc,RTC_FLAG_ALRBF);
+      /* Clear the Alarm B interrupt pending bit */
+      __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
     }
   }
 
@@ -1632,13 +1582,14 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function should not be modified, when the callback is needed,
-            the HAL_RTC_AlarmAEventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTC_AlarmAEventCallback could be implemented in the user file
    */
 }
 
 /**
-  * @brief  This function handles AlarmA Polling request.
+  * @brief  Handles Alarm A Polling request.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -1648,14 +1599,15 @@
 {
   uint32_t tickstart = 0U;
 
-    /* Get tick */
-    tickstart = HAL_GetTick();
+  /* Get tick */
+  tickstart = HAL_GetTick();
 
-  while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) == RESET)
+  /* Wait till RTC ALRAF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) == 0U)
   {
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
         return HAL_TIMEOUT;
@@ -1663,7 +1615,7 @@
     }
   }
 
-  /* Clear the Alarm interrupt pending bit */
+  /* Clear the Alarm flag */
   __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
 
   /* Change RTC state */
@@ -1677,8 +1629,8 @@
   */
 
 /** @defgroup RTC_Exported_Functions_Group4 Peripheral Control functions
- *  @brief   Peripheral Control functions
- *
+  * @brief    Peripheral Control functions
+  *
 @verbatim
  ===============================================================================
                      ##### Peripheral Control functions #####
@@ -1686,6 +1638,7 @@
     [..]
     This subsection provides functions allowing to
       (+) Wait for RTC Time and Date Synchronization
+      (+) Manage RTC Summer or Winter time change
 
 @endverbatim
   * @{
@@ -1697,7 +1650,7 @@
   * @note   The RTC Resynchronization mode is write protected, use the
   *         __HAL_RTC_WRITEPROTECTION_DISABLE() before calling this function.
   * @note   To read the calendar through the shadow registers after Calendar
-  *         initialization, calendar update or after wake-up from low power modes
+  *         initialization, calendar update or after wakeup from low power modes
   *         the software must first clear the RSF flag.
   *         The software must then wait until it is set again before reading
   *         the calendar, which means that the calendar registers have been
@@ -1706,20 +1659,20 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
 {
   uint32_t tickstart = 0U;
 
   /* Clear RSF flag */
   hrtc->Instance->ISR &= (uint32_t)RTC_RSF_MASK;
 
-    /* Get tick */
-    tickstart = HAL_GetTick();
+  /* Get tick */
+  tickstart = HAL_GetTick();
 
   /* Wait the registers to be synchronised */
-  while((hrtc->Instance->ISR & RTC_ISR_RSF) == (uint32_t)RESET)
+  while ((hrtc->Instance->ISR & RTC_ISR_RSF) == 0U)
   {
-    if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
     {
       return HAL_TIMEOUT;
     }
@@ -1729,12 +1682,77 @@
 }
 
 /**
+  * @brief  Daylight Saving Time, adds one hour to the calendar in one
+  *         single operation without going through the initialization procedure.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_ADD1H);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, subtracts one hour from the calendar in one
+  *         single operation without going through the initialization procedure.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_SUB1H);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, sets the store operation bit.
+  * @note   It can be used by the software in order to memorize the DST status.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  SET_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, clears the store operation bit.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval None
+  */
+void HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+  CLEAR_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+}
+
+/**
+  * @brief  Daylight Saving Time, reads the store operation bit.
+  * @param  hrtc RTC handle
+  * @retval operation see RTC_StoreOperation_Definitions
+  */
+uint32_t HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc)
+{
+  return READ_BIT(hrtc->Instance->CR, RTC_CR_BKP);
+}
+
+/**
   * @}
   */
 
 /** @defgroup RTC_Exported_Functions_Group5 Peripheral State functions
- *  @brief   Peripheral State functions
- *
+  * @brief    Peripheral State functions
+  *
 @verbatim
  ===============================================================================
                      ##### Peripheral State functions #####
@@ -1752,76 +1770,24 @@
   *                the configuration information for RTC.
   * @retval HAL state
   */
-HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef* hrtc)
+HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc)
 {
   return hrtc->State;
 }
 
 /**
-  * @brief  Daylight Saving Time, Add one hour to the calendar in one single operation
-  *         without going through the initialization procedure.
-  * @param  hrtc RTC handle
-  * @retval None
+  * @}
   */
-void HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc)
-{
-  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
-  SET_BIT(hrtc->Instance->CR, RTC_CR_ADD1H);
-  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-}
 
-/**
-  * @brief  Daylight Saving Time, Substract one hour from the calendar in one
-  *         single operation without going through the initialization procedure.
-  * @param  hrtc RTC handle
-  * @retval None
-  */
-void HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc)
-{
-  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
-  SET_BIT(hrtc->Instance->CR, RTC_CR_SUB1H);
-  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-}
-
-/**
-  * @brief  Daylight Saving Time, Set the store operation bit.
-  * @note   It can be used by the software in order to memorize the DST status.
-  * @param  hrtc RTC handle
-  * @retval None
-  */
-void HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc)
-{
-  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
-  SET_BIT(hrtc->Instance->CR, RTC_CR_BKP);
-  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-}
-
-/**
-  * @brief  Daylight Saving Time, Clear the store operation bit.
-  * @param  hrtc RTC handle
-  * @retval None
-  */
-void HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc)
-{
-  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
-  CLEAR_BIT(hrtc->Instance->CR, RTC_CR_BKP);
-  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-}
-
-/**
-  * @brief  Daylight Saving Time, Read the store operation bit.
-  * @param  hrtc RTC handle
-  * @retval operation see RTC_StoreOperation_Definitions
-  */
-uint32_t HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc)
-{
-  return READ_BIT(hrtc->Instance->CR, RTC_CR_BKP);
-}
 
 /**
   * @}
   */
 
+/** @addtogroup RTC_Private_Functions
+  * @{
+  */
+
 /**
   * @brief  Enters the RTC Initialization mode.
   * @note   The RTC Initialization mode is write protected, use the
@@ -1830,61 +1796,90 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
 {
   uint32_t tickstart = 0U;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  /* Check if the Initialization mode is set */
-  if((hrtc->Instance->ISR & RTC_ISR_INITF) == (uint32_t)RESET)
+  /* Check that Initialization mode is not already set */
+  if (READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U)
   {
-    /* Set the Initialization mode */
-    hrtc->Instance->ISR = (uint32_t)RTC_INIT_MASK;
+    /* Set INIT bit to enter Initialization mode */
+    SET_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
 
     /* Get tick */
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC is in INIT state and if Time out is reached exit */
-    while((hrtc->Instance->ISR & RTC_ISR_INITF) == (uint32_t)RESET)
+    /* Wait till RTC is in INIT state and if timeout is reached exit */
+    while ((READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U) && (status != HAL_ERROR))
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
-        return HAL_TIMEOUT;
+        /* Set RTC state */
+        hrtc->State = HAL_RTC_STATE_ERROR;
+        status = HAL_ERROR;
       }
     }
   }
 
-  return HAL_OK;
+  return status;
 }
 
-
 /**
-  * @brief  Converts a 2 digit decimal to BCD format.
-  * @param  Value Byte to be converted
-  * @retval Converted byte
+  * @brief  Exits the RTC Initialization mode.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @retval HAL status
   */
-uint8_t RTC_ByteToBcd2(uint8_t Value)
+HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
 {
-  uint32_t bcdhigh = 0U;
+  HAL_StatusTypeDef status = HAL_OK;
 
-  while(Value >= 10U)
+  /* Clear INIT bit to exit Initialization mode */
+  CLEAR_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
+
+  /* If CR_BYPSHAD bit = 0, wait for synchro */
+  if (READ_BIT(hrtc->Instance->CR, RTC_CR_BYPSHAD) == 0U)
   {
-    bcdhigh++;
-    Value -= 10U;
+    if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+    {
+      /* Set RTC state */
+      hrtc->State = HAL_RTC_STATE_ERROR;
+      status = HAL_ERROR;
+    }
   }
 
-  return  ((uint8_t)(bcdhigh << 4U) | Value);
+  return status;
 }
 
 /**
-  * @brief  Converts from 2 digit BCD to Binary.
-  * @param  Value BCD value to be converted
+  * @brief  Converts a 2-digit number from decimal to BCD format.
+  * @param  number decimal-formatted number (from 0 to 99) to be converted
+  * @retval Converted byte
+  */
+uint8_t RTC_ByteToBcd2(uint8_t number)
+{
+  uint8_t bcdhigh = 0U;
+
+  while (number >= 10U)
+  {
+    bcdhigh++;
+    number -= 10U;
+  }
+
+  return ((uint8_t)(bcdhigh << 4U) | number);
+}
+
+/**
+  * @brief  Converts a 2-digit number from BCD to decimal format.
+  * @param  number BCD-formatted number (from 00 to 99) to be converted
   * @retval Converted word
   */
-uint8_t RTC_Bcd2ToByte(uint8_t Value)
+uint8_t RTC_Bcd2ToByte(uint8_t number)
 {
-  uint32_t tmp = 0U;
-  tmp = ((uint8_t)(Value & (uint8_t)0xF0) >> (uint8_t)0x4) * 10;
-  return (tmp + (Value & (uint8_t)0x0F));
+  uint8_t tmp = 0U;
+  tmp = ((uint8_t)(number & (uint8_t)0xF0) >> (uint8_t)0x4) * 10;
+  return (tmp + (number & (uint8_t)0x0F));
 }
 
 /**
@@ -1899,5 +1894,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_rtc_ex.c b/Src/stm32f4xx_hal_rtc_ex.c
index 8e07b4e..eb5708f 100644
--- a/Src/stm32f4xx_hal_rtc_ex.c
+++ b/Src/stm32f4xx_hal_rtc_ex.c
@@ -2,58 +2,76 @@
   ******************************************************************************
   * @file    stm32f4xx_hal_rtc_ex.c
   * @author  MCD Application Team
-  * @brief   RTC HAL module driver.
+  * @brief   Extended RTC HAL module driver.
   *          This file provides firmware functions to manage the following
-  *          functionalities of the Real Time Clock (RTC) Extension peripheral:
-  *           + RTC Time Stamp functions
+  *          functionalities of the Real-Time Clock (RTC) Extended peripheral:
+  *           + RTC Timestamp functions
   *           + RTC Tamper functions
-  *           + RTC Wake-up functions
-  *           + Extension Control functions
-  *           + Extension RTC features functions
+  *           + RTC Wakeup functions
+  *           + Extended Control functions
+  *           + Extended RTC features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
-                  ##### How to use this driver #####
+                        ##### How to use this driver #####
   ==============================================================================
   [..]
     (+) Enable the RTC domain access.
     (+) Configure the RTC Prescaler (Asynchronous and Synchronous) and RTC hour
         format using the HAL_RTC_Init() function.
 
-  *** RTC Wake-up configuration ***
+  *** RTC Wakeup configuration ***
   ================================
   [..]
-    (+) To configure the RTC Wake-up Clock source and Counter use the HAL_RTCEx_SetWakeUpTimer()
-        function. You can also configure the RTC Wake-up timer in interrupt mode
-        using the HAL_RTCEx_SetWakeUpTimer_IT() function.
-    (+) To read the RTC Wake-up Counter register, use the HAL_RTCEx_GetWakeUpTimer()
+    (+) To configure the RTC Wakeup Clock source and Counter use the
+        HAL_RTCEx_SetWakeUpTimer() function.
+        You can also configure the RTC Wakeup timer in interrupt mode using the
+        HAL_RTCEx_SetWakeUpTimer_IT() function.
+    (+) To read the RTC Wakeup Counter register, use the HAL_RTCEx_GetWakeUpTimer()
         function.
 
-  *** TimeStamp configuration ***
+  *** Timestamp configuration ***
   ===============================
   [..]
-    (+) Configure the RTC_AFx trigger and enable the RTC TimeStamp using the
-        HAL_RTCEx_SetTimeStamp() function. You can also configure the RTC TimeStamp with
-        interrupt mode using the HAL_RTCEx_SetTimeStamp_IT() function.
-    (+) To read the RTC TimeStamp Time and Date register, use the HAL_RTCEx_GetTimeStamp()
-        function.
-    (+) The TIMESTAMP alternate function can be mapped either to RTC_AF1 (PC13)
-        or RTC_AF2 (PI8 or PA0 only for STM32F446xx devices) depending on the value of TSINSEL bit in
-        RTC_TAFCR register. The corresponding pin is also selected by HAL_RTCEx_SetTimeStamp()
-        or HAL_RTCEx_SetTimeStamp_IT() function.
+    (+) To configure the RTC Timestamp use the HAL_RTCEx_SetTimeStamp() function.
+        You can also configure the RTC Timestamp with interrupt mode using the
+        HAL_RTCEx_SetTimeStamp_IT() function.
+    (+) To read the RTC Timestamp Time and Date register, use the
+        HAL_RTCEx_GetTimeStamp() function.
+    (+) The Timestamp alternate function can be mapped either to RTC_AF1 (PC13)
+        or RTC_AF2 (PI8) depending on the value of TSINSEL bit in RTC_TAFCR
+        register.
+        For STM32F446xx devices RTC_AF2 corresponds to pin PA0 and not to pin PI8.
+        The corresponding pin is also selected by HAL_RTCEx_SetTimeStamp()
+        or HAL_RTCEx_SetTimeStamp_IT() functions.
 
   *** Tamper configuration ***
   ============================
   [..]
-    (+) Enable the RTC Tamper and configure the Tamper filter count, trigger Edge
-        or Level according to the Tamper filter (if equal to 0 Edge else Level)
-        value, sampling frequency, precharge or discharge and Pull-UP using the
-        HAL_RTCEx_SetTamper() function. You can configure RTC Tamper in interrupt
-        mode using HAL_RTCEx_SetTamper_IT() function.
+    (+) To Enable the RTC Tamper and configure the Tamper filter count, trigger
+        Edge or Level according to the Tamper filter value (if equal to 0 Edge
+        else Level), sampling frequency, precharge or discharge and Pull-UP use
+        the HAL_RTCEx_SetTamper() function.
+        You can configure RTC Tamper in interrupt mode using HAL_RTCEx_SetTamper_IT()
+        function.
     (+) The TAMPER1 alternate function can be mapped either to RTC_AF1 (PC13)
-        or RTC_AF2 (PI8 or PA0 only for STM32F446xx devices) depending on the value of TAMP1INSEL bit in
-        RTC_TAFCR register. The corresponding pin is also selected by HAL_RTCEx_SetTamper()
-        or HAL_RTCEx_SetTamper_IT() function.
+        or RTC_AF2 (PI8) depending on the value of TAMP1INSEL bit in RTC_TAFCR
+        register.
+        The corresponding pin is also selected by HAL_RTCEx_SetTamper()
+        or HAL_RTCEx_SetTamper_IT() functions.
+    (+) The TAMPER2 alternate function is mapped to RTC_AF2 (PI8).
+        For STM32F446xx devices RTC_AF2 corresponds to pin PA0 and not to pin PI8.
 
   *** Backup Data Registers configuration ***
   ===========================================
@@ -63,18 +81,44 @@
     (+) To read the RTC Backup Data registers, use the HAL_RTCEx_BKUPRead()
         function.
 
-   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  *** Coarse Digital Calibration configuration ***
+  ================================================
+  [..]
+    (+) The Coarse Digital Calibration can be used to compensate crystal inaccuracy
+        by setting the DCS bit in RTC_CALIBR register.
+    (+) When positive calibration is enabled (DCS = ‘0’), 2 asynchronous prescaler
+        clock cycles are added every minute during 2xDC minutes.
+        This causes the calendar to be updated sooner, thereby adjusting the
+        effective RTC frequency to be a bit higher.
+    (+) When negative calibration is enabled (DCS = ‘1’), 1 asynchronous prescaler
+        clock cycle is removed every minute during 2xDC minutes.
+        This causes the calendar to be updated later, thereby adjusting the
+        effective RTC frequency to be a bit lower.
+    (+) DC is configured through bits DC[4:0] of RTC_CALIBR register. This number
+        ranges from 0 to 31 corresponding to a time interval (2xDC) ranging from
+        0 to 62.
+    (+) In order to measure the clock deviation, a 512 Hz clock is output for
+        calibration.
+    (+) The RTC Coarse Digital Calibration value and sign can be calibrated using
+        the HAL_RTCEx_SetCoarseCalib() function.
+
+  *** Smooth Digital Calibration configuration ***
+  ================================================
+  [..]
+    (+) RTC frequency can be digitally calibrated with a resolution of about
+        0.954 ppm with a range from -487.1 ppm to +488.5 ppm.
+        The correction of the frequency is performed using a series of small
+        adjustments (adding and/or subtracting individual RTCCLK pulses).
+    (+) The smooth digital calibration is performed during a cycle of about 2^20
+        RTCCLK pulses (or 32 seconds) when the input frequency is 32,768 Hz.
+        This cycle is maintained by a 20-bit counter clocked by RTCCLK.
+    (+) The smooth calibration register (RTC_CALR) specifies the number of RTCCLK
+        clock cycles to be masked during the 32-second cycle.
+    (+) The RTC Smooth Digital Calibration value and the corresponding calibration
+        cycle period (32s, 16s, or 8s) can be calibrated using the
+        HAL_RTCEx_SetSmoothCalib() function.
+
+  @endverbatim
   ******************************************************************************
   */
 
@@ -86,7 +130,7 @@
   */
 
 /** @defgroup RTCEx RTCEx
-  * @brief RTC HAL module driver
+  * @brief    RTC Extended HAL module driver
   * @{
   */
 
@@ -97,150 +141,90 @@
 /* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
 
 /** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
   * @{
   */
 
-/** @defgroup RTCEx_Exported_Functions_Group1 RTC TimeStamp and Tamper functions
- *  @brief   RTC TimeStamp and Tamper functions
- *
+/** @defgroup RTCEx_Exported_Functions_Group1 RTC Timestamp and Tamper functions
+  * @brief    RTC Timestamp and Tamper functions
+  *
 @verbatim
  ===============================================================================
-                 ##### RTC TimeStamp and Tamper functions #####
+                 ##### RTC Timestamp and Tamper functions #####
  ===============================================================================
 
- [..] This section provides functions allowing to configure TimeStamp feature
+ [..] This section provides functions allowing to configure Timestamp feature
 
 @endverbatim
   * @{
   */
 
 /**
-  * @brief  Sets TimeStamp.
-  * @note   This API must be called before enabling the TimeStamp feature.
+  * @brief  Sets Timestamp.
+  * @note   This API must be called before enabling the Timestamp feature.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
-  * @param  TimeStampEdge Specifies the pin edge on which the TimeStamp is
+  * @param  RTC_TimeStampEdge Specifies the pin edge on which the Timestamp is
   *         activated.
   *          This parameter can be one of the following values:
-  *             @arg RTC_TIMESTAMPEDGE_RISING: the Time stamp event occurs on the
-  *                                        rising edge of the related pin.
-  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Time stamp event occurs on the
-  *                                         falling edge of the related pin.
-  * @param  RTC_TimeStampPin specifies the RTC TimeStamp Pin.
+  *             @arg RTC_TIMESTAMPEDGE_RISING: the Timestamp event occurs on
+  *                                        the rising edge of the related pin.
+  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Timestamp event occurs on
+  *                                        the falling edge of the related pin.
+  * @param  RTC_TimeStampPin Specifies the RTC Timestamp Pin.
   *          This parameter can be one of the following values:
-  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC TimeStamp Pin.
-  *             @arg RTC_TIMESTAMPPIN_POS1: PI8/PA0 is selected as RTC TimeStamp Pin.
-  *             (not applicable in the case of STM32F412xx, STM32F413xx and STM32F423xx devices)
-  *             (PI8 for all STM32 devices except for STM32F446xx devices the PA0 is used)
-  *             @arg RTC_TIMESTAMPPIN_PA0: PA0 is selected as RTC TimeStamp Pin only for STM32F446xx devices
+  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC Timestamp Pin.
+  *             @arg RTC_TIMESTAMPPIN_POS1: PI8 is selected as RTC Timestamp Pin.
+  * @note RTC_TIMESTAMPPIN_POS1 corresponds to pin PA0 in the case of
+  *       STM32F446xx devices.
+  * @note RTC_TIMESTAMPPIN_POS1 is not applicable to the following list of devices:
+  *       STM32F412xx, STM32F413xx and STM32F423xx.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin)
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
 {
   uint32_t tmpreg = 0U;
 
   /* Check the parameters */
-  assert_param(IS_TIMESTAMP_EDGE(TimeStampEdge));
+  assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
   assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
 
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
+  /* Change RTC state to BUSY */
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  /* Get the RTC_CR register and clear the bits to be configured */
-  tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
-
-  tmpreg|= TimeStampEdge;
-
-  /* Disable the write protection for RTC registers */
-  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
-
   hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
   hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
 
-  /* Configure the Time Stamp TSEDGE and Enable bits */
-  hrtc->Instance->CR = (uint32_t)tmpreg;
-
-  __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
-
-  /* Enable the write protection for RTC registers */
-  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-  /* Change RTC state */
-  hrtc->State = HAL_RTC_STATE_READY;
-
-  /* Process Unlocked */
-  __HAL_UNLOCK(hrtc);
-
-  return HAL_OK;
-}
-
-/**
-  * @brief  Sets TimeStamp with Interrupt.
-  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
-  *                the configuration information for RTC.
-  * @note   This API must be called before enabling the TimeStamp feature.
-  * @param  TimeStampEdge Specifies the pin edge on which the TimeStamp is
-  *         activated.
-  *          This parameter can be one of the following values:
-  *             @arg RTC_TIMESTAMPEDGE_RISING: the Time stamp event occurs on the
-  *                                        rising edge of the related pin.
-  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Time stamp event occurs on the
-  *                                         falling edge of the related pin.
-  * @param  RTC_TimeStampPin Specifies the RTC TimeStamp Pin.
-  *          This parameter can be one of the following values:
-  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC TimeStamp Pin.
-  *             @arg RTC_TIMESTAMPPIN_PI8: PI8 is selected as RTC TimeStamp Pin. (not applicable in the case of STM32F446xx, STM32F412xx, STM32F413xx and STM32F423xx devices)
-  *             @arg RTC_TIMESTAMPPIN_PA0: PA0 is selected as RTC TimeStamp Pin only for STM32F446xx devices
-  * @retval HAL status
-  */
-HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin)
-{
-  uint32_t tmpreg = 0U;
-
-  /* Check the parameters */
-  assert_param(IS_TIMESTAMP_EDGE(TimeStampEdge));
-  assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
-
-  /* Process Locked */
-  __HAL_LOCK(hrtc);
-
-  hrtc->State = HAL_RTC_STATE_BUSY;
-
   /* Get the RTC_CR register and clear the bits to be configured */
   tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
 
-  tmpreg |= TimeStampEdge;
+  /* Configure the Timestamp TSEDGE bit */
+  tmpreg |= RTC_TimeStampEdge;
 
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Configure the Time Stamp TSEDGE and Enable bits */
+  /* Copy the desired configuration into the CR register */
   hrtc->Instance->CR = (uint32_t)tmpreg;
 
-  hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
-  hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
-
   /* Clear RTC Timestamp flag */
   __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
 
+  /* Clear RTC Timestamp overrun Flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+  /* Enable the Timestamp saving */
   __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
 
-  /* Enable IT timestamp */
-  __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc,RTC_IT_TS);
-
-  /* RTC timestamp Interrupt Configuration: EXTI configuration */
-  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
-
-  EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT;
-
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
+  /* Change RTC state back to READY */
   hrtc->State = HAL_RTC_STATE_READY;
 
   /* Process Unlocked */
@@ -250,7 +234,86 @@
 }
 
 /**
-  * @brief  Deactivates TimeStamp.
+  * @brief  Sets Timestamp with Interrupt.
+  * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
+  *                the configuration information for RTC.
+  * @note   This API must be called before enabling the Timestamp feature.
+  * @param  RTC_TimeStampEdge Specifies the pin edge on which the Timestamp is
+  *         activated.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPEDGE_RISING: the Timestamp event occurs on
+  *                                        the rising edge of the related pin.
+  *             @arg RTC_TIMESTAMPEDGE_FALLING: the Timestamp event occurs on
+  *                                        the falling edge of the related pin.
+  * @param  RTC_TimeStampPin Specifies the RTC Timestamp Pin.
+  *          This parameter can be one of the following values:
+  *             @arg RTC_TIMESTAMPPIN_DEFAULT: PC13 is selected as RTC Timestamp Pin.
+  *             @arg RTC_TIMESTAMPPIN_POS1: PI8 is selected as RTC Timestamp Pin.
+  * @note RTC_TIMESTAMPPIN_POS1 corresponds to pin PA0 in the case of
+  *       STM32F446xx devices.
+  * @note RTC_TIMESTAMPPIN_POS1 is not applicable to the following list of devices:
+  *       STM32F412xx, STM32F413xx and STM32F423xx.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
+{
+  uint32_t tmpreg = 0U;
+
+  /* Check the parameters */
+  assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
+  assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+
+  /* Change RTC state to BUSY */
+  hrtc->State = HAL_RTC_STATE_BUSY;
+
+  hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
+  hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
+
+  /* Get the RTC_CR register and clear the bits to be configured */
+  tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
+
+  /* Configure the Timestamp TSEDGE bit */
+  tmpreg |= RTC_TimeStampEdge;
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+
+  /* Copy the desired configuration into the CR register */
+  hrtc->Instance->CR = (uint32_t)tmpreg;
+
+  /* Clear RTC Timestamp flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
+
+  /* Clear RTC Timestamp overrun Flag */
+  __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+  /* Enable the Timestamp saving */
+  __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
+
+  /* Enable IT Timestamp */
+  __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc, RTC_IT_TS);
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+  /* RTC Timestamp Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
+
+  /* Change RTC state back to READY */
+  hrtc->State = HAL_RTC_STATE_READY;
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Deactivates Timestamp.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval HAL status
@@ -273,7 +336,7 @@
   /* Get the RTC_CR register and clear the bits to be configured */
   tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
 
-  /* Configure the Time Stamp TSEDGE and Enable bits */
+  /* Configure the Timestamp TSEDGE and Enable bits */
   hrtc->Instance->CR = (uint32_t)tmpreg;
 
   /* Enable the write protection for RTC registers */
@@ -288,70 +351,71 @@
 }
 
 /**
-  * @brief  Gets the RTC TimeStamp value.
+  * @brief  Gets the RTC Timestamp value.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  sTimeStamp Pointer to Time structure
   * @param  sTimeStampDate Pointer to Date structure
   * @param  Format specifies the format of the entered parameters.
   *          This parameter can be one of the following values:
-  *             RTC_FORMAT_BIN: Binary data format
-  *             RTC_FORMAT_BCD: BCD data format
+  *             @arg RTC_FORMAT_BIN: Binary data format
+  *             @arg RTC_FORMAT_BCD: BCD data format
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef* sTimeStamp, RTC_DateTypeDef* sTimeStampDate, uint32_t Format)
+HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
 {
-  uint32_t tmptime = 0U, tmpdate = 0U;
+  uint32_t tmptime = 0U;
+  uint32_t tmpdate = 0U;
 
   /* Check the parameters */
   assert_param(IS_RTC_FORMAT(Format));
 
-  /* Get the TimeStamp time and date registers values */
+  /* Get the Timestamp time and date registers values */
   tmptime = (uint32_t)(hrtc->Instance->TSTR & RTC_TR_RESERVED_MASK);
   tmpdate = (uint32_t)(hrtc->Instance->TSDR & RTC_DR_RESERVED_MASK);
 
   /* Fill the Time structure fields with the read parameters */
-  sTimeStamp->Hours = (uint8_t)((tmptime & (RTC_TR_HT | RTC_TR_HU)) >> 16U);
-  sTimeStamp->Minutes = (uint8_t)((tmptime & (RTC_TR_MNT | RTC_TR_MNU)) >> 8U);
-  sTimeStamp->Seconds = (uint8_t)(tmptime & (RTC_TR_ST | RTC_TR_SU));
-  sTimeStamp->TimeFormat = (uint8_t)((tmptime & (RTC_TR_PM)) >> 16U);
+  sTimeStamp->Hours      = (uint8_t)((tmptime & (RTC_TSTR_HT  | RTC_TSTR_HU))  >> RTC_TSTR_HU_Pos);
+  sTimeStamp->Minutes    = (uint8_t)((tmptime & (RTC_TSTR_MNT | RTC_TSTR_MNU)) >> RTC_TSTR_MNU_Pos);
+  sTimeStamp->Seconds    = (uint8_t)((tmptime & (RTC_TSTR_ST  | RTC_TSTR_SU))  >> RTC_TSTR_SU_Pos);
+  sTimeStamp->TimeFormat = (uint8_t)((tmptime & (RTC_TSTR_PM))                 >> RTC_TSTR_PM_Pos);
   sTimeStamp->SubSeconds = (uint32_t) hrtc->Instance->TSSSR;
 
   /* Fill the Date structure fields with the read parameters */
-  sTimeStampDate->Year = 0U;
-  sTimeStampDate->Month = (uint8_t)((tmpdate & (RTC_DR_MT | RTC_DR_MU)) >> 8U);
-  sTimeStampDate->Date = (uint8_t)(tmpdate & (RTC_DR_DT | RTC_DR_DU));
-  sTimeStampDate->WeekDay = (uint8_t)((tmpdate & (RTC_DR_WDU)) >> 13U);
+  sTimeStampDate->Year    = 0U;
+  sTimeStampDate->Month   = (uint8_t)((tmpdate & (RTC_TSDR_MT | RTC_TSDR_MU)) >> RTC_TSDR_MU_Pos);
+  sTimeStampDate->Date    = (uint8_t)((tmpdate & (RTC_TSDR_DT | RTC_TSDR_DU)) >> RTC_TSDR_DU_Pos);
+  sTimeStampDate->WeekDay = (uint8_t)((tmpdate & (RTC_TSDR_WDU))              >> RTC_TSDR_WDU_Pos);
 
   /* Check the input parameters format */
-  if(Format == RTC_FORMAT_BIN)
+  if (Format == RTC_FORMAT_BIN)
   {
-    /* Convert the TimeStamp structure parameters to Binary format */
-    sTimeStamp->Hours = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Hours);
+    /* Convert the Timestamp structure parameters to Binary format */
+    sTimeStamp->Hours   = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Hours);
     sTimeStamp->Minutes = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Minutes);
     sTimeStamp->Seconds = (uint8_t)RTC_Bcd2ToByte(sTimeStamp->Seconds);
 
     /* Convert the DateTimeStamp structure parameters to Binary format */
-    sTimeStampDate->Month = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Month);
-    sTimeStampDate->Date = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Date);
+    sTimeStampDate->Month   = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Month);
+    sTimeStampDate->Date    = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->Date);
     sTimeStampDate->WeekDay = (uint8_t)RTC_Bcd2ToByte(sTimeStampDate->WeekDay);
   }
 
-  /* Clear the TIMESTAMP Flag */
+  /* Clear the Timestamp Flag */
   __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
 
   return HAL_OK;
 }
 
 /**
-  * @brief  Sets Tamper
-  * @note   By calling this API we disable the tamper interrupt for all tampers.
+  * @brief  Sets Tamper.
+  * @note   By calling this API the tamper global interrupt will be disabled.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  sTamper Pointer to Tamper Structure.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper)
+HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
 {
   uint32_t tmpreg = 0U;
 
@@ -360,6 +424,7 @@
   assert_param(IS_RTC_TAMPER_PIN(sTamper->PinSelection));
   assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->Trigger));
   assert_param(IS_RTC_TAMPER_FILTER(sTamper->Filter));
+  assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->Filter, sTamper->Trigger));
   assert_param(IS_RTC_TAMPER_SAMPLING_FREQ(sTamper->SamplingFrequency));
   assert_param(IS_RTC_TAMPER_PRECHARGE_DURATION(sTamper->PrechargeDuration));
   assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->TamperPullUp));
@@ -370,20 +435,46 @@
 
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  if(sTamper->Trigger != RTC_TAMPERTRIGGER_RISINGEDGE)
+  /* Copy control register into temporary variable */
+  tmpreg = hrtc->Instance->TAFCR;
+
+  /* Enable selected tamper */
+  tmpreg |= (sTamper->Tamper);
+
+  /* Configure the tamper trigger bit (this bit is just on the right of the
+       tamper enable bit, hence the one-time right shift before updating it) */
+  if (sTamper->Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
   {
-    sTamper->Trigger = (uint32_t)(sTamper->Tamper << 1U);
+    /* Set the tamper trigger bit (case of falling edge or high level) */
+    tmpreg |= (uint32_t)(sTamper->Tamper << 1U);
+  }
+  else
+  {
+    /* Clear the tamper trigger bit (case of rising edge or low level) */
+    tmpreg &= (uint32_t)~(sTamper->Tamper << 1U);
   }
 
-  tmpreg = ((uint32_t)sTamper->Tamper | (uint32_t)sTamper->PinSelection | (uint32_t)sTamper->Trigger  |\
-            (uint32_t)sTamper->Filter | (uint32_t)sTamper->SamplingFrequency | (uint32_t)sTamper->PrechargeDuration |\
-            (uint32_t)sTamper->TamperPullUp | sTamper->TimeStampOnTamperDetection);
+  /* Clear remaining fields before setting them */
+  tmpreg &= ~(RTC_TAMPERFILTER_MASK              | \
+              RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
+              RTC_TAMPERPRECHARGEDURATION_MASK   | \
+              RTC_TAMPER_PULLUP_MASK             | \
+              RTC_TAFCR_TAMP1INSEL               | \
+              RTC_TIMESTAMPONTAMPERDETECTION_MASK);
 
-  hrtc->Instance->TAFCR &= (uint32_t)~((uint32_t)sTamper->Tamper | (uint32_t)(sTamper->Tamper << 1U) | (uint32_t)RTC_TAFCR_TAMPTS |\
-                                       (uint32_t)RTC_TAFCR_TAMPFREQ | (uint32_t)RTC_TAFCR_TAMPFLT | (uint32_t)RTC_TAFCR_TAMPPRCH |\
-                                       (uint32_t)RTC_TAFCR_TAMPPUDIS | (uint32_t)RTC_TAFCR_TAMPINSEL | (uint32_t)RTC_TAFCR_TAMPIE);
+  /* Set remaining parameters of desired configuration into temporary variable */
+  tmpreg |= ((uint32_t)sTamper->Filter            | \
+             (uint32_t)sTamper->SamplingFrequency | \
+             (uint32_t)sTamper->PrechargeDuration | \
+             (uint32_t)sTamper->TamperPullUp      | \
+             (uint32_t)sTamper->PinSelection      | \
+             (uint32_t)sTamper->TimeStampOnTamperDetection);
 
-  hrtc->Instance->TAFCR |= tmpreg;
+  /* Disable tamper global interrupt in case it is enabled */
+  tmpreg &= (uint32_t)~RTC_TAFCR_TAMPIE;
+
+  /* Copy desired configuration into configuration register */
+  hrtc->Instance->TAFCR = tmpreg;
 
   hrtc->State = HAL_RTC_STATE_READY;
 
@@ -395,13 +486,13 @@
 
 /**
   * @brief  Sets Tamper with interrupt.
-  * @note   By calling this API we force the tamper interrupt for all tampers.
+  * @note   By calling this API the tamper global interrupt will be enabled.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  sTamper Pointer to RTC Tamper.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper)
+HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
 {
   uint32_t tmpreg = 0U;
 
@@ -410,6 +501,7 @@
   assert_param(IS_RTC_TAMPER_PIN(sTamper->PinSelection));
   assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->Trigger));
   assert_param(IS_RTC_TAMPER_FILTER(sTamper->Filter));
+  assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->Filter, sTamper->Trigger));
   assert_param(IS_RTC_TAMPER_SAMPLING_FREQ(sTamper->SamplingFrequency));
   assert_param(IS_RTC_TAMPER_PRECHARGE_DURATION(sTamper->PrechargeDuration));
   assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->TamperPullUp));
@@ -420,40 +512,50 @@
 
   hrtc->State = HAL_RTC_STATE_BUSY;
 
-  /* Configure the tamper trigger */
-  if(sTamper->Trigger != RTC_TAMPERTRIGGER_RISINGEDGE)
+  /* Copy control register into temporary variable */
+  tmpreg = hrtc->Instance->TAFCR;
+
+  /* Enable selected tamper */
+  tmpreg |= (sTamper->Tamper);
+
+  /* Configure the tamper trigger bit (this bit is just on the right of the
+       tamper enable bit, hence the one-time right shift before updating it) */
+  if (sTamper->Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
   {
-    sTamper->Trigger = (uint32_t)(sTamper->Tamper << 1U);
-  }
-
-  tmpreg = ((uint32_t)sTamper->Tamper | (uint32_t)sTamper->PinSelection | (uint32_t)sTamper->Trigger  |\
-            (uint32_t)sTamper->Filter | (uint32_t)sTamper->SamplingFrequency | (uint32_t)sTamper->PrechargeDuration |\
-            (uint32_t)sTamper->TamperPullUp | sTamper->TimeStampOnTamperDetection);
-
-  hrtc->Instance->TAFCR &= (uint32_t)~((uint32_t)sTamper->Tamper | (uint32_t)(sTamper->Tamper << 1U) | (uint32_t)RTC_TAFCR_TAMPTS |\
-                                       (uint32_t)RTC_TAFCR_TAMPFREQ | (uint32_t)RTC_TAFCR_TAMPFLT | (uint32_t)RTC_TAFCR_TAMPPRCH |\
-                                       (uint32_t)RTC_TAFCR_TAMPPUDIS | (uint32_t)RTC_TAFCR_TAMPINSEL);
-
-  hrtc->Instance->TAFCR |= tmpreg;
-
-  /* Configure the Tamper Interrupt in the RTC_TAFCR */
-  hrtc->Instance->TAFCR |= (uint32_t)RTC_TAFCR_TAMPIE;
-
-  if(sTamper->Tamper == RTC_TAMPER_1)
-  {
-    /* Clear RTC Tamper 1 flag */
-    __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
+    /* Set the tamper trigger bit (case of falling edge or high level) */
+    tmpreg |= (uint32_t)(sTamper->Tamper << 1U);
   }
   else
   {
-    /* Clear RTC Tamper 2 flag */
-    __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
+    /* Clear the tamper trigger bit (case of rising edge or low level) */
+    tmpreg &= (uint32_t)~(sTamper->Tamper << 1U);
   }
 
+  /* Clear remaining fields before setting them */
+  tmpreg &= ~(RTC_TAMPERFILTER_MASK              | \
+              RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
+              RTC_TAMPERPRECHARGEDURATION_MASK   | \
+              RTC_TAMPER_PULLUP_MASK             | \
+              RTC_TAFCR_TAMP1INSEL               | \
+              RTC_TIMESTAMPONTAMPERDETECTION_MASK);
+
+  /* Set remaining parameters of desired configuration into temporary variable */
+  tmpreg |= ((uint32_t)sTamper->Filter            | \
+             (uint32_t)sTamper->SamplingFrequency | \
+             (uint32_t)sTamper->PrechargeDuration | \
+             (uint32_t)sTamper->TamperPullUp      | \
+             (uint32_t)sTamper->PinSelection      | \
+             (uint32_t)sTamper->TimeStampOnTamperDetection);
+
+  /* Enable global tamper interrupt */
+  tmpreg |= (uint32_t)RTC_TAFCR_TAMPIE;
+
+  /* Copy desired configuration into configuration register */
+  hrtc->Instance->TAFCR = tmpreg;
+
   /* RTC Tamper Interrupt Configuration: EXTI configuration */
   __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
-
-  EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT;
+  __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
 
   hrtc->State = HAL_RTC_STATE_READY;
 
@@ -465,10 +567,14 @@
 
 /**
   * @brief  Deactivates Tamper.
+  * @note   The tamper global interrupt bit will remain unchanged.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Tamper Selected tamper pin.
-  *          This parameter can be RTC_Tamper_1 and/or RTC_TAMPER_2.
+  *          This parameter can be any combination of the following values:
+  *            @arg RTC_TAMPER_1:  Tamper 1
+  *            @arg RTC_TAMPER_2:  Tamper 2
+  * @note   RTC_TAMPER_2 is not applicable to all devices.
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper)
@@ -492,36 +598,36 @@
 }
 
 /**
-  * @brief  This function handles TimeStamp interrupt request.
+  * @brief  Handles Timestamp and Tamper interrupt request.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval None
   */
 void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc)
 {
-  /* Get the TimeStamp interrupt source enable status */
-  if(__HAL_RTC_TIMESTAMP_GET_IT_SOURCE(hrtc, RTC_IT_TS) != (uint32_t)RESET)
+  /* Get the Timestamp interrupt source enable status */
+  if (__HAL_RTC_TIMESTAMP_GET_IT_SOURCE(hrtc, RTC_IT_TS) != 0U)
   {
-    /* Get the pending status of the TIMESTAMP Interrupt */
-    if(__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) != (uint32_t)RESET)
+    /* Get the pending status of the Timestamp Interrupt */
+    if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) != 0U)
     {
-      /* TIMESTAMP callback */
+      /* Timestamp callback */
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
       hrtc->TimeStampEventCallback(hrtc);
 #else
       HAL_RTCEx_TimeStampEventCallback(hrtc);
 #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
-      /* Clear the TIMESTAMP interrupt pending bit */
-      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc,RTC_FLAG_TSF);
+      /* Clear the Timestamp interrupt pending bit */
+      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
     }
   }
 
-  /* Get the Tamper1 interrupt source enable status */
-  if(__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != (uint32_t)RESET)
+  /* Get the Tamper 1 interrupt source enable status */
+  if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
   {
-    /* Get the pending status of the Tamper1 Interrupt */
-    if(__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) != (uint32_t)RESET)
+    /* Get the pending status of the Tamper 1 Interrupt */
+    if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) != 0U)
     {
       /* Tamper callback */
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
@@ -531,15 +637,16 @@
 #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
       /* Clear the Tamper interrupt pending bit */
-      __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc,RTC_FLAG_TAMP1F);
+      __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
     }
   }
 
-  /* Get the Tamper2 interrupt source enable status */
-  if(__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != (uint32_t)RESET)
+#if defined(RTC_TAMPER2_SUPPORT)
+  /* Get the Tamper 2 interrupt source enable status */
+  if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
   {
-    /* Get the pending status of the Tamper2 Interrupt */
-    if(__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) != (uint32_t)RESET)
+    /* Get the pending status of the Tamper 2 Interrupt */
+    if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) != 0U)
     {
       /* Tamper callback */
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
@@ -552,8 +659,9 @@
       __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
     }
   }
+#endif /* RTC_TAMPER2_SUPPORT */
 
-  /* Clear the EXTI's Flag for RTC TimeStamp and Tamper */
+  /* Clear the EXTI's Flag for RTC Timestamp and Tamper */
   __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
 
   /* Change RTC state */
@@ -561,7 +669,7 @@
 }
 
 /**
-  * @brief  TimeStamp callback.
+  * @brief  Timestamp callback.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval None
@@ -570,8 +678,9 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_TimeStampEventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_TimeStampEventCallback could be implemented in the user file
   */
 }
 
@@ -585,11 +694,13 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_Tamper1EventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_Tamper1EventCallback could be implemented in the user file
    */
 }
 
+#if defined(RTC_TAMPER2_SUPPORT)
 /**
   * @brief  Tamper 2 callback.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
@@ -600,13 +711,15 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_Tamper2EventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_Tamper2EventCallback could be implemented in the user file
    */
 }
+#endif /* RTC_TAMPER2_SUPPORT */
 
 /**
-  * @brief  This function handles TimeStamp polling request.
+  * @brief  Handles Timestamp polling request.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -619,27 +732,27 @@
   /* Get tick */
   tickstart = HAL_GetTick();
 
-  while(__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == RESET)
+  while (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == 0U)
   {
-    if(__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != RESET)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      /* Clear the TIMESTAMP Overrun Flag */
-      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
-
-      /* Change TIMESTAMP state */
-      hrtc->State = HAL_RTC_STATE_ERROR;
-
-      return HAL_ERROR;
-    }
-
-    if(Timeout != HAL_MAX_DELAY)
-    {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
         return HAL_TIMEOUT;
       }
     }
+
+    if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != 0U)
+    {
+      /* Clear the Timestamp Overrun Flag */
+      __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
+
+      /* Change Timestamp state */
+      hrtc->State = HAL_RTC_STATE_ERROR;
+
+      return HAL_ERROR;
+    }
   }
 
   /* Change RTC state */
@@ -649,7 +762,7 @@
 }
 
 /**
-  * @brief  This function handles Tamper1 Polling.
+  * @brief  Handles Tamper 1 Polling.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -663,11 +776,11 @@
   tickstart = HAL_GetTick();
 
   /* Get the status of the Interrupt */
-  while(__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F)== RESET)
+  while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) == 0U)
   {
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
         return HAL_TIMEOUT;
@@ -676,7 +789,7 @@
   }
 
   /* Clear the Tamper Flag */
-  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc,RTC_FLAG_TAMP1F);
+  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
 
   /* Change RTC state */
   hrtc->State = HAL_RTC_STATE_READY;
@@ -684,8 +797,9 @@
   return HAL_OK;
 }
 
+#if defined(RTC_TAMPER2_SUPPORT)
 /**
-  * @brief  This function handles Tamper2 Polling.
+  * @brief  Handles Tamper 2 Polling.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -699,11 +813,11 @@
   tickstart = HAL_GetTick();
 
   /* Get the status of the Interrupt */
-  while(__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) == RESET)
+  while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) == 0U)
   {
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
         return HAL_TIMEOUT;
@@ -712,38 +826,39 @@
   }
 
   /* Clear the Tamper Flag */
-  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc,RTC_FLAG_TAMP2F);
+  __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
 
   /* Change RTC state */
   hrtc->State = HAL_RTC_STATE_READY;
 
   return HAL_OK;
 }
+#endif /* RTC_TAMPER2_SUPPORT */
 
 /**
   * @}
   */
 
-/** @defgroup RTCEx_Exported_Functions_Group2 RTC Wake-up functions
- *  @brief   RTC Wake-up functions
- *
+/** @defgroup RTCEx_Exported_Functions_Group2 RTC Wakeup functions
+  * @brief    RTC Wakeup functions
+  *
 @verbatim
  ===============================================================================
-                        ##### RTC Wake-up functions #####
+                        ##### RTC Wakeup functions #####
  ===============================================================================
 
- [..] This section provides functions allowing to configure Wake-up feature
+ [..] This section provides functions allowing to configure Wakeup feature
 
 @endverbatim
   * @{
   */
 
 /**
-  * @brief  Sets wake up timer.
+  * @brief  Sets wakeup timer.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
-  * @param  WakeUpCounter Wake up counter
-  * @param  WakeUpClock Wake up clock
+  * @param  WakeUpCounter Wakeup counter
+  * @param  WakeUpClock Wakeup clock
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
@@ -762,15 +877,15 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /*Check RTC WUTWF flag is reset only when wake up timer enabled*/
-  if((hrtc->Instance->CR & RTC_CR_WUTE) != RESET)
+  /* Check RTC WUTWF flag is reset only when wakeup timer enabled*/
+  if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
   {
     tickstart = HAL_GetTick();
 
-    /* Wait till RTC WUTWF flag is reset and if Time out is reached exit */
-    while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == SET)
+    /* Wait till RTC WUTWF flag is reset and if timeout is reached exit */
+    while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -785,14 +900,19 @@
     }
   }
 
+  /* Disable the Wakeup timer */
   __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
 
+  /* Clear the Wakeup flag */
+  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+
+  /* Get tick */
   tickstart = HAL_GetTick();
 
-  /* Wait till RTC WUTWF flag is set and if Time out is reached exit */
-  while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == RESET)
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
   {
-    if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
     {
       /* Enable the write protection for RTC registers */
       __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -806,16 +926,16 @@
     }
   }
 
-  /* Clear the Wake-up Timer clock source bits in CR register */
+  /* Clear the Wakeup Timer clock source bits in CR register */
   hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
 
   /* Configure the clock source */
   hrtc->Instance->CR |= (uint32_t)WakeUpClock;
 
-  /* Configure the Wake-up Timer counter */
+  /* Configure the Wakeup Timer counter */
   hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
 
-   /* Enable the Wake-up Timer */
+  /* Enable the Wakeup Timer */
   __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
 
   /* Enable the write protection for RTC registers */
@@ -830,16 +950,16 @@
 }
 
 /**
-  * @brief  Sets wake up timer with interrupt
+  * @brief  Sets wakeup timer with interrupt.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
-  * @param  WakeUpCounter Wake up counter
-  * @param  WakeUpClock Wake up clock
+  * @param  WakeUpCounter Wakeup counter
+  * @param  WakeUpClock Wakeup clock
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
 {
-  __IO uint32_t count;
+  __IO uint32_t count  = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
 
   /* Check the parameters */
   assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock));
@@ -853,14 +973,13 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Check RTC WUTWF flag is reset only when wake up timer enabled */
-  if((hrtc->Instance->CR & RTC_CR_WUTE) != RESET)
+  /* Check RTC WUTWF flag is reset only when wakeup timer enabled */
+  if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
   {
-    /* Wait till RTC WUTWF flag is reset and if Time out is reached exit */
-    count = RTC_TIMEOUT_VALUE  * (SystemCoreClock / 32U / 1000U);
+    /* Wait till RTC WUTWF flag is reset and if timeout is reached exit */
     do
     {
-      if(count-- == 0U)
+      if (count-- == 0U)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -872,17 +991,22 @@
 
         return HAL_TIMEOUT;
       }
-    }
-    while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == SET);
+    } while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U);
   }
 
+  /* Disable the Wakeup timer */
   __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
 
-  /* Wait till RTC WUTWF flag is set and if Time out is reached exit */
-  count = RTC_TIMEOUT_VALUE  * (SystemCoreClock / 32U / 1000U);
+  /* Clear the Wakeup flag */
+  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
+
+  /* Reload the counter */
+  count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
+
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
   do
   {
-    if(count-- == 0U)
+    if (count-- == 0U)
     {
       /* Enable the write protection for RTC registers */
       __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -894,30 +1018,25 @@
 
       return HAL_TIMEOUT;
     }
-  }
-  while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == RESET);
+  } while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U);
 
-  /* Configure the Wake-up Timer counter */
-  hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
-
-  /* Clear the Wake-up Timer clock source bits in CR register */
+  /* Clear the Wakeup Timer clock source bits in CR register */
   hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
 
   /* Configure the clock source */
   hrtc->Instance->CR |= (uint32_t)WakeUpClock;
 
-  /* RTC WakeUpTimer Interrupt Configuration: EXTI configuration */
+  /* Configure the Wakeup Timer counter */
+  hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
+
+  /* RTC wakeup timer Interrupt Configuration: EXTI configuration */
   __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT();
+  __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();
 
-  EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT;
+  /* Configure the interrupt in the RTC_CR register */
+  __HAL_RTC_WAKEUPTIMER_ENABLE_IT(hrtc, RTC_IT_WUT);
 
-  /* Clear RTC Wake Up timer Flag */
-  __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
-
-  /* Configure the Interrupt in the RTC_CR register */
-  __HAL_RTC_WAKEUPTIMER_ENABLE_IT(hrtc,RTC_IT_WUT);
-
-  /* Enable the Wake-up Timer */
+  /* Enable the Wakeup Timer */
   __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
 
   /* Enable the write protection for RTC registers */
@@ -932,12 +1051,12 @@
 }
 
 /**
-  * @brief  Deactivates wake up timer counter.
+  * @brief  Deactivates wakeup timer counter.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval HAL status
   */
-uint32_t HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
+HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
 {
   uint32_t tickstart = 0U;
 
@@ -949,19 +1068,19 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Disable the Wake-up Timer */
+  /* Disable the Wakeup Timer */
   __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
 
   /* In case of interrupt mode is used, the interrupt source must disabled */
-  __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc,RTC_IT_WUT);
+  __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc, RTC_IT_WUT);
 
   /* Get tick */
   tickstart = HAL_GetTick();
 
-  /* Wait till RTC WUTWF flag is set and if Time out is reached exit */
-  while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == RESET)
+  /* Wait till RTC WUTWF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
   {
-    if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
     {
       /* Enable the write protection for RTC registers */
       __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -987,7 +1106,7 @@
 }
 
 /**
-  * @brief  Gets wake up timer counter.
+  * @brief  Gets wakeup timer counter.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval Counter value
@@ -999,8 +1118,8 @@
 }
 
 /**
-  * @brief  This function handles Wake Up Timer interrupt request.
-  * @note   Unlike alarm interrupt line (shared by AlarmA and AlarmB) and tamper
+  * @brief  Handles Wakeup Timer interrupt request.
+  * @note   Unlike alarm interrupt line (shared by Alarms A and B) or tamper
   *         interrupt line (shared by timestamp and tampers) wakeup timer
   *         interrupt line is exclusive to the wakeup timer.
   *         There is no need in this case to check on the interrupt enable
@@ -1011,17 +1130,17 @@
   */
 void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
 {
-  /* Get the pending status of the WAKEUPTIMER Interrupt */
-  if(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != (uint32_t)RESET)
+  /* Get the pending status of the Wakeup timer Interrupt */
+  if (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != 0U)
   {
-    /* WAKEUPTIMER callback */
+    /* Wakeup timer callback */
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
     hrtc->WakeUpTimerEventCallback(hrtc);
 #else
     HAL_RTCEx_WakeUpTimerEventCallback(hrtc);
 #endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
 
-    /* Clear the WAKEUPTIMER interrupt pending bit */
+    /* Clear the Wakeup timer interrupt pending bit */
     __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
   }
 
@@ -1033,7 +1152,7 @@
 }
 
 /**
-  * @brief  Wake Up Timer callback.
+  * @brief  Wakeup Timer callback.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @retval None
@@ -1042,13 +1161,14 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_WakeUpTimerEventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_WakeUpTimerEventCallback could be implemented in the user file
    */
 }
 
 /**
-  * @brief  This function handles Wake Up Timer Polling.
+  * @brief  Handles Wakeup Timer Polling.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -1061,20 +1181,19 @@
   /* Get tick */
   tickstart = HAL_GetTick();
 
-  while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) == RESET)
+  while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) == 0U)
   {
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
-
         return HAL_TIMEOUT;
       }
     }
   }
 
-  /* Clear the WAKEUPTIMER Flag */
+  /* Clear the Wakeup timer Flag */
   __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
 
   /* Change RTC state */
@@ -1087,13 +1206,12 @@
   * @}
   */
 
-
-/** @defgroup RTCEx_Exported_Functions_Group3 Extension Peripheral Control functions
- *  @brief   Extension Peripheral Control functions
- *
+/** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
+  * @brief    Extended Peripheral Control functions
+  *
 @verbatim
  ===============================================================================
-              ##### Extension Peripheral Control functions #####
+              ##### Extended Peripheral Control functions #####
  ===============================================================================
     [..]
     This subsection provides functions allowing to
@@ -1119,8 +1237,8 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  BackupRegister RTC Backup data Register number.
-  *          This parameter can be: RTC_BKP_DRx where x can be from 0 to 19 to
-  *                                 specify the register.
+  *          This parameter can be: RTC_BKP_DRx (where x can be from 0 to 19)
+  *                                 to specify the register.
   * @param  Data Data to be written in the specified RTC Backup data register.
   * @retval None
   */
@@ -1131,7 +1249,7 @@
   /* Check the parameters */
   assert_param(IS_RTC_BKP(BackupRegister));
 
-  tmp = (uint32_t)&(hrtc->Instance->BKP0R);
+  tmp = (uint32_t) & (hrtc->Instance->BKP0R);
   tmp += (BackupRegister * 4U);
 
   /* Write the specified register */
@@ -1143,8 +1261,8 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  BackupRegister RTC Backup data Register number.
-  *          This parameter can be: RTC_BKP_DRx where x can be from 0 to 19 to
-  *                                 specify the register.
+  *          This parameter can be: RTC_BKP_DRx (where x can be from 0 to 19)
+  *                                 to specify the register.
   * @retval Read value
   */
 uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
@@ -1154,7 +1272,7 @@
   /* Check the parameters */
   assert_param(IS_RTC_BKP(BackupRegister));
 
-  tmp = (uint32_t)&(hrtc->Instance->BKP0R);
+  tmp = (uint32_t) & (hrtc->Instance->BKP0R);
   tmp += (BackupRegister * 4U);
 
   /* Read the specified register */
@@ -1166,7 +1284,7 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  CalibSign Specifies the sign of the coarse calibration value.
-  *          This parameter can be  one of the following values :
+  *          This parameter can be  one of the following values:
   *             @arg RTC_CALIBSIGN_POSITIVE: The value sign is positive
   *             @arg RTC_CALIBSIGN_NEGATIVE: The value sign is negative
   * @param  Value value of coarse calibration expressed in ppm (coded on 5 bits).
@@ -1178,8 +1296,10 @@
   *         sign with a 4-ppm step.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef* hrtc, uint32_t CalibSign, uint32_t Value)
+HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value)
 {
+  HAL_StatusTypeDef status;
+
   /* Check the parameters */
   assert_param(IS_RTC_CALIB_SIGN(CalibSign));
   assert_param(IS_RTC_CALIB_VALUE(Value));
@@ -1192,42 +1312,33 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
-  {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
 
-    /* Set RTC state*/
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
+  if (status == HAL_OK)
   {
     /* Enable the Coarse Calibration */
     __HAL_RTC_COARSE_CALIB_ENABLE(hrtc);
 
     /* Set the coarse calibration value */
-    hrtc->Instance->CALIBR = (uint32_t)(CalibSign|Value);
+    hrtc->Instance->CALIBR = (uint32_t)(CalibSign | Value);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
   }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-  /* Change state */
-  hrtc->State = HAL_RTC_STATE_READY;
-
   /* Process Unlocked */
   __HAL_UNLOCK(hrtc);
 
-  return HAL_OK;
+  return status;
 }
 
 /**
@@ -1236,8 +1347,10 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc)
 {
+  HAL_StatusTypeDef status;
+
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
@@ -1246,39 +1359,30 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
   {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-    /* Set RTC state*/
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
-  {
-    /* Enable the Coarse Calibration */
+    /* Disable the Coarse Calibration */
     __HAL_RTC_COARSE_CALIB_DISABLE(hrtc);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
   }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-  /* Change state */
-  hrtc->State = HAL_RTC_STATE_READY;
-
   /* Process Unlocked */
   __HAL_UNLOCK(hrtc);
 
-  return HAL_OK;
+  return status;
 }
 
 /**
@@ -1286,7 +1390,7 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  SmoothCalibPeriod Select the Smooth Calibration Period.
-  *          This parameter can be can be one of the following values :
+  *          This parameter can be can be one of the following values:
   *             @arg RTC_SMOOTHCALIB_PERIOD_32SEC: The smooth calibration period is 32s.
   *             @arg RTC_SMOOTHCALIB_PERIOD_16SEC: The smooth calibration period is 16s.
   *             @arg RTC_SMOOTHCALIB_PERIOD_8SEC: The smooth calibration period is 8s.
@@ -1294,21 +1398,21 @@
   *          This parameter can be one of the following values:
   *             @arg RTC_SMOOTHCALIB_PLUSPULSES_SET: Add one RTCCLK pulse every 2*11 pulses.
   *             @arg RTC_SMOOTHCALIB_PLUSPULSES_RESET: No RTCCLK pulses are added.
-  * @param  SmouthCalibMinusPulsesValue Select the value of CALM[80] bits.
+  * @param  SmoothCalibMinusPulsesValue Select the value of CALM[8:0] bits.
   *          This parameter can be one any value from 0 to 0x000001FF.
   * @note   To deactivate the smooth calibration, the field SmoothCalibPlusPulses
   *         must be equal to SMOOTHCALIB_PLUSPULSES_RESET and the field
-  *         SmouthCalibMinusPulsesValue must be equal to 0.
+  *         SmoothCalibMinusPulsesValue must be equal to 0.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef* hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmouthCalibMinusPulsesValue)
+HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue)
 {
   uint32_t tickstart = 0U;
 
   /* Check the parameters */
   assert_param(IS_RTC_SMOOTH_CALIB_PERIOD(SmoothCalibPeriod));
   assert_param(IS_RTC_SMOOTH_CALIB_PLUS(SmoothCalibPlusPulses));
-  assert_param(IS_RTC_SMOOTH_CALIB_MINUS(SmouthCalibMinusPulsesValue));
+  assert_param(IS_RTC_SMOOTH_CALIB_MINUS(SmoothCalibMinusPulsesValue));
 
   /* Process Locked */
   __HAL_LOCK(hrtc);
@@ -1319,15 +1423,15 @@
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
   /* check if a calibration is pending*/
-  if((hrtc->Instance->ISR & RTC_ISR_RECALPF) != RESET)
+  if ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
   {
-  /* Get tick */
-  tickstart = HAL_GetTick();
+    /* Get tick */
+    tickstart = HAL_GetTick();
 
     /* check if a calibration is pending*/
-    while((hrtc->Instance->ISR & RTC_ISR_RECALPF) != RESET)
+    while ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
     {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
+      if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
       {
         /* Enable the write protection for RTC registers */
         __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1344,7 +1448,9 @@
   }
 
   /* Configure the Smooth calibration settings */
-  hrtc->Instance->CALR = (uint32_t)((uint32_t)SmoothCalibPeriod | (uint32_t)SmoothCalibPlusPulses | (uint32_t)SmouthCalibMinusPulsesValue);
+  hrtc->Instance->CALR = (uint32_t)((uint32_t)SmoothCalibPeriod     | \
+                                    (uint32_t)SmoothCalibPlusPulses | \
+                                    (uint32_t)SmoothCalibMinusPulsesValue);
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1364,14 +1470,14 @@
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  ShiftAdd1S Select to add or not 1 second to the time calendar.
-  *          This parameter can be one of the following values :
+  *          This parameter can be one of the following values:
   *             @arg RTC_SHIFTADD1S_SET: Add one second to the clock calendar.
   *             @arg RTC_SHIFTADD1S_RESET: No effect.
   * @param  ShiftSubFS Select the number of Second Fractions to substitute.
   *          This parameter can be one any value from 0 to 0x7FFF.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef* hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
+HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
 {
   uint32_t tickstart = 0U;
 
@@ -1390,59 +1496,59 @@
   /* Get tick */
   tickstart = HAL_GetTick();
 
-    /* Wait until the shift is completed*/
-    while((hrtc->Instance->ISR & RTC_ISR_SHPF) != RESET)
-    {
-      if((HAL_GetTick() - tickstart ) > RTC_TIMEOUT_VALUE)
-      {
-        /* Enable the write protection for RTC registers */
-        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-        hrtc->State = HAL_RTC_STATE_TIMEOUT;
-
-        /* Process Unlocked */
-        __HAL_UNLOCK(hrtc);
-
-        return HAL_TIMEOUT;
-      }
-    }
-
-    /* Check if the reference clock detection is disabled */
-    if((hrtc->Instance->CR & RTC_CR_REFCKON) == RESET)
-    {
-      /* Configure the Shift settings */
-      hrtc->Instance->SHIFTR = (uint32_t)(uint32_t)(ShiftSubFS) | (uint32_t)(ShiftAdd1S);
-
-      /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
-      if((hrtc->Instance->CR & RTC_CR_BYPSHAD) == RESET)
-      {
-        if(HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
-        {
-          /* Enable the write protection for RTC registers */
-          __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-          hrtc->State = HAL_RTC_STATE_ERROR;
-
-          /* Process Unlocked */
-          __HAL_UNLOCK(hrtc);
-
-          return HAL_ERROR;
-        }
-      }
-    }
-    else
+  /* Wait until the shift is completed */
+  while ((hrtc->Instance->ISR & RTC_ISR_SHPF) != 0U)
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
     {
       /* Enable the write protection for RTC registers */
       __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-      /* Change RTC state */
-      hrtc->State = HAL_RTC_STATE_ERROR;
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
 
       /* Process Unlocked */
       __HAL_UNLOCK(hrtc);
 
-      return HAL_ERROR;
+      return HAL_TIMEOUT;
     }
+  }
+
+  /* Check if the reference clock detection is disabled */
+  if ((hrtc->Instance->CR & RTC_CR_REFCKON) == 0U)
+  {
+    /* Configure the Shift settings */
+    hrtc->Instance->SHIFTR = (uint32_t)(uint32_t)(ShiftSubFS) | (uint32_t)(ShiftAdd1S);
+
+    /* If  RTC_CR_BYPSHAD bit = 0, wait for synchro else this check is not needed */
+    if ((hrtc->Instance->CR & RTC_CR_BYPSHAD) == 0U)
+    {
+      if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+      {
+        /* Enable the write protection for RTC registers */
+        __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+        hrtc->State = HAL_RTC_STATE_ERROR;
+
+        /* Process Unlocked */
+        __HAL_UNLOCK(hrtc);
+
+        return HAL_ERROR;
+      }
+    }
+  }
+  else
+  {
+    /* Enable the write protection for RTC registers */
+    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+
+    /* Change RTC state */
+    hrtc->State = HAL_RTC_STATE_ERROR;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hrtc);
+
+    return HAL_ERROR;
+  }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
@@ -1460,13 +1566,13 @@
   * @brief  Configures the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
-  * @param  CalibOutput Select the Calibration output Selection .
+  * @param  CalibOutput Select the Calibration output Selection.
   *          This parameter can be one of the following values:
   *             @arg RTC_CALIBOUTPUT_512HZ: A signal has a regular waveform at 512Hz.
   *             @arg RTC_CALIBOUTPUT_1HZ: A signal has a regular waveform at 1Hz.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef* hrtc, uint32_t CalibOutput)
+HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput)
 {
   /* Check the parameters */
   assert_param(IS_RTC_CALIB_OUTPUT(CalibOutput));
@@ -1505,7 +1611,7 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc)
 {
   /* Process Locked */
   __HAL_LOCK(hrtc);
@@ -1535,8 +1641,10 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc)
 {
+  HAL_StatusTypeDef status;
+
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
@@ -1545,38 +1653,30 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
   {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-    /* Set RTC state*/
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
-  {
+    /* Enable the reference clock detection */
     __HAL_RTC_CLOCKREF_DETECTION_ENABLE(hrtc);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
   }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-   /* Change RTC state */
-  hrtc->State = HAL_RTC_STATE_READY;
-
   /* Process Unlocked */
   __HAL_UNLOCK(hrtc);
 
-  return HAL_OK;
+  return status;
 }
 
 /**
@@ -1585,8 +1685,10 @@
   *                the configuration information for RTC.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc)
 {
+  HAL_StatusTypeDef status;
+
   /* Process Locked */
   __HAL_LOCK(hrtc);
 
@@ -1595,38 +1697,30 @@
   /* Disable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
 
-  /* Set Initialization mode */
-  if(RTC_EnterInitMode(hrtc) != HAL_OK)
+  /* Enter Initialization mode */
+  status = RTC_EnterInitMode(hrtc);
+
+  if (status == HAL_OK)
   {
-    /* Enable the write protection for RTC registers */
-    __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
-
-    /* Set RTC state*/
-    hrtc->State = HAL_RTC_STATE_ERROR;
-
-    /* Process Unlocked */
-    __HAL_UNLOCK(hrtc);
-
-    return HAL_ERROR;
-  }
-  else
-  {
+    /* Disable the reference clock detection */
     __HAL_RTC_CLOCKREF_DETECTION_DISABLE(hrtc);
 
     /* Exit Initialization mode */
-    hrtc->Instance->ISR &= (uint32_t)~RTC_ISR_INIT;
+    status = RTC_ExitInitMode(hrtc);
+  }
+
+  if (status == HAL_OK)
+  {
+    hrtc->State = HAL_RTC_STATE_READY;
   }
 
   /* Enable the write protection for RTC registers */
   __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
 
-  /* Change RTC state */
-  hrtc->State = HAL_RTC_STATE_READY;
-
   /* Process Unlocked */
   __HAL_UNLOCK(hrtc);
 
-  return HAL_OK;
+  return status;
 }
 
 /**
@@ -1637,7 +1731,7 @@
   *         directly from the Calendar counter.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
 {
   /* Process Locked */
   __HAL_LOCK(hrtc);
@@ -1670,7 +1764,7 @@
   *         directly from the Calendar counter.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef* hrtc)
+HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc)
 {
   /* Process Locked */
   __HAL_LOCK(hrtc);
@@ -1699,9 +1793,9 @@
   * @}
   */
 
-  /** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
- *  @brief    Extended features functions
- *
+/** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
+  * @brief    Extended features functions
+  *
 @verbatim
  ===============================================================================
                  ##### Extended features functions #####
@@ -1724,13 +1818,14 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hrtc);
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_RTC_AlarmBEventCallback could be implemented in the user file
+
+  /* NOTE: This function should not be modified, when the callback is needed,
+           the HAL_RTCEx_AlarmBEventCallback could be implemented in the user file
    */
 }
 
 /**
-  * @brief  This function handles AlarmB Polling request.
+  * @brief  Handles Alarm B Polling request.
   * @param  hrtc pointer to a RTC_HandleTypeDef structure that contains
   *                the configuration information for RTC.
   * @param  Timeout Timeout duration
@@ -1743,11 +1838,12 @@
   /* Get tick */
   tickstart = HAL_GetTick();
 
-  while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) == RESET)
+  /* Wait till RTC ALRBF flag is set and if timeout is reached exit */
+  while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) == 0U)
   {
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         hrtc->State = HAL_RTC_STATE_TIMEOUT;
         return HAL_TIMEOUT;
@@ -1755,7 +1851,7 @@
     }
   }
 
-  /* Clear the Alarm Flag */
+  /* Clear the Alarm flag */
   __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
 
   /* Change RTC state */
@@ -1780,5 +1876,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_sai.c b/Src/stm32f4xx_hal_sai.c
index 7d157cc..19e3748 100644
--- a/Src/stm32f4xx_hal_sai.c
+++ b/Src/stm32f4xx_hal_sai.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                   ##### How to use this driver #####
@@ -199,18 +210,6 @@
     and weak (surcharged) callbacks are used.
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -2553,4 +2552,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_sai_ex.c b/Src/stm32f4xx_hal_sai_ex.c
index 120a277..78a73f8 100644
--- a/Src/stm32f4xx_hal_sai_ex.c
+++ b/Src/stm32f4xx_hal_sai_ex.c
@@ -7,6 +7,17 @@
   *          functionalities of SAI extension peripheral:
   *           + Extension features functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                ##### SAI peripheral extension features  #####
@@ -23,17 +34,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -308,4 +308,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_sd.c b/Src/stm32f4xx_hal_sd.c
index 0c7b13b..f4145e9 100644
--- a/Src/stm32f4xx_hal_sd.c
+++ b/Src/stm32f4xx_hal_sd.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -242,17 +253,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -430,6 +430,9 @@
   /* Enable SDIO Clock */
   __HAL_SD_ENABLE(hsd);
 
+  /* Required power up waiting time before starting the SD initialization  sequence */
+  HAL_Delay(2);
+
   /* Identify card operating voltage */
   errorstate = SD_PowerON(hsd);
   if(errorstate != HAL_SD_ERROR_NONE)
@@ -3272,5 +3275,3 @@
   */
 
 #endif /* SDIO */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_sdram.c b/Src/stm32f4xx_hal_sdram.c
index da34f47..31633a2 100644
--- a/Src/stm32f4xx_hal_sdram.c
+++ b/Src/stm32f4xx_hal_sdram.c
@@ -3,57 +3,68 @@
   * @file    stm32f4xx_hal_sdram.c
   * @author  MCD Application Team
   * @brief   SDRAM HAL module driver.
-  *          This file provides a generic firmware to drive SDRAM memories mounted 
+  *          This file provides a generic firmware to drive SDRAM memories mounted
   *          as external device.
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                        ##### How to use this driver #####
-  ============================================================================== 
+  ==============================================================================
   [..]
-    This driver is a generic layered driver which contains a set of APIs used to 
-    control SDRAM memories. It uses the FMC layer functions to interface 
-    with SDRAM devices.  
+    This driver is a generic layered driver which contains a set of APIs used to
+    control SDRAM memories. It uses the FMC layer functions to interface
+    with SDRAM devices.
     The following sequence should be followed to configure the FMC to interface
-    with SDRAM memories: 
-      
+    with SDRAM memories:
+
    (#) Declare a SDRAM_HandleTypeDef handle structure, for example:
-          SDRAM_HandleTypeDef  hdsram 
-          
-       (++) Fill the SDRAM_HandleTypeDef handle "Init" field with the allowed 
+          SDRAM_HandleTypeDef  hsdram
+
+       (++) Fill the SDRAM_HandleTypeDef handle "Init" field with the allowed
             values of the structure member.
-            
-       (++) Fill the SDRAM_HandleTypeDef handle "Instance" field with a predefined 
-            base register instance for NOR or SDRAM device 
-             
+
+       (++) Fill the SDRAM_HandleTypeDef handle "Instance" field with a predefined
+            base register instance for NOR or SDRAM device
+
    (#) Declare a FMC_SDRAM_TimingTypeDef structure; for example:
           FMC_SDRAM_TimingTypeDef  Timing;
       and fill its fields with the allowed values of the structure member.
-      
+
    (#) Initialize the SDRAM Controller by calling the function HAL_SDRAM_Init(). This function
        performs the following sequence:
-          
+
        (##) MSP hardware layer configuration using the function HAL_SDRAM_MspInit()
-       (##) Control register configuration using the FMC SDRAM interface function 
+       (##) Control register configuration using the FMC SDRAM interface function
             FMC_SDRAM_Init()
-       (##) Timing register configuration using the FMC SDRAM interface function 
+       (##) Timing register configuration using the FMC SDRAM interface function
             FMC_SDRAM_Timing_Init()
        (##) Program the SDRAM external device by applying its initialization sequence
             according to the device plugged in your hardware. This step is mandatory
-            for accessing the SDRAM device.   
+            for accessing the SDRAM device.
 
-   (#) At this stage you can perform read/write accesses from/to the memory connected 
+   (#) At this stage you can perform read/write accesses from/to the memory connected
        to the SDRAM Bank. You can perform either polling or DMA transfer using the
        following APIs:
        (++) HAL_SDRAM_Read()/HAL_SDRAM_Write() for polling read/write access
        (++) HAL_SDRAM_Read_DMA()/HAL_SDRAM_Write_DMA() for DMA read/write transfer
-       
+
    (#) You can also control the SDRAM device by calling the control APIs HAL_SDRAM_WriteOperation_Enable()/
-       HAL_SDRAM_WriteOperation_Disable() to respectively enable/disable the SDRAM write operation or 
+       HAL_SDRAM_WriteOperation_Disable() to respectively enable/disable the SDRAM write operation or
        the function HAL_SDRAM_SendCommand() to send a specified command to the SDRAM
-       device. The command to be sent must be configured with the FMC_SDRAM_CommandTypeDef 
-       structure.   
-       
+       device. The command to be sent must be configured with the FMC_SDRAM_CommandTypeDef
+       structure.
+
    (#) You can continuously monitor the SDRAM device HAL state by calling the function
        HAL_SDRAM_GetState()
 
@@ -63,25 +74,25 @@
       The compilation define  USE_HAL_SDRAM_REGISTER_CALLBACKS when set to 1
       allows the user to configure dynamically the driver callbacks.
 
-      Use Functions @ref HAL_SDRAM_RegisterCallback() to register a user callback,
+      Use Functions HAL_SDRAM_RegisterCallback() to register a user callback,
       it allows to register following callbacks:
         (+) MspInitCallback    : SDRAM MspInit.
         (+) MspDeInitCallback  : SDRAM MspDeInit.
       This function takes as parameters the HAL peripheral handle, the Callback ID
       and a pointer to the user callback function.
 
-      Use function @ref HAL_SDRAM_UnRegisterCallback() to reset a callback to the default
+      Use function HAL_SDRAM_UnRegisterCallback() to reset a callback to the default
       weak (surcharged) function. It allows to reset following callbacks:
         (+) MspInitCallback    : SDRAM MspInit.
         (+) MspDeInitCallback  : SDRAM MspDeInit.
       This function) takes as parameters the HAL peripheral handle and the Callback ID.
 
-      By default, after the @ref HAL_SDRAM_Init and if the state is HAL_SDRAM_STATE_RESET
+      By default, after the HAL_SDRAM_Init and if the state is HAL_SDRAM_STATE_RESET
       all callbacks are reset to the corresponding legacy weak (surcharged) functions.
       Exception done for MspInit and MspDeInit callbacks that are respectively
-      reset to the legacy weak (surcharged) functions in the @ref HAL_SDRAM_Init
-      and @ref  HAL_SDRAM_DeInit only when these callbacks are null (not registered beforehand).
-      If not, MspInit or MspDeInit are not null, the @ref HAL_SDRAM_Init and @ref HAL_SDRAM_DeInit
+      reset to the legacy weak (surcharged) functions in the HAL_SDRAM_Init
+      and  HAL_SDRAM_DeInit only when these callbacks are null (not registered beforehand).
+      If not, MspInit or MspDeInit are not null, the HAL_SDRAM_Init and HAL_SDRAM_DeInit
       keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
       Callbacks can be registered/unregistered in READY state only.
@@ -89,8 +100,8 @@
       in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
       during the Init/DeInit.
       In that case first register the MspInit/MspDeInit user callbacks
-      using @ref HAL_SDRAM_RegisterCallback before calling @ref HAL_SDRAM_DeInit
-      or @ref HAL_SDRAM_Init function.
+      using HAL_SDRAM_RegisterCallback before calling HAL_SDRAM_DeInit
+      or HAL_SDRAM_Init function.
 
       When The compilation define USE_HAL_SDRAM_REGISTER_CALLBACKS is set to 0 or
       not defined, the callback registering feature is not available
@@ -98,80 +109,74 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
 
+#if defined(FMC_Bank5_6)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
+#ifdef HAL_SDRAM_MODULE_ENABLED
+
 /** @defgroup SDRAM SDRAM
   * @brief SDRAM driver modules
   * @{
   */
-#ifdef HAL_SDRAM_MODULE_ENABLED
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
 
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/    
+/* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void SDRAM_DMACplt(DMA_HandleTypeDef *hdma);
+static void SDRAM_DMACpltProt(DMA_HandleTypeDef *hdma);
+static void SDRAM_DMAError(DMA_HandleTypeDef *hdma);
+
 /* Exported functions --------------------------------------------------------*/
 /** @defgroup SDRAM_Exported_Functions SDRAM Exported Functions
   * @{
   */
-  
-/** @defgroup SDRAM_Exported_Functions_Group1 Initialization and de-initialization functions 
-  * @brief    Initialization and Configuration functions 
+
+/** @defgroup SDRAM_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
            ##### SDRAM Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to initialize/de-initialize
     the SDRAM memory
-  
+
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Performs the SDRAM device initialization sequence.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
-  * @param  Timing Pointer to SDRAM control timing structure 
+  * @param  Timing Pointer to SDRAM control timing structure
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing)
-{   
+{
   /* Check the SDRAM handle parameter */
-  if(hsdram == NULL)
+  if (hsdram == NULL)
   {
     return HAL_ERROR;
   }
-  
-  if(hsdram->State == HAL_SDRAM_STATE_RESET)
-  {  
+
+  if (hsdram->State == HAL_SDRAM_STATE_RESET)
+  {
     /* Allocate lock resource and initialize it */
     hsdram->Lock = HAL_UNLOCKED;
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
-    if(hsdram->MspInitCallback == NULL)
+    if (hsdram->MspInitCallback == NULL)
     {
       hsdram->MspInitCallback = HAL_SDRAM_MspInit;
     }
@@ -184,21 +189,20 @@
 #else
     /* Initialize the low level hardware (MSP) */
     HAL_SDRAM_MspInit(hsdram);
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
   }
-  
+
   /* Initialize the SDRAM controller state */
   hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
+
   /* Initialize SDRAM control Interface */
-  FMC_SDRAM_Init(hsdram->Instance, &(hsdram->Init));
-  
+  (void)FMC_SDRAM_Init(hsdram->Instance, &(hsdram->Init));
+
   /* Initialize SDRAM timing Interface */
-  FMC_SDRAM_Timing_Init(hsdram->Instance, Timing, hsdram->Init.SDBank); 
-  
+  (void)FMC_SDRAM_Timing_Init(hsdram->Instance, Timing, hsdram->Init.SDBank);
   /* Update the SDRAM controller state */
   hsdram->State = HAL_SDRAM_STATE_READY;
-  
+
   return HAL_OK;
 }
 
@@ -211,7 +215,7 @@
 HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram)
 {
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
-  if(hsdram->MspDeInitCallback == NULL)
+  if (hsdram->MspDeInitCallback == NULL)
   {
     hsdram->MspDeInitCallback = HAL_SDRAM_MspDeInit;
   }
@@ -221,10 +225,10 @@
 #else
   /* Initialize the low level hardware (MSP) */
   HAL_SDRAM_MspDeInit(hsdram);
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 
   /* Configure the SDRAM registers with their reset values */
-  FMC_SDRAM_DeInit(hsdram->Instance, hsdram->Init.SDBank);
+  (void)FMC_SDRAM_DeInit(hsdram->Instance, hsdram->Init.SDBank);
 
   /* Reset the SDRAM controller state */
   hsdram->State = HAL_SDRAM_STATE_RESET;
@@ -245,9 +249,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hsdram);
+
   /* NOTE: This function Should not be modified, when the callback is needed,
             the HAL_SDRAM_MspInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -260,9 +265,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hsdram);
+
   /* NOTE: This function Should not be modified, when the callback is needed,
             the HAL_SDRAM_MspDeInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -270,18 +276,18 @@
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @retval HAL status
-*/
+  */
 void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram)
 {
   /* Check SDRAM interrupt Rising edge flag */
-  if(__FMC_SDRAM_GET_FLAG(hsdram->Instance, FMC_SDRAM_FLAG_REFRESH_IT))
+  if (__FMC_SDRAM_GET_FLAG(hsdram->Instance, FMC_SDRAM_FLAG_REFRESH_IT))
   {
     /* SDRAM refresh error interrupt callback */
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
     hsdram->RefreshErrorCallback(hsdram);
 #else
     HAL_SDRAM_RefreshErrorCallback(hsdram);
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 
     /* Clear SDRAM refresh error interrupt pending bit */
     __FMC_SDRAM_CLEAR_FLAG(hsdram->Instance, FMC_SDRAM_FLAG_REFRESH_ERROR);
@@ -291,16 +297,17 @@
 /**
   * @brief  SDRAM Refresh error callback.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
-  *                the configuration information for SDRAM module. 
+  *                the configuration information for SDRAM module.
   * @retval None
   */
 __weak void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram)
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hsdram);
+
   /* NOTE: This function Should not be modified, when the callback is needed,
             the HAL_SDRAM_RefreshErrorCallback could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -313,9 +320,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hdma);
+
   /* NOTE: This function Should not be modified, when the callback is needed,
             the HAL_SDRAM_DMA_XferCpltCallback could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -327,24 +335,26 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hdma);
+
   /* NOTE: This function Should not be modified, when the callback is needed,
             the HAL_SDRAM_DMA_XferErrorCallback could be implemented in the user file
-   */ 
+   */
 }
+
 /**
   * @}
   */
 
-/** @defgroup SDRAM_Exported_Functions_Group2 Input and Output functions 
-  * @brief    Input Output and memory control functions 
+/** @defgroup SDRAM_Exported_Functions_Group2 Input and Output functions
+  * @brief    Input Output and memory control functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
                     ##### SDRAM Input and Output functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to use and control the SDRAM memory
-  
+
 @endverbatim
   * @{
   */
@@ -354,289 +364,377 @@
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
+                                    uint32_t BufferSize)
 {
+  uint32_t size;
   __IO uint8_t *pSdramAddress = (uint8_t *)pAddress;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint8_t *pdestbuff = pDstBuffer;
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if(hsdram->State == HAL_SDRAM_STATE_PRECHARGED)
+  else if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
-    return  HAL_ERROR; 
-  }  
-  
-  /* Read data from source */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint8_t *)pSdramAddress;  
-    pDstBuffer++;
-    pSdramAddress++;
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Read data from source */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *pdestbuff = *(__IO uint8_t *)pSdramAddress;
+      pdestbuff++;
+      pSdramAddress++;
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = state;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);
-  
-  return HAL_OK; 
+  else
+  {
+    return  HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
- 
+
 /**
   * @brief  Writes 8-bit data buffer to SDRAM memory.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
+                                     uint32_t BufferSize)
 {
+  uint32_t size;
   __IO uint8_t *pSdramAddress = (uint8_t *)pAddress;
-  uint32_t tmp = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint8_t *psrcbuff = pSrcBuffer;
+
   /* Check the SDRAM controller state */
-  tmp = hsdram->State;
-  
-  if(tmp == HAL_SDRAM_STATE_BUSY)
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if((tmp == HAL_SDRAM_STATE_PRECHARGED) || (tmp == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Write data to memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *(__IO uint8_t *)pSdramAddress = *psrcbuff;
+      psrcbuff++;
+      pSdramAddress++;
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint8_t *)pSdramAddress = *pSrcBuffer;
-    pSrcBuffer++;
-    pSdramAddress++;
+    return  HAL_ERROR;
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);    
-  
-  return HAL_OK;   
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Reads 16-bit data buffer from the SDRAM memory. 
+  * @brief  Reads 16-bit data buffer from the SDRAM memory.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
+                                     uint32_t BufferSize)
 {
-  __IO uint16_t *pSdramAddress = (uint16_t *)pAddress;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint32_t size;
+  __IO uint32_t *pSdramAddress = pAddress;
+  uint16_t *pdestbuff = pDstBuffer;
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if(hsdram->State == HAL_SDRAM_STATE_PRECHARGED)
+  else if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
-    return  HAL_ERROR; 
-  }  
-  
-  /* Read data from source */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint16_t *)pSdramAddress;  
-    pDstBuffer++;
-    pSdramAddress++;               
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Read data from memory */
+    for (size = BufferSize; size >= 2U ; size -= 2U)
+    {
+      *pdestbuff = (uint16_t)((*pSdramAddress) & 0x0000FFFFU);
+      pdestbuff++;
+      *pdestbuff = (uint16_t)(((*pSdramAddress) & 0xFFFF0000U) >> 16U);
+      pdestbuff++;
+      pSdramAddress++;
+    }
+
+    /* Read last 16-bits if size is not 32-bits multiple */
+    if ((BufferSize % 2U) != 0U)
+    {
+      *pdestbuff = (uint16_t)((*pSdramAddress) & 0x0000FFFFU);
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = state;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);       
-  
-  return HAL_OK; 
+  else
+  {
+    return  HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Writes 16-bit data buffer to SDRAM memory. 
+  * @brief  Writes 16-bit data buffer to SDRAM memory.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
+                                      uint32_t BufferSize)
 {
-  __IO uint16_t *pSdramAddress = (uint16_t *)pAddress;
-  uint32_t tmp = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint32_t size;
+  __IO uint32_t *psdramaddress = pAddress;
+  uint16_t *psrcbuff = pSrcBuffer;
+
   /* Check the SDRAM controller state */
-  tmp = hsdram->State;
-  
-  if(tmp == HAL_SDRAM_STATE_BUSY)
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if((tmp == HAL_SDRAM_STATE_PRECHARGED) || (tmp == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Write data to memory */
+    for (size = BufferSize; size >= 2U ; size -= 2U)
+    {
+      *psdramaddress = (uint32_t)(*psrcbuff);
+      psrcbuff++;
+      *psdramaddress |= ((uint32_t)(*psrcbuff) << 16U);
+      psrcbuff++;
+      psdramaddress++;
+    }
+
+    /* Write last 16-bits if size is not 32-bits multiple */
+    if ((BufferSize % 2U) != 0U)
+    {
+      *psdramaddress = ((uint32_t)(*psrcbuff) & 0x0000FFFFU) | ((*psdramaddress) & 0xFFFF0000U);
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint16_t *)pSdramAddress = *pSrcBuffer;
-    pSrcBuffer++;
-    pSdramAddress++;            
+    return  HAL_ERROR;
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);    
-  
-  return HAL_OK;   
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Reads 32-bit data buffer from the SDRAM memory. 
+  * @brief  Reads 32-bit data buffer from the SDRAM memory.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                     uint32_t BufferSize)
 {
+  uint32_t size;
   __IO uint32_t *pSdramAddress = (uint32_t *)pAddress;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint32_t *pdestbuff = pDstBuffer;
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if(hsdram->State == HAL_SDRAM_STATE_PRECHARGED)
+  else if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
-    return  HAL_ERROR; 
-  }  
-  
-  /* Read data from source */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint32_t *)pSdramAddress;  
-    pDstBuffer++;
-    pSdramAddress++;               
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Read data from source */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *pdestbuff = *(__IO uint32_t *)pSdramAddress;
+      pdestbuff++;
+      pSdramAddress++;
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = state;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);       
-  
-  return HAL_OK; 
+  else
+  {
+    return  HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Writes 32-bit data buffer to SDRAM memory. 
+  * @brief  Writes 32-bit data buffer to SDRAM memory.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                      uint32_t BufferSize)
 {
-  __IO uint32_t *pSdramAddress = (uint32_t *)pAddress;
-  uint32_t tmp = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
+  uint32_t size;
+  __IO uint32_t *pSdramAddress = pAddress;
+  uint32_t *psrcbuff = pSrcBuffer;
+
   /* Check the SDRAM controller state */
-  tmp = hsdram->State;
-  
-  if(tmp == HAL_SDRAM_STATE_BUSY)
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  else if((tmp == HAL_SDRAM_STATE_PRECHARGED) || (tmp == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Write data to memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *pSdramAddress = *psrcbuff;
+      psrcbuff++;
+      pSdramAddress++;
+    }
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
   }
-  
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint32_t *)pSdramAddress = *pSrcBuffer;
-    pSrcBuffer++;
-    pSdramAddress++;          
+    return  HAL_ERROR;
   }
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);    
-  
-  return HAL_OK;  
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Reads a Words data from the SDRAM memory using DMA transfer. 
+  * @brief  Reads a Words data from the SDRAM memory using DMA transfer.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                     uint32_t BufferSize)
 {
-  uint32_t tmp = 0U;
-    
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
-  /* Check the SDRAM controller state */  
-  tmp = hsdram->State;
-  
-  if(tmp == HAL_SDRAM_STATE_BUSY)
+  HAL_StatusTypeDef status;
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
+  /* Check the SDRAM controller state */
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
-    return HAL_BUSY;
+    status = HAL_BUSY;
   }
-  else if(tmp == HAL_SDRAM_STATE_PRECHARGED)
+  else if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
-    return  HAL_ERROR; 
-  }  
-  
-  /* Configure DMA user callbacks */
-  hsdram->hdma->XferCpltCallback  = HAL_SDRAM_DMA_XferCpltCallback;
-  hsdram->hdma->XferErrorCallback = HAL_SDRAM_DMA_XferErrorCallback;
-  
-  /* Enable the DMA Stream */
-  HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);  
-  
-  return HAL_OK; 
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Configure DMA user callbacks */
+    if (state == HAL_SDRAM_STATE_READY)
+    {
+      hsdram->hdma->XferCpltCallback = SDRAM_DMACplt;
+    }
+    else
+    {
+      hsdram->hdma->XferCpltCallback = SDRAM_DMACpltProt;
+    }
+    hsdram->hdma->XferErrorCallback = SDRAM_DMAError;
+
+    /* Enable the DMA Stream */
+    status = HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
+  }
+  else
+  {
+    status = HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
@@ -644,40 +742,44 @@
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                      uint32_t BufferSize)
 {
-  uint32_t tmp = 0U;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsdram);
-  
-  /* Check the SDRAM controller state */  
-  tmp = hsdram->State;
-  
-  if(tmp == HAL_SDRAM_STATE_BUSY)
+  HAL_StatusTypeDef status;
+
+  /* Check the SDRAM controller state */
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
-    return HAL_BUSY;
+    status = HAL_BUSY;
   }
-  else if((tmp == HAL_SDRAM_STATE_PRECHARGED) || (tmp == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
-  }  
-  
-  /* Configure DMA user callbacks */
-  hsdram->hdma->XferCpltCallback  = HAL_SDRAM_DMA_XferCpltCallback;
-  hsdram->hdma->XferErrorCallback = HAL_SDRAM_DMA_XferErrorCallback;
-  
-  /* Enable the DMA Stream */
-  HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
-  
-  /* Process Unlocked */
-  __HAL_UNLOCK(hsdram);
-  
-  return HAL_OK;
+    /* Process Locked */
+    __HAL_LOCK(hsdram);
+
+    /* Update the SDRAM controller state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Configure DMA user callbacks */
+    hsdram->hdma->XferCpltCallback = SDRAM_DMACplt;
+    hsdram->hdma->XferErrorCallback = SDRAM_DMAError;
+
+    /* Enable the DMA Stream */
+    status = HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hsdram);
+  }
+  else
+  {
+    status = HAL_ERROR;
+  }
+
+  return status;
 }
 
 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
@@ -693,53 +795,54 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_SDRAM_RegisterCallback (SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
+                                             pSDRAM_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SDRAM_StateTypeDef state;
-  
-  if(pCallback == NULL)
+
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
 
   /* Process locked */
   __HAL_LOCK(hsdram);
-  
+
   state = hsdram->State;
-  if((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SDRAM_MSP_INIT_CB_ID :
-      hsdram->MspInitCallback = pCallback;
-      break;
-    case HAL_SDRAM_MSP_DEINIT_CB_ID :
-      hsdram->MspDeInitCallback = pCallback;
-      break;
-    case HAL_SDRAM_REFRESH_ERR_CB_ID :
-      hsdram->RefreshErrorCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SDRAM_MSP_INIT_CB_ID :
+        hsdram->MspInitCallback = pCallback;
+        break;
+      case HAL_SDRAM_MSP_DEINIT_CB_ID :
+        hsdram->MspDeInitCallback = pCallback;
+        break;
+      case HAL_SDRAM_REFRESH_ERR_CB_ID :
+        hsdram->RefreshErrorCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hsdram->State == HAL_SDRAM_STATE_RESET)
+  else if (hsdram->State == HAL_SDRAM_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_SDRAM_MSP_INIT_CB_ID :
-      hsdram->MspInitCallback = pCallback;
-      break;
-    case HAL_SDRAM_MSP_DEINIT_CB_ID :
-      hsdram->MspDeInitCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SDRAM_MSP_INIT_CB_ID :
+        hsdram->MspInitCallback = pCallback;
+        break;
+      case HAL_SDRAM_MSP_DEINIT_CB_ID :
+        hsdram->MspDeInitCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -766,54 +869,54 @@
   *          @arg @ref HAL_SDRAM_DMA_XFER_ERR_CB_ID   SDRAM DMA Xfer Error callback ID
   * @retval status
   */
-HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback (SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId)
+HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SDRAM_StateTypeDef state;
-  
+
   /* Process locked */
   __HAL_LOCK(hsdram);
-  
+
   state = hsdram->State;
-  if((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SDRAM_MSP_INIT_CB_ID :
-      hsdram->MspInitCallback = HAL_SDRAM_MspInit;
-      break;
-    case HAL_SDRAM_MSP_DEINIT_CB_ID :
-      hsdram->MspDeInitCallback = HAL_SDRAM_MspDeInit;
-      break;
-    case HAL_SDRAM_REFRESH_ERR_CB_ID :
-      hsdram->RefreshErrorCallback = HAL_SDRAM_RefreshErrorCallback;
-      break;
-    case HAL_SDRAM_DMA_XFER_CPLT_CB_ID :
-      hsdram->DmaXferCpltCallback = HAL_SDRAM_DMA_XferCpltCallback;
-      break;
-    case HAL_SDRAM_DMA_XFER_ERR_CB_ID :
-      hsdram->DmaXferErrorCallback = HAL_SDRAM_DMA_XferErrorCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SDRAM_MSP_INIT_CB_ID :
+        hsdram->MspInitCallback = HAL_SDRAM_MspInit;
+        break;
+      case HAL_SDRAM_MSP_DEINIT_CB_ID :
+        hsdram->MspDeInitCallback = HAL_SDRAM_MspDeInit;
+        break;
+      case HAL_SDRAM_REFRESH_ERR_CB_ID :
+        hsdram->RefreshErrorCallback = HAL_SDRAM_RefreshErrorCallback;
+        break;
+      case HAL_SDRAM_DMA_XFER_CPLT_CB_ID :
+        hsdram->DmaXferCpltCallback = HAL_SDRAM_DMA_XferCpltCallback;
+        break;
+      case HAL_SDRAM_DMA_XFER_ERR_CB_ID :
+        hsdram->DmaXferErrorCallback = HAL_SDRAM_DMA_XferErrorCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(hsdram->State == HAL_SDRAM_STATE_RESET)
+  else if (hsdram->State == HAL_SDRAM_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_SDRAM_MSP_INIT_CB_ID :
-      hsdram->MspInitCallback = HAL_SDRAM_MspInit;
-      break;
-    case HAL_SDRAM_MSP_DEINIT_CB_ID :
-      hsdram->MspDeInitCallback = HAL_SDRAM_MspDeInit;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SDRAM_MSP_INIT_CB_ID :
+        hsdram->MspInitCallback = HAL_SDRAM_MspInit;
+        break;
+      case HAL_SDRAM_MSP_DEINIT_CB_ID :
+        hsdram->MspDeInitCallback = HAL_SDRAM_MspDeInit;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -838,34 +941,35 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_DmaCallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId,
+                                                pSDRAM_DmaCallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SDRAM_StateTypeDef state;
-  
-  if(pCallback == NULL)
+
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
 
   /* Process locked */
   __HAL_LOCK(hsdram);
-  
+
   state = hsdram->State;
-  if((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
+  if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_WRITE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SDRAM_DMA_XFER_CPLT_CB_ID :
-      hsdram->DmaXferCpltCallback = pCallback;
-      break;
-    case HAL_SDRAM_DMA_XFER_ERR_CB_ID :
-      hsdram->DmaXferErrorCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SDRAM_DMA_XFER_CPLT_CB_ID :
+        hsdram->DmaXferCpltCallback = pCallback;
+        break;
+      case HAL_SDRAM_DMA_XFER_ERR_CB_ID :
+        hsdram->DmaXferErrorCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -878,19 +982,19 @@
   __HAL_UNLOCK(hsdram);
   return status;
 }
-#endif
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
 
 /**
   * @}
   */
-  
-/** @defgroup SDRAM_Exported_Functions_Group3 Control functions 
- *  @brief   management functions 
- *
-@verbatim   
+
+/** @defgroup SDRAM_Exported_Functions_Group3 Control functions
+  *  @brief   management functions
+  *
+@verbatim
   ==============================================================================
                          ##### SDRAM Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the SDRAM interface.
@@ -906,23 +1010,29 @@
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram)
-{ 
-  /* Check the SDRAM controller state */ 
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+{
+  /* Check the SDRAM controller state */
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
-  /* Enable write protection */
-  FMC_SDRAM_WriteProtection_Enable(hsdram->Instance, hsdram->Init.SDBank);
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_WRITE_PROTECTED;
-  
-  return HAL_OK;  
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
+  {
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Enable write protection */
+    (void)FMC_SDRAM_WriteProtection_Enable(hsdram->Instance, hsdram->Init.SDBank);
+
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_WRITE_PROTECTED;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
@@ -933,21 +1043,29 @@
   */
 HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram)
 {
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
-  /* Disable write protection */
-  FMC_SDRAM_WriteProtection_Disable(hsdram->Instance, hsdram->Init.SDBank);
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_READY;
-  
+  else if (state == HAL_SDRAM_STATE_WRITE_PROTECTED)
+  {
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Disable write protection */
+    (void)FMC_SDRAM_WriteProtection_Disable(hsdram->Instance, hsdram->Init.SDBank);
+
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
@@ -958,85 +1076,106 @@
   * @param  Command SDRAM command structure
   * @param  Timeout Timeout duration
   * @retval HAL status
-  */  
-HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
+  */
+HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
+                                        uint32_t Timeout)
 {
+  HAL_SDRAM_StateTypeDef state = hsdram->State;
+
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (state == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
   }
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
-  /* Send SDRAM command */
-  FMC_SDRAM_SendCommand(hsdram->Instance, Command, Timeout);
-  
-  /* Update the SDRAM controller state */
-  if(Command->CommandMode == FMC_SDRAM_CMD_PALL)
+  else if ((state == HAL_SDRAM_STATE_READY) || (state == HAL_SDRAM_STATE_PRECHARGED))
   {
-    hsdram->State = HAL_SDRAM_STATE_PRECHARGED;
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Send SDRAM command */
+    (void)FMC_SDRAM_SendCommand(hsdram->Instance, Command, Timeout);
+
+    /* Update the SDRAM controller state state */
+    if (Command->CommandMode == FMC_SDRAM_CMD_PALL)
+    {
+      hsdram->State = HAL_SDRAM_STATE_PRECHARGED;
+    }
+    else
+    {
+      hsdram->State = HAL_SDRAM_STATE_READY;
+    }
   }
   else
   {
-    hsdram->State = HAL_SDRAM_STATE_READY;
+    return HAL_ERROR;
   }
-  
-  return HAL_OK;  
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Programs the SDRAM Memory Refresh rate.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
-  *                the configuration information for SDRAM module.  
-  * @param  RefreshRate The SDRAM refresh rate value       
+  *                the configuration information for SDRAM module.
+  * @param  RefreshRate The SDRAM refresh rate value
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate)
 {
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
-  } 
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
-  /* Program the refresh rate */
-  FMC_SDRAM_ProgramRefreshRate(hsdram->Instance ,RefreshRate);
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_READY;
-  
-  return HAL_OK;   
+  }
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
+  {
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Program the refresh rate */
+    (void)FMC_SDRAM_ProgramRefreshRate(hsdram->Instance, RefreshRate);
+
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Sets the Number of consecutive SDRAM Memory auto Refresh commands.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
-  *                the configuration information for SDRAM module.  
-  * @param  AutoRefreshNumber The SDRAM auto Refresh number       
+  *                the configuration information for SDRAM module.
+  * @param  AutoRefreshNumber The SDRAM auto Refresh number
   * @retval HAL status
   */
 HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber)
 {
   /* Check the SDRAM controller state */
-  if(hsdram->State == HAL_SDRAM_STATE_BUSY)
+  if (hsdram->State == HAL_SDRAM_STATE_BUSY)
   {
     return HAL_BUSY;
-  } 
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_BUSY;
-  
-  /* Set the Auto-Refresh number */
-  FMC_SDRAM_SetAutoRefreshNumber(hsdram->Instance ,AutoRefreshNumber);
-  
-  /* Update the SDRAM state */
-  hsdram->State = HAL_SDRAM_STATE_READY;
-  
+  }
+  else if (hsdram->State == HAL_SDRAM_STATE_READY)
+  {
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_BUSY;
+
+    /* Set the Auto-Refresh number */
+    (void)FMC_SDRAM_SetAutoRefreshNumber(hsdram->Instance, AutoRefreshNumber);
+
+    /* Update the SDRAM state */
+    hsdram->State = HAL_SDRAM_STATE_READY;
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
   return HAL_OK;
 }
 
@@ -1044,27 +1183,27 @@
   * @brief  Returns the SDRAM memory current mode.
   * @param  hsdram pointer to a SDRAM_HandleTypeDef structure that contains
   *                the configuration information for SDRAM module.
-  * @retval The SDRAM memory mode.        
+  * @retval The SDRAM memory mode.
   */
 uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram)
 {
   /* Return the SDRAM memory current mode */
-  return(FMC_SDRAM_GetModeStatus(hsdram->Instance, hsdram->Init.SDBank));
+  return (FMC_SDRAM_GetModeStatus(hsdram->Instance, hsdram->Init.SDBank));
 }
 
 /**
   * @}
   */
-  
-/** @defgroup SDRAM_Exported_Functions_Group4 State functions 
- *  @brief   Peripheral State functions 
- *
-@verbatim   
+
+/** @defgroup SDRAM_Exported_Functions_Group4 State functions
+  *  @brief   Peripheral State functions
+  *
+@verbatim
   ==============================================================================
                       ##### SDRAM State functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This subsection permits to get in run-time the status of the SDRAM controller 
+    This subsection permits to get in run-time the status of the SDRAM controller
     and the data flow.
 
 @endverbatim
@@ -1084,19 +1223,86 @@
 
 /**
   * @}
-  */    
+  */
 
 /**
   * @}
   */
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+
+/**
+  * @brief  DMA SDRAM process complete callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SDRAM_DMACplt(DMA_HandleTypeDef *hdma)
+{
+  SDRAM_HandleTypeDef *hsdram = (SDRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SDRAM controller state */
+  hsdram->State = HAL_SDRAM_STATE_READY;
+
+#if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
+  hsdram->DmaXferCpltCallback(hdma);
+#else
+  HAL_SDRAM_DMA_XferCpltCallback(hdma);
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SRAM process complete callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SDRAM_DMACpltProt(DMA_HandleTypeDef *hdma)
+{
+  SDRAM_HandleTypeDef *hsdram = (SDRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SDRAM controller state */
+  hsdram->State = HAL_SDRAM_STATE_WRITE_PROTECTED;
+
+#if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
+  hsdram->DmaXferCpltCallback(hdma);
+#else
+  HAL_SDRAM_DMA_XferCpltCallback(hdma);
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SDRAM error callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SDRAM_DMAError(DMA_HandleTypeDef *hdma)
+{
+  SDRAM_HandleTypeDef *hsdram = (SDRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SDRAM controller state */
+  hsdram->State = HAL_SDRAM_STATE_ERROR;
+
+#if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
+  hsdram->DmaXferErrorCallback(hdma);
+#else
+  HAL_SDRAM_DMA_XferErrorCallback(hdma);
+#endif /* USE_HAL_SDRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @}
+  */
+
 #endif /* HAL_SDRAM_MODULE_ENABLED */
-/**
-  * @}
-  */
 
 /**
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* FMC_Bank5_6 */
diff --git a/Src/stm32f4xx_hal_smartcard.c b/Src/stm32f4xx_hal_smartcard.c
index 6746744..40a367a 100644
--- a/Src/stm32f4xx_hal_smartcard.c
+++ b/Src/stm32f4xx_hal_smartcard.c
@@ -10,6 +10,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State and Error functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                      ##### How to use this driver #####
@@ -159,17 +170,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -756,9 +756,9 @@
   * @param  Timeout Timeout duration
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 {
-  uint8_t *tmp = pData;
+  const uint8_t *tmp = pData;
   uint32_t tickstart = 0U;
 
   if(hsc->gState == HAL_SMARTCARD_STATE_READY)
@@ -876,7 +876,7 @@
   * @param  Size   Amount of data to be sent
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size)
 {
   /* Check that a Tx process is not already ongoing */
   if(hsc->gState == HAL_SMARTCARD_STATE_READY)
@@ -969,9 +969,9 @@
   * @param  Size   Amount of data to be sent
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size)
 {
-  uint32_t *tmp;
+  const uint32_t *tmp;
 
   /* Check that a Tx process is not already ongoing */
   if(hsc->gState == HAL_SMARTCARD_STATE_READY)
@@ -1001,8 +1001,8 @@
     hsc->hdmatx->XferAbortCallback = NULL;
 
     /* Enable the SMARTCARD transmit DMA stream */
-    tmp = (uint32_t*)&pData;
-    HAL_DMA_Start_IT(hsc->hdmatx, *(uint32_t*)tmp, (uint32_t)&hsc->Instance->DR, Size);
+    tmp = (const uint32_t*)&pData;
+    HAL_DMA_Start_IT(hsc->hdmatx, *(const uint32_t*)tmp, (uint32_t)&hsc->Instance->DR, Size);
 
      /* Clear the TC flag in the SR register by writing 0 to it */
     __HAL_SMARTCARD_CLEAR_FLAG(hsc, SMARTCARD_FLAG_TC);
@@ -1921,11 +1921,12 @@
 }
 
 /**
-  * @brief  This function handles SMARTCARD Communication Timeout.
+  * @brief  This function handles SMARTCARD Communication Timeout. It waits
+  *         until a flag is no longer in the specified status.
   * @param  hsc    Pointer to a SMARTCARD_HandleTypeDef structure that contains
   *                the configuration information for SMARTCARD module.
   * @param  Flag   Specifies the SMARTCARD flag to check.
-  * @param  Status The new Flag status (SET or RESET).
+  * @param  Status The actual Flag status (SET or RESET).
   * @param  Timeout Timeout duration
   * @param  Tickstart Tick start value
   * @retval HAL status
@@ -2360,4 +2361,4 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_smbus.c b/Src/stm32f4xx_hal_smbus.c
index 09df379..25c72fd 100644
--- a/Src/stm32f4xx_hal_smbus.c
+++ b/Src/stm32f4xx_hal_smbus.c
@@ -10,6 +10,17 @@
   *           + IO operation functions
   *           + Peripheral State, Mode and Error functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -152,18 +163,6 @@
      are set to the corresponding weak functions.
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -2783,4 +2782,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_spdifrx.c b/Src/stm32f4xx_hal_spdifrx.c
index 50fac5e..da7c302 100644
--- a/Src/stm32f4xx_hal_spdifrx.c
+++ b/Src/stm32f4xx_hal_spdifrx.c
@@ -8,6 +8,18 @@
   *           + Data transfers functions
   *           + DMA transfers management
   *           + Interrupts and flags management
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
  ===============================================================================
                   ##### How to use this driver #####
@@ -142,18 +154,6 @@
   are set to the corresponding weak functions.
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -188,7 +188,8 @@
 static void  SPDIFRX_DMAError(DMA_HandleTypeDef *hdma);
 static void  SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif);
 static void  SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif);
-static HAL_StatusTypeDef  SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t tickstart);
+static HAL_StatusTypeDef  SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag,
+                                                         FlagStatus Status, uint32_t Timeout, uint32_t tickstart);
 /**
   * @}
   */
@@ -238,7 +239,7 @@
   uint32_t tmpreg;
 
   /* Check the SPDIFRX handle allocation */
-  if(hspdif == NULL)
+  if (hspdif == NULL)
   {
     return HAL_ERROR;
   }
@@ -256,7 +257,7 @@
   assert_param(IS_PARITY_ERROR_MASK(hspdif->Init.ParityErrorMask));
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
-  if(hspdif->State == HAL_SPDIFRX_STATE_RESET)
+  if (hspdif->State == HAL_SPDIFRX_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hspdif->Lock = HAL_UNLOCKED;
@@ -267,7 +268,7 @@
     hspdif->CxCpltCallback      = HAL_SPDIFRX_CxCpltCallback;     /* Legacy weak CxCpltCallback     */
     hspdif->ErrorCallback       = HAL_SPDIFRX_ErrorCallback;      /* Legacy weak ErrorCallback      */
 
-    if(hspdif->MspInitCallback == NULL)
+    if (hspdif->MspInitCallback == NULL)
     {
       hspdif->MspInitCallback = HAL_SPDIFRX_MspInit; /* Legacy weak MspInit  */
     }
@@ -276,7 +277,7 @@
     hspdif->MspInitCallback(hspdif);
   }
 #else
-  if(hspdif->State == HAL_SPDIFRX_STATE_RESET)
+  if (hspdif->State == HAL_SPDIFRX_STATE_RESET)
   {
     /* Allocate lock resource and initialize it */
     hspdif->Lock = HAL_UNLOCKED;
@@ -310,7 +311,7 @@
              hspdif->Init.ChannelStatusMask |
              hspdif->Init.ValidityBitMask |
              hspdif->Init.ParityErrorMask
-             );
+            );
 
 
   hspdif->Instance->CR = tmpreg;
@@ -331,7 +332,7 @@
 HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif)
 {
   /* Check the SPDIFRX handle allocation */
-  if(hspdif == NULL)
+  if (hspdif == NULL)
   {
     return HAL_ERROR;
   }
@@ -345,7 +346,7 @@
   __HAL_SPDIFRX_IDLE(hspdif);
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
-  if(hspdif->MspDeInitCallback == NULL)
+  if (hspdif->MspDeInitCallback == NULL)
   {
     hspdif->MspDeInitCallback = HAL_SPDIFRX_MspDeInit; /* Legacy weak MspDeInit  */
   }
@@ -415,11 +416,12 @@
   * @param  pCallback pointer to the Callback function
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID, pSPDIFRX_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID,
+                                               pSPDIFRX_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     /* Update the error code */
     hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
@@ -428,7 +430,7 @@
   /* Process locked */
   __HAL_LOCK(hspdif);
 
-  if(HAL_SPDIFRX_STATE_READY == hspdif->State)
+  if (HAL_SPDIFRX_STATE_READY == hspdif->State)
   {
     switch (CallbackID)
     {
@@ -468,7 +470,7 @@
         break;
     }
   }
-  else if(HAL_SPDIFRX_STATE_RESET == hspdif->State)
+  else if (HAL_SPDIFRX_STATE_RESET == hspdif->State)
   {
     switch (CallbackID)
     {
@@ -483,7 +485,7 @@
       default :
         /* Update the error code */
         hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
-       /* Return error status */
+        /* Return error status */
         status =  HAL_ERROR;
         break;
     }
@@ -503,7 +505,7 @@
 
 /**
   * @brief  Unregister a SPDIFRX Callback
-  *         SPDIFRX callabck is redirected to the weak predefined callback
+  *         SPDIFRX callback is redirected to the weak predefined callback
   * @param  hspdif SPDIFRX handle
   * @param  CallbackID ID of the callback to be unregistered
   *         This parameter can be one of the following values:
@@ -516,14 +518,15 @@
   *          @arg @ref HAL_SPDIFRX_MSPDEINIT_CB_ID  MspDeInit callback ID
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackIDTypeDef CallbackID)
+HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif,
+                                                 HAL_SPDIFRX_CallbackIDTypeDef CallbackID)
 {
-HAL_StatusTypeDef status = HAL_OK;
+  HAL_StatusTypeDef status = HAL_OK;
 
   /* Process locked */
   __HAL_LOCK(hspdif);
 
-  if(HAL_SPDIFRX_STATE_READY == hspdif->State)
+  if (HAL_SPDIFRX_STATE_READY == hspdif->State)
   {
     switch (CallbackID)
     {
@@ -550,12 +553,12 @@
       default :
         /* Update the error code */
         hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK;
-       /* Return error status */
+        /* Return error status */
         status =  HAL_ERROR;
         break;
     }
   }
-  else if(HAL_SPDIFRX_STATE_RESET == hspdif->State)
+  else if (HAL_SPDIFRX_STATE_RESET == hspdif->State)
   {
     switch (CallbackID)
     {
@@ -601,7 +604,7 @@
   uint32_t tmpreg;
 
   /* Check the SPDIFRX handle allocation */
-  if(hspdif == NULL)
+  if (hspdif == NULL)
   {
     return HAL_ERROR;
   }
@@ -617,9 +620,9 @@
   /* Reset the old SPDIFRX CR configuration */
   tmpreg = hspdif->Instance->CR;
 
-  if(((tmpreg & SPDIFRX_STATE_RCV) == SPDIFRX_STATE_RCV) &&
-     (((tmpreg & SPDIFRX_CR_DRFMT) != sDataFormat.DataFormat) ||
-      ((tmpreg & SPDIFRX_CR_RXSTEO) != sDataFormat.StereoMode)))
+  if (((tmpreg & SPDIFRX_STATE_RCV) == SPDIFRX_STATE_RCV) &&
+      (((tmpreg & SPDIFRX_CR_DRFMT) != sDataFormat.DataFormat) ||
+       ((tmpreg & SPDIFRX_CR_RXSTEO) != sDataFormat.StereoMode)))
   {
     return HAL_ERROR;
   }
@@ -683,8 +686,8 @@
         (++) HAL_SPDIFRX_CxCpltCallback()
 
 @endverbatim
-* @{
-*/
+  * @{
+  */
 
 /**
   * @brief  Receives an amount of data (Data Flow) in blocking mode.
@@ -695,18 +698,19 @@
   * @param  Timeout Timeout duration
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
+                                              uint32_t Timeout)
 {
   uint32_t tickstart;
   uint16_t sizeCounter = Size;
   uint32_t *pTmpBuf = pData;
 
-  if((pData == NULL ) || (Size == 0U))
+  if ((pData == NULL) || (Size == 0U))
   {
     return  HAL_ERROR;
   }
 
-  if(hspdif->State == HAL_SPDIFRX_STATE_READY)
+  if (hspdif->State == HAL_SPDIFRX_STATE_READY)
   {
     /* Process Locked */
     __HAL_LOCK(hspdif);
@@ -720,7 +724,7 @@
     tickstart = HAL_GetTick();
 
     /* Wait until SYNCD flag is set */
-    if(SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
+    if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
     {
       return HAL_TIMEOUT;
     }
@@ -729,13 +733,13 @@
     __HAL_SPDIFRX_RCV(hspdif);
 
     /* Receive data flow */
-    while(sizeCounter > 0U)
+    while (sizeCounter > 0U)
     {
       /* Get tick */
       tickstart = HAL_GetTick();
 
       /* Wait until RXNE flag is set */
-      if(SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
+      if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
       {
         return HAL_TIMEOUT;
       }
@@ -768,18 +772,19 @@
   * @param  Timeout Timeout duration
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
+                                                 uint32_t Timeout)
 {
   uint32_t tickstart;
   uint16_t sizeCounter = Size;
   uint32_t *pTmpBuf = pData;
 
-  if((pData == NULL ) || (Size == 0U))
+  if ((pData == NULL) || (Size == 0U))
   {
     return  HAL_ERROR;
   }
 
-  if(hspdif->State == HAL_SPDIFRX_STATE_READY)
+  if (hspdif->State == HAL_SPDIFRX_STATE_READY)
   {
     /* Process Locked */
     __HAL_LOCK(hspdif);
@@ -793,7 +798,7 @@
     tickstart = HAL_GetTick();
 
     /* Wait until SYNCD flag is set */
-    if(SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
+    if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_OK)
     {
       return HAL_TIMEOUT;
     }
@@ -802,13 +807,13 @@
     __HAL_SPDIFRX_RCV(hspdif);
 
     /* Receive control flow */
-    while(sizeCounter > 0U)
+    while (sizeCounter > 0U)
     {
       /* Get tick */
       tickstart = HAL_GetTick();
 
       /* Wait until CSRNE flag is set */
-      if(SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_CSRNE, RESET, Timeout, tickstart) != HAL_OK)
+      if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_CSRNE, RESET, Timeout, tickstart) != HAL_OK)
       {
         return HAL_TIMEOUT;
       }
@@ -845,9 +850,9 @@
 
   const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State;
 
-  if((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_CX))
+  if ((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_CX))
   {
-    if((pData == NULL) || (Size == 0U))
+    if ((pData == NULL) || (Size == 0U))
     {
       return HAL_ERROR;
     }
@@ -873,7 +878,7 @@
     /* Enable the SPDIFRX RXNE interrupt */
     __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_RXNE);
 
-    if((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
+    if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
     {
       /* Start synchronization */
       __HAL_SPDIFRX_SYNC(hspdif);
@@ -892,7 +897,7 @@
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
 
-          hspdif->State= HAL_SPDIFRX_STATE_READY;
+          hspdif->State = HAL_SPDIFRX_STATE_READY;
 
           /* Process Unlocked */
           __HAL_UNLOCK(hspdif);
@@ -930,9 +935,9 @@
 
   const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State;
 
-  if((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_RX))
+  if ((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_RX))
   {
-    if((pData == NULL ) || (Size == 0U))
+    if ((pData == NULL) || (Size == 0U))
     {
       return HAL_ERROR;
     }
@@ -958,7 +963,7 @@
     /* Enable the SPDIFRX CSRNE interrupt */
     __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
 
-    if((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
+    if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
     {
       /* Start synchronization */
       __HAL_SPDIFRX_SYNC(hspdif);
@@ -977,7 +982,7 @@
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
 
-          hspdif->State= HAL_SPDIFRX_STATE_READY;
+          hspdif->State = HAL_SPDIFRX_STATE_READY;
 
           /* Process Unlocked */
           __HAL_UNLOCK(hspdif);
@@ -1015,12 +1020,12 @@
 
   const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State;
 
-  if((pData == NULL) || (Size == 0U))
+  if ((pData == NULL) || (Size == 0U))
   {
     return  HAL_ERROR;
   }
 
-  if((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_CX))
+  if ((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_CX))
   {
     /* Process Locked */
     __HAL_LOCK(hspdif);
@@ -1042,7 +1047,7 @@
     hspdif->hdmaDrRx->XferErrorCallback = SPDIFRX_DMAError;
 
     /* Enable the DMA request */
-    if(HAL_DMA_Start_IT(hspdif->hdmaDrRx, (uint32_t)&hspdif->Instance->DR, (uint32_t)hspdif->pRxBuffPtr, Size) != HAL_OK)
+    if (HAL_DMA_Start_IT(hspdif->hdmaDrRx, (uint32_t)&hspdif->Instance->DR, (uint32_t)hspdif->pRxBuffPtr, Size) != HAL_OK)
     {
       /* Set SPDIFRX error */
       hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA;
@@ -1059,7 +1064,7 @@
     /* Enable RXDMAEN bit in SPDIFRX CR register for data flow reception*/
     hspdif->Instance->CR |= SPDIFRX_CR_RXDMAEN;
 
-    if((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
+    if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
     {
       /* Start synchronization */
       __HAL_SPDIFRX_SYNC(hspdif);
@@ -1078,7 +1083,7 @@
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
 
-          hspdif->State= HAL_SPDIFRX_STATE_READY;
+          hspdif->State = HAL_SPDIFRX_STATE_READY;
 
           /* Process Unlocked */
           __HAL_UNLOCK(hspdif);
@@ -1116,12 +1121,12 @@
 
   const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State;
 
-  if((pData == NULL) || (Size == 0U))
+  if ((pData == NULL) || (Size == 0U))
   {
     return  HAL_ERROR;
   }
 
-  if((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_RX))
+  if ((tempState == HAL_SPDIFRX_STATE_READY) || (tempState == HAL_SPDIFRX_STATE_BUSY_RX))
   {
     hspdif->pCsBuffPtr = pData;
     hspdif->CsXferSize = Size;
@@ -1143,7 +1148,7 @@
     hspdif->hdmaCsRx->XferErrorCallback = SPDIFRX_DMAError;
 
     /* Enable the DMA request */
-    if(HAL_DMA_Start_IT(hspdif->hdmaCsRx, (uint32_t)&hspdif->Instance->CSR, (uint32_t)hspdif->pCsBuffPtr, Size) != HAL_OK)
+    if (HAL_DMA_Start_IT(hspdif->hdmaCsRx, (uint32_t)&hspdif->Instance->CSR, (uint32_t)hspdif->pCsBuffPtr, Size) != HAL_OK)
     {
       /* Set SPDIFRX error */
       hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA;
@@ -1160,7 +1165,7 @@
     /* Enable CBDMAEN bit in SPDIFRX CR register for control flow reception*/
     hspdif->Instance->CR |= SPDIFRX_CR_CBDMAEN;
 
-    if((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
+    if ((SPDIFRX->CR & SPDIFRX_CR_SPDIFEN) != SPDIFRX_STATE_RCV)
     {
       /* Start synchronization */
       __HAL_SPDIFRX_SYNC(hspdif);
@@ -1179,7 +1184,7 @@
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
           __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
 
-          hspdif->State= HAL_SPDIFRX_STATE_READY;
+          hspdif->State = HAL_SPDIFRX_STATE_READY;
 
           /* Process Unlocked */
           __HAL_UNLOCK(hspdif);
@@ -1244,21 +1249,21 @@
   uint32_t itSource = hspdif->Instance->IMR;
 
   /* SPDIFRX in mode Data Flow Reception */
-  if(((itFlag & SPDIFRX_FLAG_RXNE) == SPDIFRX_FLAG_RXNE) && ((itSource &  SPDIFRX_IT_RXNE) == SPDIFRX_IT_RXNE))
+  if (((itFlag & SPDIFRX_FLAG_RXNE) == SPDIFRX_FLAG_RXNE) && ((itSource &  SPDIFRX_IT_RXNE) == SPDIFRX_IT_RXNE))
   {
     __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_RXNE);
     SPDIFRX_ReceiveDataFlow_IT(hspdif);
   }
 
   /* SPDIFRX in mode Control Flow Reception */
-  if(((itFlag & SPDIFRX_FLAG_CSRNE) == SPDIFRX_FLAG_CSRNE) && ((itSource &  SPDIFRX_IT_CSRNE) == SPDIFRX_IT_CSRNE))
+  if (((itFlag & SPDIFRX_FLAG_CSRNE) == SPDIFRX_FLAG_CSRNE) && ((itSource &  SPDIFRX_IT_CSRNE) == SPDIFRX_IT_CSRNE))
   {
     __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_CSRNE);
     SPDIFRX_ReceiveControlFlow_IT(hspdif);
   }
 
   /* SPDIFRX Overrun error interrupt occurred */
-  if(((itFlag & SPDIFRX_FLAG_OVR) == SPDIFRX_FLAG_OVR) && ((itSource &  SPDIFRX_IT_OVRIE) == SPDIFRX_IT_OVRIE))
+  if (((itFlag & SPDIFRX_FLAG_OVR) == SPDIFRX_FLAG_OVR) && ((itSource &  SPDIFRX_IT_OVRIE) == SPDIFRX_IT_OVRIE))
   {
     __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_OVRIE);
 
@@ -1270,7 +1275,7 @@
   }
 
   /* SPDIFRX Parity error interrupt occurred */
-  if(((itFlag & SPDIFRX_FLAG_PERR) == SPDIFRX_FLAG_PERR) && ((itSource &  SPDIFRX_IT_PERRIE) == SPDIFRX_IT_PERRIE))
+  if (((itFlag & SPDIFRX_FLAG_PERR) == SPDIFRX_FLAG_PERR) && ((itSource &  SPDIFRX_IT_PERRIE) == SPDIFRX_IT_PERRIE))
   {
     __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_PERRIE);
 
@@ -1381,7 +1386,7 @@
   * @param  hspdif SPDIFRX handle
   * @retval HAL state
   */
-HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const * const hspdif)
+HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif)
 {
   return hspdif->State;
 }
@@ -1391,7 +1396,7 @@
   * @param  hspdif SPDIFRX handle
   * @retval SPDIFRX Error Code
   */
-uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const * const hspdif)
+uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif)
 {
   return hspdif->ErrorCode;
 }
@@ -1407,10 +1412,10 @@
   */
 static void SPDIFRX_DMARxCplt(DMA_HandleTypeDef *hdma)
 {
-  SPDIFRX_HandleTypeDef* hspdif = ( SPDIFRX_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
+  SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
 
   /* Disable Rx DMA Request */
-  if(hdma->Init.Mode != DMA_CIRCULAR)
+  if (hdma->Init.Mode != DMA_CIRCULAR)
   {
     hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN);
     hspdif->RxXferCount = 0;
@@ -1430,7 +1435,7 @@
   */
 static void SPDIFRX_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
 {
-  SPDIFRX_HandleTypeDef* hspdif = (SPDIFRX_HandleTypeDef*)((DMA_HandleTypeDef*)hdma)->Parent;
+  SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
   hspdif->RxHalfCpltCallback(hspdif);
@@ -1447,7 +1452,7 @@
   */
 static void SPDIFRX_DMACxCplt(DMA_HandleTypeDef *hdma)
 {
-  SPDIFRX_HandleTypeDef* hspdif = ( SPDIFRX_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
+  SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
 
   /* Disable Cb DMA Request */
   hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN);
@@ -1468,7 +1473,7 @@
   */
 static void SPDIFRX_DMACxHalfCplt(DMA_HandleTypeDef *hdma)
 {
-  SPDIFRX_HandleTypeDef* hspdif = (SPDIFRX_HandleTypeDef*)((DMA_HandleTypeDef*)hdma)->Parent;
+  SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
   hspdif->CxHalfCpltCallback(hspdif);
@@ -1484,13 +1489,13 @@
   */
 static void SPDIFRX_DMAError(DMA_HandleTypeDef *hdma)
 {
-  SPDIFRX_HandleTypeDef* hspdif = ( SPDIFRX_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
+  SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
 
   /* Disable Rx and Cb DMA Request */
   hspdif->Instance->CR &= (uint16_t)(~(SPDIFRX_CR_RXDMAEN | SPDIFRX_CR_CBDMAEN));
   hspdif->RxXferCount = 0;
 
-  hspdif->State= HAL_SPDIFRX_STATE_READY;
+  hspdif->State = HAL_SPDIFRX_STATE_READY;
 
   /* Set the error code and execute error callback*/
   hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_DMA;
@@ -1516,7 +1521,7 @@
   hspdif->pRxBuffPtr++;
   hspdif->RxXferCount--;
 
-  if(hspdif->RxXferCount == 0U)
+  if (hspdif->RxXferCount == 0U)
   {
     /* Disable RXNE/PE and OVR interrupts */
     __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE | SPDIFRX_IT_PERRIE | SPDIFRX_IT_RXNE);
@@ -1527,9 +1532,9 @@
     __HAL_UNLOCK(hspdif);
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
-  hspdif->RxCpltCallback(hspdif);
+    hspdif->RxCpltCallback(hspdif);
 #else
-  HAL_SPDIFRX_RxCpltCallback(hspdif);
+    HAL_SPDIFRX_RxCpltCallback(hspdif);
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
   }
 }
@@ -1546,7 +1551,7 @@
   hspdif->pCsBuffPtr++;
   hspdif->CsXferCount--;
 
-  if(hspdif->CsXferCount == 0U)
+  if (hspdif->CsXferCount == 0U)
   {
     /* Disable CSRNE interrupt */
     __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE);
@@ -1557,9 +1562,9 @@
     __HAL_UNLOCK(hspdif);
 
 #if (USE_HAL_SPDIFRX_REGISTER_CALLBACKS == 1)
-  hspdif->CxCpltCallback(hspdif);
+    hspdif->CxCpltCallback(hspdif);
 #else
-  HAL_SPDIFRX_CxCpltCallback(hspdif);
+    HAL_SPDIFRX_CxCpltCallback(hspdif);
 #endif /* USE_HAL_SPDIFRX_REGISTER_CALLBACKS */
   }
 }
@@ -1573,15 +1578,16 @@
   * @param tickstart Tick start value
   * @retval HAL status
   */
-static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t tickstart)
+static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Flag, FlagStatus Status,
+                                                        uint32_t Timeout, uint32_t tickstart)
 {
   /* Wait until flag is set */
-  while(__HAL_SPDIFRX_GET_FLAG(hspdif, Flag) == Status)
+  while (__HAL_SPDIFRX_GET_FLAG(hspdif, Flag) == Status)
   {
     /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if(((HAL_GetTick() - tickstart ) > Timeout) || (Timeout == 0U))
+      if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
       {
         /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */
         __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE);
@@ -1592,7 +1598,7 @@
         __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE);
         __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE);
 
-        hspdif->State= HAL_SPDIFRX_STATE_READY;
+        hspdif->State = HAL_SPDIFRX_STATE_READY;
 
         /* Process Unlocked */
         __HAL_UNLOCK(hspdif);
@@ -1619,5 +1625,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_spi.c b/Src/stm32f4xx_hal_spi.c
index e15ffcd..62d5d65 100644
--- a/Src/stm32f4xx_hal_spi.c
+++ b/Src/stm32f4xx_hal_spi.c
@@ -9,7 +9,17 @@
   *           + IO operation functions
   *           + Peripheral Control functions
   *           + Peripheral State functions
+  ******************************************************************************
+  * @attention
   *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -184,18 +194,6 @@
             (#) RX processes are HAL_SPI_Receive(), HAL_SPI_Receive_IT() and HAL_SPI_Receive_DMA()
             (#) TX processes are HAL_SPI_Transmit(), HAL_SPI_Transmit_IT() and HAL_SPI_Transmit_DMA()
 
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -3156,7 +3154,7 @@
   */
 static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi)
 {
-  __IO uint8_t  * ptmpreg8;
+  __IO uint8_t  *ptmpreg8;
   __IO uint8_t  tmpreg8 = 0;
 
   /* Initialize the 8bit temporary pointer */
@@ -3259,7 +3257,7 @@
   /* Read 16bit CRC to flush Data Register */
   tmpreg = READ_REG(hspi->Instance->DR);
   /* To avoid GCC warning */
-  UNUSED(tmpreg);  
+  UNUSED(tmpreg);
 
   /* Disable RXNE interrupt */
   __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE);
@@ -3314,7 +3312,7 @@
   */
 static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi)
 {
-  __IO uint8_t  * ptmpreg8;
+  __IO uint8_t  *ptmpreg8;
   __IO uint8_t  tmpreg8 = 0;
 
   /* Initialize the 8bit temporary pointer */
@@ -3526,7 +3524,7 @@
         return HAL_TIMEOUT;
       }
       /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop procedure */
-      if(count == 0U)
+      if (count == 0U)
       {
         tmp_timeout = 0U;
       }
@@ -3915,4 +3913,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_sram.c b/Src/stm32f4xx_hal_sram.c
index 7520569..ef2eaf0 100644
--- a/Src/stm32f4xx_hal_sram.c
+++ b/Src/stm32f4xx_hal_sram.c
@@ -3,58 +3,69 @@
   * @file    stm32f4xx_hal_sram.c
   * @author  MCD Application Team
   * @brief   SRAM HAL module driver.
-  *          This file provides a generic firmware to drive SRAM memories  
+  *          This file provides a generic firmware to drive SRAM memories
   *          mounted as external device.
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                           ##### How to use this driver #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This driver is a generic layered driver which contains a set of APIs used to 
-    control SRAM memories. It uses the FMC layer functions to interface 
-    with SRAM devices.  
+    This driver is a generic layered driver which contains a set of APIs used to
+    control SRAM memories. It uses the FMC layer functions to interface
+    with SRAM devices.
     The following sequence should be followed to configure the FMC/FSMC to interface
-    with SRAM/PSRAM memories: 
-      
+    with SRAM/PSRAM memories:
+
    (#) Declare a SRAM_HandleTypeDef handle structure, for example:
-          SRAM_HandleTypeDef  hsram; and: 
-          
-       (++) Fill the SRAM_HandleTypeDef handle "Init" field with the allowed 
+          SRAM_HandleTypeDef  hsram; and:
+
+       (++) Fill the SRAM_HandleTypeDef handle "Init" field with the allowed
             values of the structure member.
-            
-       (++) Fill the SRAM_HandleTypeDef handle "Instance" field with a predefined 
-            base register instance for NOR or SRAM device 
-                         
+
+       (++) Fill the SRAM_HandleTypeDef handle "Instance" field with a predefined
+            base register instance for NOR or SRAM device
+
        (++) Fill the SRAM_HandleTypeDef handle "Extended" field with a predefined
-            base register instance for NOR or SRAM extended mode 
-             
-   (#) Declare two FMC_NORSRAM_TimingTypeDef structures, for both normal and extended 
+            base register instance for NOR or SRAM extended mode
+
+   (#) Declare two FMC_NORSRAM_TimingTypeDef structures, for both normal and extended
        mode timings; for example:
           FMC_NORSRAM_TimingTypeDef  Timing and FMC_NORSRAM_TimingTypeDef  ExTiming;
       and fill its fields with the allowed values of the structure member.
-      
+
    (#) Initialize the SRAM Controller by calling the function HAL_SRAM_Init(). This function
        performs the following sequence:
-          
-       (##) MSP hardware layer configuration using the function HAL_SRAM_MspInit()
-       (##) Control register configuration using the FMC NORSRAM interface function 
-            FMC_NORSRAM_Init()
-       (##) Timing register configuration using the FMC NORSRAM interface function 
-            FMC_NORSRAM_Timing_Init()
-       (##) Extended mode Timing register configuration using the FMC NORSRAM interface function 
-            FMC_NORSRAM_Extended_Timing_Init()
-       (##) Enable the SRAM device using the macro __FMC_NORSRAM_ENABLE()    
 
-   (#) At this stage you can perform read/write accesses from/to the memory connected 
+       (##) MSP hardware layer configuration using the function HAL_SRAM_MspInit()
+       (##) Control register configuration using the FMC NORSRAM interface function
+            FMC_NORSRAM_Init()
+       (##) Timing register configuration using the FMC NORSRAM interface function
+            FMC_NORSRAM_Timing_Init()
+       (##) Extended mode Timing register configuration using the FMC NORSRAM interface function
+            FMC_NORSRAM_Extended_Timing_Init()
+       (##) Enable the SRAM device using the macro __FMC_NORSRAM_ENABLE()
+
+   (#) At this stage you can perform read/write accesses from/to the memory connected
        to the NOR/SRAM Bank. You can perform either polling or DMA transfer using the
        following APIs:
        (++) HAL_SRAM_Read()/HAL_SRAM_Write() for polling read/write access
        (++) HAL_SRAM_Read_DMA()/HAL_SRAM_Write_DMA() for DMA read/write transfer
-       
+
    (#) You can also control the SRAM device by calling the control APIs HAL_SRAM_WriteOperation_Enable()/
-       HAL_SRAM_WriteOperation_Disable() to respectively enable/disable the SRAM write operation  
-       
+       HAL_SRAM_WriteOperation_Disable() to respectively enable/disable the SRAM write operation
+
    (#) You can continuously monitor the SRAM device HAL state by calling the function
        HAL_SRAM_GetState()
 
@@ -64,25 +75,25 @@
       The compilation define  USE_HAL_SRAM_REGISTER_CALLBACKS when set to 1
       allows the user to configure dynamically the driver callbacks.
 
-      Use Functions @ref HAL_SRAM_RegisterCallback() to register a user callback,
+      Use Functions HAL_SRAM_RegisterCallback() to register a user callback,
       it allows to register following callbacks:
         (+) MspInitCallback    : SRAM MspInit.
         (+) MspDeInitCallback  : SRAM MspDeInit.
       This function takes as parameters the HAL peripheral handle, the Callback ID
       and a pointer to the user callback function.
 
-      Use function @ref HAL_SRAM_UnRegisterCallback() to reset a callback to the default
+      Use function HAL_SRAM_UnRegisterCallback() to reset a callback to the default
       weak (surcharged) function. It allows to reset following callbacks:
         (+) MspInitCallback    : SRAM MspInit.
         (+) MspDeInitCallback  : SRAM MspDeInit.
       This function) takes as parameters the HAL peripheral handle and the Callback ID.
 
-      By default, after the @ref HAL_SRAM_Init and if the state is HAL_SRAM_STATE_RESET
+      By default, after the HAL_SRAM_Init and if the state is HAL_SRAM_STATE_RESET
       all callbacks are reset to the corresponding legacy weak (surcharged) functions.
       Exception done for MspInit and MspDeInit callbacks that are respectively
-      reset to the legacy weak (surcharged) functions in the @ref HAL_SRAM_Init
-      and @ref  HAL_SRAM_DeInit only when these callbacks are null (not registered beforehand).
-      If not, MspInit or MspDeInit are not null, the @ref HAL_SRAM_Init and @ref HAL_SRAM_DeInit
+      reset to the legacy weak (surcharged) functions in the HAL_SRAM_Init
+      and  HAL_SRAM_DeInit only when these callbacks are null (not registered beforehand).
+      If not, MspInit or MspDeInit are not null, the HAL_SRAM_Init and HAL_SRAM_DeInit
       keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
 
       Callbacks can be registered/unregistered in READY state only.
@@ -90,8 +101,8 @@
       in READY or RESET state, thus registered (user) MspInit/DeInit callbacks can be used
       during the Init/DeInit.
       In that case first register the MspInit/MspDeInit user callbacks
-      using @ref HAL_SRAM_RegisterCallback before calling @ref HAL_SRAM_DeInit
-      or @ref HAL_SRAM_Init function.
+      using HAL_SRAM_RegisterCallback before calling HAL_SRAM_DeInit
+      or HAL_SRAM_Init function.
 
       When The compilation define USE_HAL_SRAM_REGISTER_CALLBACKS is set to 0 or
       not defined, the callback registering feature is not available
@@ -99,57 +110,49 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
 
+#if defined(FMC_Bank1) || defined(FSMC_Bank1)
+
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
 
+#ifdef HAL_SRAM_MODULE_ENABLED
+
 /** @defgroup SRAM SRAM
   * @brief SRAM driver modules
   * @{
   */
-#ifdef HAL_SRAM_MODULE_ENABLED
-
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
-    defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
-    defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
 
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/    
+/* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void SRAM_DMACplt(DMA_HandleTypeDef *hdma);
+static void SRAM_DMACpltProt(DMA_HandleTypeDef *hdma);
+static void SRAM_DMAError(DMA_HandleTypeDef *hdma);
 
 /* Exported functions --------------------------------------------------------*/
+
 /** @defgroup SRAM_Exported_Functions SRAM Exported Functions
   * @{
   */
-/** @defgroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions 
-  * @brief    Initialization and Configuration functions 
+
+/** @defgroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions.
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
            ##### SRAM Initialization and de_initialization functions #####
   ==============================================================================
     [..]  This section provides functions allowing to initialize/de-initialize
           the SRAM memory
-  
+
 @endverbatim
   * @{
   */
@@ -158,25 +161,26 @@
   * @brief  Performs the SRAM device initialization sequence
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
-  * @param  Timing Pointer to SRAM control timing structure 
-  * @param  ExtTiming Pointer to SRAM extended mode timing structure  
+  * @param  Timing Pointer to SRAM control timing structure
+  * @param  ExtTiming Pointer to SRAM extended mode timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming)
-{ 
+HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
+                                FMC_NORSRAM_TimingTypeDef *ExtTiming)
+{
   /* Check the SRAM handle parameter */
-  if(hsram == NULL)
+  if (hsram == NULL)
   {
-     return HAL_ERROR;
+    return HAL_ERROR;
   }
-  
-  if(hsram->State == HAL_SRAM_STATE_RESET)
-  {  
+
+  if (hsram->State == HAL_SRAM_STATE_RESET)
+  {
     /* Allocate lock resource and initialize it */
     hsram->Lock = HAL_UNLOCKED;
 
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
-    if(hsram->MspInitCallback == NULL)
+    if (hsram->MspInitCallback == NULL)
     {
       hsram->MspInitCallback = HAL_SRAM_MspInit;
     }
@@ -188,21 +192,25 @@
 #else
     /* Initialize the low level hardware (MSP) */
     HAL_SRAM_MspInit(hsram);
-#endif
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
   }
-  
+
   /* Initialize SRAM control Interface */
-  FMC_NORSRAM_Init(hsram->Instance, &(hsram->Init));
+  (void)FMC_NORSRAM_Init(hsram->Instance, &(hsram->Init));
 
   /* Initialize SRAM timing Interface */
-  FMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank); 
+  (void)FMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank);
 
   /* Initialize SRAM extended mode timing Interface */
-  FMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank,  hsram->Init.ExtendedMode);  
-  
+  (void)FMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank,
+                                         hsram->Init.ExtendedMode);
+
   /* Enable the NORSRAM device */
-  __FMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank); 
-  
+  __FMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank);
+
+  /* Initialize the SRAM controller state */
+  hsram->State = HAL_SRAM_STATE_READY;
+
   return HAL_OK;
 }
 
@@ -212,10 +220,10 @@
   *                the configuration information for SRAM module.
   * @retval HAL status
   */
-HAL_StatusTypeDef  HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram)
-{ 
+HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram)
+{
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
-  if(hsram->MspDeInitCallback == NULL)
+  if (hsram->MspDeInitCallback == NULL)
   {
     hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
   }
@@ -225,13 +233,14 @@
 #else
   /* De-Initialize the low level hardware (MSP) */
   HAL_SRAM_MspDeInit(hsram);
-#endif
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
 
   /* Configure the SRAM registers with their reset values */
-  FMC_NORSRAM_DeInit(hsram->Instance, hsram->Extended, hsram->Init.NSBank);
+  (void)FMC_NORSRAM_DeInit(hsram->Instance, hsram->Extended, hsram->Init.NSBank);
 
+  /* Reset the SRAM controller state */
   hsram->State = HAL_SRAM_STATE_RESET;
-  
+
   /* Release Lock */
   __HAL_UNLOCK(hsram);
 
@@ -248,9 +257,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hsram);
-    /* NOTE : This function Should not be modified, when the callback is needed,
+
+  /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_SRAM_MspInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -263,9 +273,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hsram);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_SRAM_MspDeInit could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -278,9 +289,10 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hdma);
+
   /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_SRAM_DMA_XferCpltCallback could be implemented in the user file
-   */ 
+   */
 }
 
 /**
@@ -293,257 +305,337 @@
 {
   /* Prevent unused argument(s) compilation warning */
   UNUSED(hdma);
-    /* NOTE : This function Should not be modified, when the callback is needed,
+
+  /* NOTE : This function Should not be modified, when the callback is needed,
             the HAL_SRAM_DMA_XferErrorCallback could be implemented in the user file
-   */ 
+   */
 }
 
 /**
   * @}
   */
 
-/** @defgroup SRAM_Exported_Functions_Group2 Input and Output functions 
-  * @brief    Input Output and memory control functions 
+/** @defgroup SRAM_Exported_Functions_Group2 Input Output and memory control functions
+  * @brief    Input Output and memory control functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
                   ##### SRAM Input and Output functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to use and control the SRAM memory
-  
+
 @endverbatim
   * @{
   */
 
 /**
-  * @brief  Reads 8-bit buffer from SRAM memory. 
+  * @brief  Reads 8-bit buffer from SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
+                                   uint32_t BufferSize)
 {
-  __IO uint8_t * pSramAddress = (uint8_t *)pAddress;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY;  
-  
-  /* Read data from memory */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint8_t *)pSramAddress;
-    pDstBuffer++;
-    pSramAddress++;
-  }
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY;    
+  uint32_t size;
+  __IO uint8_t *psramaddress = (uint8_t *)pAddress;
+  uint8_t *pdestbuff = pDstBuffer;
+  HAL_SRAM_StateTypeDef state = hsram->State;
 
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram); 
-    
-  return HAL_OK;   
+  /* Check the SRAM controller state */
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Read data from memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *pdestbuff = *psramaddress;
+      pdestbuff++;
+      psramaddress++;
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Writes 8-bit buffer to SRAM memory. 
+  * @brief  Writes 8-bit buffer to SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
+                                    uint32_t BufferSize)
 {
-  __IO uint8_t * pSramAddress = (uint8_t *)pAddress;
-  
+  uint32_t size;
+  __IO uint8_t *psramaddress = (uint8_t *)pAddress;
+  uint8_t *psrcbuff = pSrcBuffer;
+
   /* Check the SRAM controller state */
-  if(hsram->State == HAL_SRAM_STATE_PROTECTED)
+  if (hsram->State == HAL_SRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Write data to memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *psramaddress = *psrcbuff;
+      psrcbuff++;
+      psramaddress++;
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
   }
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY; 
-
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint8_t *)pSramAddress = *pSrcBuffer; 
-    pSrcBuffer++;
-    pSramAddress++;    
-  }    
+    return HAL_ERROR;
+  }
 
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY; 
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram);
-    
-  return HAL_OK;   
+  return HAL_OK;
 }
 
 /**
-  * @brief  Reads 16-bit buffer from SRAM memory. 
+  * @brief  Reads 16-bit buffer from SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
+                                    uint32_t BufferSize)
 {
-  __IO uint16_t * pSramAddress = (uint16_t *)pAddress;
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY;  
-  
-  /* Read data from memory */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint16_t *)pSramAddress;
-    pDstBuffer++;
-    pSramAddress++;
-  }
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY;    
+  uint32_t size;
+  __IO uint32_t *psramaddress = pAddress;
+  uint16_t *pdestbuff = pDstBuffer;
+  uint8_t limit;
+  HAL_SRAM_StateTypeDef state = hsram->State;
 
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram); 
-    
-  return HAL_OK;  
+  /* Check the SRAM controller state */
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Check if the size is a 32-bits multiple */
+    limit = (((BufferSize % 2U) != 0U) ? 1U : 0U);
+
+    /* Read data from memory */
+    for (size = BufferSize; size != limit; size -= 2U)
+    {
+      *pdestbuff = (uint16_t)((*psramaddress) & 0x0000FFFFU);
+      pdestbuff++;
+      *pdestbuff = (uint16_t)(((*psramaddress) & 0xFFFF0000U) >> 16U);
+      pdestbuff++;
+      psramaddress++;
+    }
+
+    /* Read last 16-bits if size is not 32-bits multiple */
+    if (limit != 0U)
+    {
+      *pdestbuff = (uint16_t)((*psramaddress) & 0x0000FFFFU);
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Writes 16-bit buffer to SRAM memory. 
+  * @brief  Writes 16-bit buffer to SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
+                                     uint32_t BufferSize)
 {
-  __IO uint16_t * pSramAddress = (uint16_t *)pAddress; 
-  
+  uint32_t size;
+  __IO uint32_t *psramaddress = pAddress;
+  uint16_t *psrcbuff = pSrcBuffer;
+  uint8_t limit;
+
   /* Check the SRAM controller state */
-  if(hsram->State == HAL_SRAM_STATE_PROTECTED)
+  if (hsram->State == HAL_SRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Check if the size is a 32-bits multiple */
+    limit = (((BufferSize % 2U) != 0U) ? 1U : 0U);
+
+    /* Write data to memory */
+    for (size = BufferSize; size != limit; size -= 2U)
+    {
+      *psramaddress = (uint32_t)(*psrcbuff);
+      psrcbuff++;
+      *psramaddress |= ((uint32_t)(*psrcbuff) << 16U);
+      psrcbuff++;
+      psramaddress++;
+    }
+
+    /* Write last 16-bits if size is not 32-bits multiple */
+    if (limit != 0U)
+    {
+      *psramaddress = ((uint32_t)(*psrcbuff) & 0x0000FFFFU) | ((*psramaddress) & 0xFFFF0000U);
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
   }
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY; 
-
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint16_t *)pSramAddress = *pSrcBuffer; 
-    pSrcBuffer++;
-    pSramAddress++;    
-  }    
+    return HAL_ERROR;
+  }
 
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY; 
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram);
-    
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
-  * @brief  Reads 32-bit buffer from SRAM memory. 
+  * @brief  Reads 32-bit buffer from SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                    uint32_t BufferSize)
 {
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY;  
-  
-  /* Read data from memory */
-  for(; BufferSize != 0U; BufferSize--)
-  {
-    *pDstBuffer = *(__IO uint32_t *)pAddress;
-    pDstBuffer++;
-    pAddress++;
-  }
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY;    
+  uint32_t size;
+  __IO uint32_t *psramaddress = pAddress;
+  uint32_t *pdestbuff = pDstBuffer;
+  HAL_SRAM_StateTypeDef state = hsram->State;
 
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram); 
-    
-  return HAL_OK;  
+  /* Check the SRAM controller state */
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Read data from memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *pdestbuff = *psramaddress;
+      pdestbuff++;
+      psramaddress++;
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = state;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
-  * @brief  Writes 32-bit buffer to SRAM memory. 
+  * @brief  Writes 32-bit buffer to SRAM memory.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                     uint32_t BufferSize)
 {
+  uint32_t size;
+  __IO uint32_t *psramaddress = pAddress;
+  uint32_t *psrcbuff = pSrcBuffer;
+
   /* Check the SRAM controller state */
-  if(hsram->State == HAL_SRAM_STATE_PROTECTED)
+  if (hsram->State == HAL_SRAM_STATE_READY)
   {
-    return  HAL_ERROR; 
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Write data to memory */
+    for (size = BufferSize; size != 0U; size--)
+    {
+      *psramaddress = *psrcbuff;
+      psrcbuff++;
+      psramaddress++;
+    }
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
   }
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY; 
-
-  /* Write data to memory */
-  for(; BufferSize != 0U; BufferSize--)
+  else
   {
-    *(__IO uint32_t *)pAddress = *pSrcBuffer; 
-    pSrcBuffer++;
-    pAddress++;    
-  }    
+    return HAL_ERROR;
+  }
 
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY; 
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram);
-    
-  return HAL_OK;   
+  return HAL_OK;
 }
 
 /**
@@ -551,32 +643,48 @@
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to read start address
-  * @param  pDstBuffer Pointer to destination buffer  
+  * @param  pDstBuffer Pointer to destination buffer
   * @param  BufferSize Size of the buffer to read from memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
+                                    uint32_t BufferSize)
 {
-  /* Process Locked */
-  __HAL_LOCK(hsram);  
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY;   
-  
-  /* Configure DMA user callbacks */
-  hsram->hdma->XferCpltCallback  = HAL_SRAM_DMA_XferCpltCallback;
-  hsram->hdma->XferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
+  HAL_StatusTypeDef status;
+  HAL_SRAM_StateTypeDef state = hsram->State;
 
-  /* Enable the DMA Stream */
-  HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY; 
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram);  
-  
-  return HAL_OK; 
+  /* Check the SRAM controller state */
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Configure DMA user callbacks */
+    if (state == HAL_SRAM_STATE_READY)
+    {
+      hsram->hdma->XferCpltCallback = SRAM_DMACplt;
+    }
+    else
+    {
+      hsram->hdma->XferCpltCallback = SRAM_DMACpltProt;
+    }
+    hsram->hdma->XferErrorCallback = SRAM_DMAError;
+
+    /* Enable the DMA Stream */
+    status = HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    status = HAL_ERROR;
+  }
+
+  return status;
 }
 
 /**
@@ -584,38 +692,40 @@
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
   *                the configuration information for SRAM module.
   * @param  pAddress Pointer to write start address
-  * @param  pSrcBuffer Pointer to source buffer to write  
+  * @param  pSrcBuffer Pointer to source buffer to write
   * @param  BufferSize Size of the buffer to write to memory
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
+HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
+                                     uint32_t BufferSize)
 {
-  /* Check the SRAM controller state */
-  if(hsram->State == HAL_SRAM_STATE_PROTECTED)
-  {
-    return  HAL_ERROR; 
-  }
-  
-  /* Process Locked */
-  __HAL_LOCK(hsram);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY; 
-  
-  /* Configure DMA user callbacks */
-  hsram->hdma->XferCpltCallback  = HAL_SRAM_DMA_XferCpltCallback;
-  hsram->hdma->XferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
+  HAL_StatusTypeDef status;
 
-  /* Enable the DMA Stream */
-  HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY;  
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram);  
-  
-  return HAL_OK;
+  /* Check the SRAM controller state */
+  if (hsram->State == HAL_SRAM_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Configure DMA user callbacks */
+    hsram->hdma->XferCpltCallback = SRAM_DMACplt;
+    hsram->hdma->XferErrorCallback = SRAM_DMAError;
+
+    /* Enable the DMA Stream */
+    status = HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    status = HAL_ERROR;
+  }
+
+  return status;
 }
 
 #if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
@@ -630,12 +740,13 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_SRAM_RegisterCallback (SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_CallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
+                                            pSRAM_CallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SRAM_StateTypeDef state;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -644,20 +755,20 @@
   __HAL_LOCK(hsram);
 
   state = hsram->State;
-  if((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_RESET) || (state == HAL_SRAM_STATE_PROTECTED))
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_RESET) || (state == HAL_SRAM_STATE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SRAM_MSP_INIT_CB_ID :
-      hsram->MspInitCallback = pCallback;
-      break;
-    case HAL_SRAM_MSP_DEINIT_CB_ID :
-      hsram->MspDeInitCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SRAM_MSP_INIT_CB_ID :
+        hsram->MspInitCallback = pCallback;
+        break;
+      case HAL_SRAM_MSP_DEINIT_CB_ID :
+        hsram->MspDeInitCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -683,7 +794,7 @@
   *          @arg @ref HAL_SRAM_DMA_XFER_ERR_CB_ID   SRAM DMA Xfer Error callback ID
   * @retval status
   */
-HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback (SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId)
+HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SRAM_StateTypeDef state;
@@ -692,42 +803,42 @@
   __HAL_LOCK(hsram);
 
   state = hsram->State;
-  if((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SRAM_MSP_INIT_CB_ID :
-      hsram->MspInitCallback = HAL_SRAM_MspInit;
-      break;
-    case HAL_SRAM_MSP_DEINIT_CB_ID :
-      hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
-      break;
-    case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
-      hsram->DmaXferCpltCallback = HAL_SRAM_DMA_XferCpltCallback;
-      break;
-    case HAL_SRAM_DMA_XFER_ERR_CB_ID :
-      hsram->DmaXferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SRAM_MSP_INIT_CB_ID :
+        hsram->MspInitCallback = HAL_SRAM_MspInit;
+        break;
+      case HAL_SRAM_MSP_DEINIT_CB_ID :
+        hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
+        break;
+      case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
+        hsram->DmaXferCpltCallback = HAL_SRAM_DMA_XferCpltCallback;
+        break;
+      case HAL_SRAM_DMA_XFER_ERR_CB_ID :
+        hsram->DmaXferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
-  else if(state == HAL_SRAM_STATE_RESET)
+  else if (state == HAL_SRAM_STATE_RESET)
   {
     switch (CallbackId)
     {
-    case HAL_SRAM_MSP_INIT_CB_ID :
-      hsram->MspInitCallback = HAL_SRAM_MspInit;
-      break;
-    case HAL_SRAM_MSP_DEINIT_CB_ID :
-      hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SRAM_MSP_INIT_CB_ID :
+        hsram->MspInitCallback = HAL_SRAM_MspInit;
+        break;
+      case HAL_SRAM_MSP_DEINIT_CB_ID :
+        hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -752,12 +863,13 @@
   * @param pCallback : pointer to the Callback function
   * @retval status
   */
-HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId, pSRAM_DmaCallbackTypeDef pCallback)
+HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
+                                               pSRAM_DmaCallbackTypeDef pCallback)
 {
   HAL_StatusTypeDef status = HAL_OK;
   HAL_SRAM_StateTypeDef state;
 
-  if(pCallback == NULL)
+  if (pCallback == NULL)
   {
     return HAL_ERROR;
   }
@@ -766,20 +878,20 @@
   __HAL_LOCK(hsram);
 
   state = hsram->State;
-  if((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
+  if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
   {
     switch (CallbackId)
     {
-    case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
-      hsram->DmaXferCpltCallback = pCallback;
-      break;
-    case HAL_SRAM_DMA_XFER_ERR_CB_ID :
-      hsram->DmaXferErrorCallback = pCallback;
-      break;
-    default :
-      /* update return status */
-      status =  HAL_ERROR;
-      break;
+      case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
+        hsram->DmaXferCpltCallback = pCallback;
+        break;
+      case HAL_SRAM_DMA_XFER_ERR_CB_ID :
+        hsram->DmaXferErrorCallback = pCallback;
+        break;
+      default :
+        /* update return status */
+        status =  HAL_ERROR;
+        break;
     }
   }
   else
@@ -792,18 +904,19 @@
   __HAL_UNLOCK(hsram);
   return status;
 }
-#endif
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
+
 /**
   * @}
   */
-  
-/** @defgroup SRAM_Exported_Functions_Group3 Control functions 
- *  @brief   management functions 
- *
-@verbatim   
+
+/** @defgroup SRAM_Exported_Functions_Group3 Control functions
+  *  @brief   Control functions
+  *
+@verbatim
   ==============================================================================
                         ##### SRAM Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the SRAM interface.
@@ -811,7 +924,7 @@
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Enables dynamically SRAM write operation.
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
@@ -820,19 +933,30 @@
   */
 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram)
 {
-  /* Process Locked */
-  __HAL_LOCK(hsram);
+  /* Check the SRAM controller state */
+  if (hsram->State == HAL_SRAM_STATE_PROTECTED)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
 
-  /* Enable write operation */
-  FMC_NORSRAM_WriteOperation_Enable(hsram->Instance, hsram->Init.NSBank); 
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_READY;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram); 
-  
-  return HAL_OK;  
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Enable write operation */
+    (void)FMC_NORSRAM_WriteOperation_Enable(hsram->Instance, hsram->Init.NSBank);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_READY;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
@@ -843,43 +967,51 @@
   */
 HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram)
 {
-  /* Process Locked */
-  __HAL_LOCK(hsram);
+  /* Check the SRAM controller state */
+  if (hsram->State == HAL_SRAM_STATE_READY)
+  {
+    /* Process Locked */
+    __HAL_LOCK(hsram);
 
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_BUSY;
-    
-  /* Disable write operation */
-  FMC_NORSRAM_WriteOperation_Disable(hsram->Instance, hsram->Init.NSBank); 
-  
-  /* Update the SRAM controller state */
-  hsram->State = HAL_SRAM_STATE_PROTECTED;
-  
-  /* Process unlocked */
-  __HAL_UNLOCK(hsram); 
-  
-  return HAL_OK;  
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_BUSY;
+
+    /* Disable write operation */
+    (void)FMC_NORSRAM_WriteOperation_Disable(hsram->Instance, hsram->Init.NSBank);
+
+    /* Update the SRAM controller state */
+    hsram->State = HAL_SRAM_STATE_PROTECTED;
+
+    /* Process unlocked */
+    __HAL_UNLOCK(hsram);
+  }
+  else
+  {
+    return HAL_ERROR;
+  }
+
+  return HAL_OK;
 }
 
 /**
   * @}
   */
 
-/** @defgroup SRAM_Exported_Functions_Group4 State functions 
- *  @brief   Peripheral State functions 
- *
-@verbatim   
+/** @defgroup SRAM_Exported_Functions_Group4 Peripheral State functions
+  *  @brief   Peripheral State functions
+  *
+@verbatim
   ==============================================================================
                       ##### SRAM State functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
-    This subsection permits to get in run-time the status of the SRAM controller 
+    This subsection permits to get in run-time the status of the SRAM controller
     and the data flow.
 
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Returns the SRAM controller state
   * @param  hsram pointer to a SRAM_HandleTypeDef structure that contains
@@ -890,6 +1022,7 @@
 {
   return hsram->State;
 }
+
 /**
   * @}
   */
@@ -897,16 +1030,81 @@
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\
-          STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx ||\
-          STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
+
+/**
+  * @brief  DMA SRAM process complete callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SRAM_DMACplt(DMA_HandleTypeDef *hdma)
+{
+  SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SRAM controller state */
+  hsram->State = HAL_SRAM_STATE_READY;
+
+#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
+  hsram->DmaXferCpltCallback(hdma);
+#else
+  HAL_SRAM_DMA_XferCpltCallback(hdma);
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SRAM process complete callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SRAM_DMACpltProt(DMA_HandleTypeDef *hdma)
+{
+  SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SRAM controller state */
+  hsram->State = HAL_SRAM_STATE_PROTECTED;
+
+#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
+  hsram->DmaXferCpltCallback(hdma);
+#else
+  HAL_SRAM_DMA_XferCpltCallback(hdma);
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @brief  DMA SRAM error callback.
+  * @param  hdma : DMA handle
+  * @retval None
+  */
+static void SRAM_DMAError(DMA_HandleTypeDef *hdma)
+{
+  SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->Parent);
+
+  /* Disable the DMA channel */
+  __HAL_DMA_DISABLE(hdma);
+
+  /* Update the SRAM controller state */
+  hsram->State = HAL_SRAM_STATE_ERROR;
+
+#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
+  hsram->DmaXferErrorCallback(hdma);
+#else
+  HAL_SRAM_DMA_XferErrorCallback(hdma);
+#endif /* USE_HAL_SRAM_REGISTER_CALLBACKS */
+}
+
+/**
+  * @}
+  */
+
 #endif /* HAL_SRAM_MODULE_ENABLED */
-/**
-  * @}
-  */
 
 /**
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* FMC_Bank1 || FSMC_Bank1 */
diff --git a/Src/stm32f4xx_hal_tim.c b/Src/stm32f4xx_hal_tim.c
index f3d46cd..1ca1781 100644
--- a/Src/stm32f4xx_hal_tim.c
+++ b/Src/stm32f4xx_hal_tim.c
@@ -29,6 +29,17 @@
   *           + Commutation Event configuration with Interruption and DMA
   *           + TIM OCRef clear configuration
   *           + TIM External Clock configuration
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                       ##### TIMER Generic features #####
@@ -169,17 +180,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -4470,13 +4470,11 @@
 HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                               uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t  BurstLength)
 {
-  HAL_StatusTypeDef status = HAL_OK;
+  HAL_StatusTypeDef status;
 
-  if (status == HAL_OK)
-  {
-    status = HAL_TIM_DMABurst_MultiWriteStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength,
-                                              ((BurstLength) >> 8U) + 1U);
-  }
+  status = HAL_TIM_DMABurst_MultiWriteStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength,
+                                            ((BurstLength) >> 8U) + 1U);
+
 
 
   return status;
@@ -4809,13 +4807,11 @@
 HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                              uint32_t BurstRequestSrc, uint32_t  *BurstBuffer, uint32_t  BurstLength)
 {
-  HAL_StatusTypeDef status = HAL_OK;
+  HAL_StatusTypeDef status;
 
-  if (status == HAL_OK)
-  {
-    status = HAL_TIM_DMABurst_MultiReadStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength,
-                                             ((BurstLength) >> 8U) + 1U);
-  }
+  status = HAL_TIM_DMABurst_MultiReadStart(htim, BurstBaseAddress, BurstRequestSrc, BurstBuffer, BurstLength,
+                                           ((BurstLength) >> 8U) + 1U);
+
 
   return status;
 }
@@ -7623,4 +7619,3 @@
 /**
   * @}
   */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_tim_ex.c b/Src/stm32f4xx_hal_tim_ex.c
index bba44f1..092175f 100644
--- a/Src/stm32f4xx_hal_tim_ex.c
+++ b/Src/stm32f4xx_hal_tim_ex.c
@@ -10,6 +10,17 @@
   *           + Time Complementary signal break and dead time configuration
   *           + Time Master and Slave synchronization configuration
   *           + Timer remapping capabilities configuration
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                       ##### TIMER Extended features #####
@@ -64,17 +75,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -2098,11 +2098,12 @@
   */
 HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap)
 {
-  __HAL_LOCK(htim);
 
   /* Check parameters */
   assert_param(IS_TIM_REMAP(htim->Instance, Remap));
 
+  __HAL_LOCK(htim);
+
 #if defined(LPTIM_OR_TIM1_ITR2_RMP) && defined(LPTIM_OR_TIM5_ITR1_RMP) && defined(LPTIM_OR_TIM9_ITR1_RMP)
   if ((Remap & LPTIM_REMAP_MASK) == LPTIM_REMAP_MASK)
   {
@@ -2249,7 +2250,7 @@
   */
 
 /* Private functions ---------------------------------------------------------*/
-/** @defgroup TIMEx_Private_Functions TIMEx Private Functions
+/** @defgroup TIMEx_Private_Functions TIM Extended Private Functions
   * @{
   */
 
@@ -2425,5 +2426,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c b/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c
index ddd78a5..e13c721 100644
--- a/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c
+++ b/Src/stm32f4xx_hal_timebase_rtc_alarm_template.c
@@ -9,7 +9,19 @@
   *           + Intializes the RTC peripheral to increment the seconds registers each 1ms
   *           + The alarm is configured to assert an interrupt when the RTC reaches 1ms 
   *           + HAL_IncTick is called at each Alarm event and the time is reset to 00:00:00
-  *           + HSE (default), LSE or LSI can be selected as RTC clock source  
+  *           + HSE (default), LSE or LSI can be selected as RTC clock source
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
  @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -30,17 +42,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -314,4 +315,4 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c b/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c
index 01663e7..50f9d7f 100644
--- a/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c
+++ b/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.c
@@ -11,6 +11,18 @@
   *           + The wakeup feature is configured to assert an interrupt each 1ms 
   *           + HAL_IncTick is called inside the HAL_RTCEx_WakeUpTimerEventCallback
   *           + HSE (default), LSE or LSI can be selected as RTC clock source
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
  @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -31,17 +43,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -289,4 +290,4 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_timebase_tim_template.c b/Src/stm32f4xx_hal_timebase_tim_template.c
index da61e9c..affb884 100644
--- a/Src/stm32f4xx_hal_timebase_tim_template.c
+++ b/Src/stm32f4xx_hal_timebase_tim_template.c
@@ -12,13 +12,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -175,4 +174,4 @@
   * @}
   */ 
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/Src/stm32f4xx_hal_uart.c b/Src/stm32f4xx_hal_uart.c
index 5e53813..36b7317 100644
--- a/Src/stm32f4xx_hal_uart.c
+++ b/Src/stm32f4xx_hal_uart.c
@@ -9,6 +9,18 @@
   *           + IO operation functions
   *           + Peripheral Control functions
   *           + Peripheral State and Errors functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -240,17 +252,6 @@
     |    1    |    1      |    | SB | 8 bit data | PB | STB |     |
     +-------------------------------------------------------------+
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -1132,10 +1133,10 @@
   * @param  Timeout Timeout duration
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 {
-  uint8_t  *pdata8bits;
-  uint16_t *pdata16bits;
+  const uint8_t  *pdata8bits;
+  const uint16_t *pdata16bits;
   uint32_t tickstart = 0U;
 
   /* Check that a Tx process is not already ongoing */
@@ -1162,7 +1163,7 @@
     if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
     {
       pdata8bits  = NULL;
-      pdata16bits = (uint16_t *) pData;
+      pdata16bits = (const uint16_t *) pData;
     }
     else
     {
@@ -1311,7 +1312,7 @@
   * @param  Size  Amount of data elements (u8 or u16) to be sent
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
 {
   /* Check that a Tx process is not already ongoing */
   if (huart->gState == HAL_UART_STATE_READY)
@@ -1391,9 +1392,9 @@
   * @param  Size  Amount of data elements (u8 or u16) to be sent
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
+HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
 {
-  uint32_t *tmp;
+  const uint32_t *tmp;
 
   /* Check that a Tx process is not already ongoing */
   if (huart->gState == HAL_UART_STATE_READY)
@@ -1426,8 +1427,8 @@
     huart->hdmatx->XferAbortCallback = NULL;
 
     /* Enable the UART transmit DMA stream */
-    tmp = (uint32_t *)&pData;
-    HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size);
+    tmp = (const uint32_t *)&pData;
+    HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size);
 
     /* Clear the TC flag in the SR register by writing 0 to it */
     __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC);
@@ -1543,7 +1544,10 @@
     __HAL_UART_CLEAR_OREFLAG(huart);
 
     /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */
-    ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+    if (huart->Init.Parity != UART_PARITY_NONE)
+    {
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+    }
     ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
 
     /* Enable the UART DMA Rx request */
@@ -3157,11 +3161,12 @@
 }
 
 /**
-  * @brief  This function handles UART Communication Timeout.
+  * @brief  This function handles UART Communication Timeout. It waits
+  *         until a flag is no longer in the specified status.
   * @param  huart  Pointer to a UART_HandleTypeDef structure that contains
   *                the configuration information for the specified UART module.
   * @param  Flag specifies the UART flag to check.
-  * @param  Status The new Flag status (SET or RESET).
+  * @param  Status The actual Flag status (SET or RESET).
   * @param  Tickstart Tick start value
   * @param  Timeout Timeout duration
   * @retval HAL status
@@ -3217,8 +3222,11 @@
   /* Process Unlocked */
   __HAL_UNLOCK(huart);
 
-  /* Enable the UART Parity Error Interrupt */
-  __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
+  if (huart->Init.Parity != UART_PARITY_NONE)
+  {
+    /* Enable the UART Parity Error Interrupt */
+    __HAL_UART_ENABLE_IT(huart, UART_IT_PE);
+  }
 
   /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
   __HAL_UART_ENABLE_IT(huart, UART_IT_ERR);
@@ -3272,8 +3280,11 @@
   /* Process Unlocked */
   __HAL_UNLOCK(huart);
 
-  /* Enable the UART Parity Error Interrupt */
-  ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+  if (huart->Init.Parity != UART_PARITY_NONE)
+  {
+    /* Enable the UART Parity Error Interrupt */
+    ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+  }
 
   /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
   ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
@@ -3500,14 +3511,14 @@
   */
 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart)
 {
-  uint16_t *tmp;
+  const uint16_t *tmp;
 
   /* Check that a Tx process is ongoing */
   if (huart->gState == HAL_UART_STATE_BUSY_TX)
   {
     if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
     {
-      tmp = (uint16_t *) huart->pTxBuffPtr;
+      tmp = (const uint16_t *) huart->pTxBuffPtr;
       huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
       huart->pTxBuffPtr += 2U;
     }
@@ -3518,7 +3529,7 @@
 
     if (--huart->TxXferCount == 0U)
     {
-      /* Disable the UART Transmit Complete Interrupt */
+      /* Disable the UART Transmit Data Register Empty Interrupt */
       __HAL_UART_DISABLE_IT(huart, UART_IT_TXE);
 
       /* Enable the UART Transmit Complete Interrupt */
@@ -3738,4 +3749,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_usart.c b/Src/stm32f4xx_hal_usart.c
index 0af0582..8d71d59 100644
--- a/Src/stm32f4xx_hal_usart.c
+++ b/Src/stm32f4xx_hal_usart.c
@@ -9,6 +9,18 @@
   *           + Initialization and de-initialization functions
   *           + IO operation functions
   *           + Peripheral Control functions
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### How to use this driver #####
@@ -182,17 +194,6 @@
     |    1    |    1      |    | SB | 8 bit data | PB | STB |     |
     +-------------------------------------------------------------+
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -746,10 +747,10 @@
   * @param  Timeout Timeout duration.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
+HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
 {
-  uint8_t  *ptxdata8bits;
-  uint16_t *ptxdata16bits;
+  const uint8_t  *ptxdata8bits;
+  const uint16_t *ptxdata16bits;
   uint32_t tickstart;
 
   if (husart->State == HAL_USART_STATE_READY)
@@ -775,7 +776,7 @@
     if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE))
     {
       ptxdata8bits  = NULL;
-      ptxdata16bits = (uint16_t *) pTxData;
+      ptxdata16bits = (const uint16_t *) pTxData;
     }
     else
     {
@@ -936,13 +937,13 @@
   * @param  Timeout Timeout duration
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                             uint16_t Size, uint32_t Timeout)
 {
   uint8_t  *prxdata8bits;
   uint16_t *prxdata16bits;
-  uint8_t  *ptxdata8bits;
-  uint16_t *ptxdata16bits;
+  const uint8_t  *ptxdata8bits;
+  const uint16_t *ptxdata16bits;
   uint16_t rxdatacount;
   uint32_t tickstart;
 
@@ -982,7 +983,7 @@
     {
       prxdata8bits  = NULL;
       ptxdata8bits  = NULL;
-      ptxdata16bits = (uint16_t *) pTxData;
+      ptxdata16bits = (const uint16_t *) pTxData;
       prxdata16bits = (uint16_t *) pRxData;
     }
     else
@@ -1076,7 +1077,7 @@
   * @retval HAL status
   * @note   The USART errors are not managed to avoid the overrun error.
   */
-HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
+HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
 {
   if (husart->State == HAL_USART_STATE_READY)
   {
@@ -1150,8 +1151,16 @@
     /* Process Unlocked */
     __HAL_UNLOCK(husart);
 
-    /* Enable the USART Parity Error and Data Register not empty Interrupts */
-    SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
+    if (husart->Init.Parity != USART_PARITY_NONE)
+    {
+      /* Enable the USART Parity Error and Data Register not empty Interrupts */
+      SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
+    }
+    else
+    {
+      /* Enable the USART Data Register not empty Interrupts */
+      SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE);
+    }
 
     /* Enable the USART Error Interrupt: (Frame error, noise error, overrun error) */
     SET_BIT(husart->Instance->CR3, USART_CR3_EIE);
@@ -1179,7 +1188,7 @@
   * @param  Size    Amount of data elements (u8 or u16) to be sent (same amount to be received).
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                                uint16_t Size)
 {
   if (husart->State == HAL_USART_STATE_READY)
@@ -1207,8 +1216,11 @@
     /* Enable the USART Data Register not empty Interrupt */
     SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE);
 
-    /* Enable the USART Parity Error Interrupt */
-    SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    if (husart->Init.Parity != USART_PARITY_NONE)
+    {
+      /* Enable the USART Parity Error Interrupt */
+      SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    }
 
     /* Enable the USART Error Interrupt: (Frame error, noise error, overrun error) */
     SET_BIT(husart->Instance->CR3, USART_CR3_EIE);
@@ -1235,9 +1247,9 @@
   * @param  Size    Amount of data elements (u8 or u16) to be sent.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
+HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
 {
-  uint32_t *tmp;
+  const uint32_t *tmp;
 
   if (husart->State == HAL_USART_STATE_READY)
   {
@@ -1268,8 +1280,8 @@
     husart->hdmatx->XferAbortCallback = NULL;
 
     /* Enable the USART transmit DMA stream */
-    tmp = (uint32_t *)&pTxData;
-    HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size);
+    tmp = (const uint32_t *)&pTxData;
+    HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size);
 
     /* Clear the TC flag in the SR register by writing 0 to it */
     __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC);
@@ -1362,8 +1374,11 @@
     /* Process Unlocked */
     __HAL_UNLOCK(husart);
 
-    /* Enable the USART Parity Error Interrupt */
-    SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    if (husart->Init.Parity != USART_PARITY_NONE)
+    {
+      /* Enable the USART Parity Error Interrupt */
+      SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    }
 
     /* Enable the USART Error Interrupt: (Frame error, noise error, overrun error) */
     SET_BIT(husart->Instance->CR3, USART_CR3_EIE);
@@ -1397,10 +1412,10 @@
   * @note   When the USART parity is enabled (PCE = 1) the data received contain the parity bit.
   * @retval HAL status
   */
-HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData,
+HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                                 uint16_t Size)
 {
-  uint32_t *tmp;
+  const uint32_t *tmp;
 
   if (husart->State == HAL_USART_STATE_READY)
   {
@@ -1442,11 +1457,11 @@
 
     /* Enable the USART receive DMA stream */
     tmp = (uint32_t *)&pRxData;
-    HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(uint32_t *)tmp, Size);
+    HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(const uint32_t *)tmp, Size);
 
     /* Enable the USART transmit DMA stream */
-    tmp = (uint32_t *)&pTxData;
-    HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size);
+    tmp = (const uint32_t *)&pTxData;
+    HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size);
 
     /* Clear the TC flag in the SR register by writing 0 to it */
     __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC);
@@ -1457,8 +1472,11 @@
     /* Process Unlocked */
     __HAL_UNLOCK(husart);
 
-    /* Enable the USART Parity Error Interrupt */
-    SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    if (husart->Init.Parity != USART_PARITY_NONE)
+    {
+      /* Enable the USART Parity Error Interrupt */
+      SET_BIT(husart->Instance->CR1, USART_CR1_PEIE);
+    }
 
     /* Enable the USART Error Interrupt: (Frame error, noise error, overrun error) */
     SET_BIT(husart->Instance->CR3, USART_CR3_EIE);
@@ -2291,11 +2309,12 @@
 }
 
 /**
-  * @brief  This function handles USART Communication Timeout.
+  * @brief  This function handles USART Communication Timeout. It waits
+  *         until a flag is no longer in the specified status.
   * @param  husart Pointer to a USART_HandleTypeDef structure that contains
   *                the configuration information for the specified USART module.
   * @param  Flag specifies the USART flag to check.
-  * @param  Status The new Flag status (SET or RESET).
+  * @param  Status The actual Flag status (SET or RESET).
   * @param  Tickstart Tick start value.
   * @param  Timeout Timeout duration.
   * @retval HAL status
@@ -2480,13 +2499,13 @@
   */
 static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart)
 {
-  uint16_t *tmp;
+  const uint16_t *tmp;
 
   if (husart->State == HAL_USART_STATE_BUSY_TX)
   {
     if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE))
     {
-      tmp = (uint16_t *) husart->pTxBuffPtr;
+      tmp = (const uint16_t *) husart->pTxBuffPtr;
       husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
       husart->pTxBuffPtr += 2U;
     }
@@ -2622,8 +2641,8 @@
   */
 static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart)
 {
-  uint8_t  *pdata8bits;
-  uint16_t *pdata16bits;
+  const uint16_t *pdatatx16bits;
+  uint16_t *pdatarx16bits;
 
   if (husart->State == HAL_USART_STATE_BUSY_TX_RX)
   {
@@ -2633,9 +2652,8 @@
       {
         if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE))
         {
-          pdata8bits  = NULL;
-          pdata16bits = (uint16_t *) husart->pTxBuffPtr;
-          husart->Instance->DR = (uint16_t)(*pdata16bits & (uint16_t)0x01FF);
+          pdatatx16bits = (const uint16_t *) husart->pTxBuffPtr;
+          husart->Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF);
           husart->pTxBuffPtr += 2U;
         }
         else
@@ -2659,22 +2677,19 @@
       {
         if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE))
         {
-          pdata8bits  = NULL;
-          pdata16bits = (uint16_t *) husart->pRxBuffPtr;
-          *pdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF);
+          pdatarx16bits = (uint16_t *) husart->pRxBuffPtr;
+          *pdatarx16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF);
           husart->pRxBuffPtr += 2U;
         }
         else
         {
-          pdata8bits = (uint8_t *) husart->pRxBuffPtr;
-          pdata16bits  = NULL;
           if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLENGTH_8B) && (husart->Init.Parity == USART_PARITY_NONE)))
           {
-            *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF);
+            *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF);
           }
           else
           {
-            *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F);
+            *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F);
           }
           husart->pRxBuffPtr += 1U;
         }
@@ -2821,4 +2836,3 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_hal_wwdg.c b/Src/stm32f4xx_hal_wwdg.c
index d1e2fa0..216ea2b 100644
--- a/Src/stm32f4xx_hal_wwdg.c
+++ b/Src/stm32f4xx_hal_wwdg.c
@@ -7,6 +7,17 @@
   *          functionalities of the Window Watchdog (WWDG) peripheral:
   *           + Initialization and Configuration functions
   *           + IO operation functions
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                       ##### WWDG Specific features #####
@@ -40,7 +51,7 @@
         (++) max time (mS) = 1000 * (Counter - 0x40) / WWDG clock
     (+) Typical values:
         (++) Counter min (T[5;0] = 0x00) at 42MHz (PCLK1) with zero prescaler:
-             max timeout before reset: approximately 97.52µs
+             max timeout before reset: approximately 97.52us
         (++) Counter max (T[5;0] = 0x3F) at 42MHz (PCLK1) with prescaler
              dividing by 8:
              max timeout before reset: approximately 49.93ms
@@ -55,7 +66,7 @@
     (+) Enable WWDG APB1 clock using __HAL_RCC_WWDG_CLK_ENABLE().
     (+) Configure the WWDG prescaler, refresh window value, counter value and early
         interrupt status using HAL_WWDG_Init() function. This will automatically
-        enable WWDG and start its downcounter. Time reference can be taken from 
+        enable WWDG and start its downcounter. Time reference can be taken from
         function exit. Care must be taken to provide a counter value
         greater than 0x40 to prevent generation of immediate reset.
     (+) If the Early Wakeup Interrupt (EWI) feature is enabled, an interrupt is
@@ -112,17 +123,6 @@
 
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */
 
 /* Includes ------------------------------------------------------------------*/
@@ -418,5 +418,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_adc.c b/Src/stm32f4xx_ll_adc.c
index 5710e26..5f880ff 100644
--- a/Src/stm32f4xx_ll_adc.c
+++ b/Src/stm32f4xx_ll_adc.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -921,4 +920,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_crc.c b/Src/stm32f4xx_ll_crc.c
index 372e2f2..1138793 100644
--- a/Src/stm32f4xx_ll_crc.c
+++ b/Src/stm32f4xx_ll_crc.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -26,7 +25,7 @@
 #include "stm32_assert.h"
 #else
 #define assert_param(expr) ((void)0U)
-#endif/* USE_FULL_ASSERT */
+#endif /* USE_FULL_ASSERT */
 
 /** @addtogroup STM32F4xx_LL_Driver
   * @{
@@ -102,6 +101,3 @@
   */
 
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Src/stm32f4xx_ll_dac.c b/Src/stm32f4xx_ll_dac.c
index 1316504..0a5c2ff 100644
--- a/Src/stm32f4xx_ll_dac.c
+++ b/Src/stm32f4xx_ll_dac.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -279,4 +278,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_dma.c b/Src/stm32f4xx_ll_dma.c
index e4cbae4..a83c086 100644
--- a/Src/stm32f4xx_ll_dma.c
+++ b/Src/stm32f4xx_ll_dma.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -422,4 +421,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_dma2d.c b/Src/stm32f4xx_ll_dma2d.c
index 92941c4..9f6c8f5 100644
--- a/Src/stm32f4xx_ll_dma2d.c
+++ b/Src/stm32f4xx_ll_dma2d.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -593,6 +592,3 @@
   */
 
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Src/stm32f4xx_ll_exti.c b/Src/stm32f4xx_ll_exti.c
index 31d70ac..ce2f7b0 100644
--- a/Src/stm32f4xx_ll_exti.c
+++ b/Src/stm32f4xx_ll_exti.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.Clause
   *
   ******************************************************************************
   */
@@ -211,4 +210,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_fmc.c b/Src/stm32f4xx_ll_fmc.c
index 2e4dadb..1bdf9de 100644
--- a/Src/stm32f4xx_ll_fmc.c
+++ b/Src/stm32f4xx_ll_fmc.c
@@ -3,27 +3,38 @@
   * @file    stm32f4xx_ll_fmc.c
   * @author  MCD Application Team
   * @brief   FMC Low Layer HAL module driver.
-  *    
-  *          This file provides firmware functions to manage the following 
+  *
+  *          This file provides firmware functions to manage the following
   *          functionalities of the Flexible Memory Controller (FMC) peripheral memories:
   *           + Initialization/de-initialization functions
-  *           + Peripheral Control functions 
+  *           + Peripheral Control functions
   *           + Peripheral State functions
-  *         
+  *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                         ##### FMC peripheral features #####
   ==============================================================================
-  [..] The Flexible memory controller (FMC) includes three memory controllers:
+  [..] The Flexible memory controller (FMC) includes following memory controllers:
        (+) The NOR/PSRAM memory controller
        (+) The NAND/PC Card memory controller
-       (+) The Synchronous DRAM (SDRAM) controller 
-       
+       (+) The Synchronous DRAM (SDRAM) controller
+
   [..] The FMC functional block makes the interface with synchronous and asynchronous static
        memories, SDRAM memories, and 16-bit PC memory cards. Its main purposes are:
        (+) to translate AHB transactions into the appropriate external device protocol
        (+) to meet the access time requirements of the external memory devices
-   
+
   [..] All external memories share the addresses, data and control signals with the controller.
        Each external device is accessed by means of a unique Chip Select. The FMC performs
        only one access at a time to an external device.
@@ -39,21 +50,10 @@
         (+) Interface with synchronous DRAM (SDRAM) memories
         (+) Independent Chip Select control for each memory bank
         (+) Independent configuration for each memory bank
-                    
+
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
-  */ 
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
@@ -61,79 +61,187 @@
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
+#if defined(HAL_NOR_MODULE_ENABLED) || defined(HAL_SRAM_MODULE_ENABLED) || (defined(HAL_NAND_MODULE_ENABLED)) || defined(HAL_PCCARD_MODULE_ENABLED) || defined(HAL_SDRAM_MODULE_ENABLED)
 
 /** @defgroup FMC_LL  FMC Low Layer
   * @brief FMC driver modules
   * @{
   */
 
-#if defined (HAL_SRAM_MODULE_ENABLED) || defined(HAL_NOR_MODULE_ENABLED) || defined(HAL_NAND_MODULE_ENABLED) || defined(HAL_PCCARD_MODULE_ENABLED) || defined(HAL_SDRAM_MODULE_ENABLED)
-
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
+
+/** @defgroup FMC_LL_Private_Constants FMC Low Layer Private Constants
+  * @{
+  */
+
+/* ----------------------- FMC registers bit mask --------------------------- */
+
+#if defined(FMC_Bank1)
+/* --- BCR Register ---*/
+/* BCR register clear mask */
+
+/* --- BTR Register ---*/
+/* BTR register clear mask */
+#define BTR_CLEAR_MASK    ((uint32_t)(FMC_BTR1_ADDSET | FMC_BTR1_ADDHLD  |\
+                                      FMC_BTR1_DATAST | FMC_BTR1_BUSTURN |\
+                                      FMC_BTR1_CLKDIV | FMC_BTR1_DATLAT  |\
+                                      FMC_BTR1_ACCMOD))
+
+/* --- BWTR Register ---*/
+/* BWTR register clear mask */
+#define BWTR_CLEAR_MASK   ((uint32_t)(FMC_BWTR1_ADDSET | FMC_BWTR1_ADDHLD  |\
+                                      FMC_BWTR1_DATAST | FMC_BWTR1_BUSTURN |\
+                                      FMC_BWTR1_ACCMOD))
+#endif /* FMC_Bank1 */
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
+
+#if defined (FMC_PCR_PWAITEN)
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR_CLEAR_MASK    ((uint32_t)(FMC_PCR_PWAITEN | FMC_PCR_PBKEN  | \
+                                      FMC_PCR_PTYP    | FMC_PCR_PWID   | \
+                                      FMC_PCR_ECCEN   | FMC_PCR_TCLR   | \
+                                      FMC_PCR_TAR     | FMC_PCR_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM_CLEAR_MASK   ((uint32_t)(FMC_PMEM_MEMSET2  | FMC_PMEM_MEMWAIT2 |\
+                                      FMC_PMEM_MEMHOLD2 | FMC_PMEM_MEMHIZ2))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT_CLEAR_MASK   ((uint32_t)(FMC_PATT_ATTSET2  | FMC_PATT_ATTWAIT2 |\
+                                      FMC_PATT_ATTHOLD2 | FMC_PATT_ATTHIZ2))
+#else
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR_CLEAR_MASK    ((uint32_t)(FMC_PCR2_PWAITEN | FMC_PCR2_PBKEN  | \
+                                      FMC_PCR2_PTYP    | FMC_PCR2_PWID   | \
+                                      FMC_PCR2_ECCEN   | FMC_PCR2_TCLR   | \
+                                      FMC_PCR2_TAR     | FMC_PCR2_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM_CLEAR_MASK   ((uint32_t)(FMC_PMEM2_MEMSET2  | FMC_PMEM2_MEMWAIT2 |\
+                                      FMC_PMEM2_MEMHOLD2 | FMC_PMEM2_MEMHIZ2))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT_CLEAR_MASK   ((uint32_t)(FMC_PATT2_ATTSET2  | FMC_PATT2_ATTWAIT2 |\
+                                      FMC_PATT2_ATTHOLD2 | FMC_PATT2_ATTHIZ2))
+
+#endif /* FMC_PCR_PWAITEN */
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
+#if defined(FMC_Bank4)
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR4_CLEAR_MASK   ((uint32_t)(FMC_PCR4_PWAITEN | FMC_PCR4_PBKEN  | \
+                                      FMC_PCR4_PTYP    | FMC_PCR4_PWID   | \
+                                      FMC_PCR4_ECCEN   | FMC_PCR4_TCLR   | \
+                                      FMC_PCR4_TAR     | FMC_PCR4_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM4_CLEAR_MASK  ((uint32_t)(FMC_PMEM4_MEMSET4  | FMC_PMEM4_MEMWAIT4 |\
+                                      FMC_PMEM4_MEMHOLD4 | FMC_PMEM4_MEMHIZ4))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT4_CLEAR_MASK  ((uint32_t)(FMC_PATT4_ATTSET4  | FMC_PATT4_ATTWAIT4 |\
+                                      FMC_PATT4_ATTHOLD4 | FMC_PATT4_ATTHIZ4))
+
+/* --- PIO4 Register ---*/
+/* PIO4 register clear mask */
+#define PIO4_CLEAR_MASK   ((uint32_t)(FMC_PIO4_IOSET4  | FMC_PIO4_IOWAIT4 | \
+                                      FMC_PIO4_IOHOLD4 | FMC_PIO4_IOHIZ4))
+
+#endif /* FMC_Bank4 */
+#if defined(FMC_Bank5_6)
+
+/* --- SDCR Register ---*/
+/* SDCR register clear mask */
+#define SDCR_CLEAR_MASK   ((uint32_t)(FMC_SDCR1_NC    | FMC_SDCR1_NR     | \
+                                      FMC_SDCR1_MWID  | FMC_SDCR1_NB     | \
+                                      FMC_SDCR1_CAS   | FMC_SDCR1_WP     | \
+                                      FMC_SDCR1_SDCLK | FMC_SDCR1_RBURST | \
+                                      FMC_SDCR1_RPIPE))
+
+/* --- SDTR Register ---*/
+/* SDTR register clear mask */
+#define SDTR_CLEAR_MASK   ((uint32_t)(FMC_SDTR1_TMRD  | FMC_SDTR1_TXSR   | \
+                                      FMC_SDTR1_TRAS  | FMC_SDTR1_TRC    | \
+                                      FMC_SDTR1_TWR   | FMC_SDTR1_TRP    | \
+                                      FMC_SDTR1_TRCD))
+#endif /* FMC_Bank5_6 */
+
+/**
+  * @}
+  */
+
 /* Private macro -------------------------------------------------------------*/
 /* Private variables ---------------------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/** @addtogroup FMC_LL_Private_Functions
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup FMC_LL_Exported_Functions FMC Low Layer Exported Functions
   * @{
   */
 
-/** @addtogroup FMC_LL_NORSRAM
-  * @brief  NORSRAM Controller functions 
+#if defined(FMC_Bank1)
+
+/** @defgroup FMC_LL_Exported_Functions_NORSRAM FMC Low Layer NOR SRAM Exported Functions
+  * @brief  NORSRAM Controller functions
   *
-  @verbatim 
-  ==============================================================================   
+  @verbatim
+  ==============================================================================
                    ##### How to use NORSRAM device driver #####
   ==============================================================================
- 
-  [..] 
+
+  [..]
     This driver contains a set of APIs to interface with the FMC NORSRAM banks in order
     to run the NORSRAM external devices.
-      
-    (+) FMC NORSRAM bank reset using the function FMC_NORSRAM_DeInit() 
+
+    (+) FMC NORSRAM bank reset using the function FMC_NORSRAM_DeInit()
     (+) FMC NORSRAM bank control configuration using the function FMC_NORSRAM_Init()
     (+) FMC NORSRAM bank timing configuration using the function FMC_NORSRAM_Timing_Init()
-    (+) FMC NORSRAM bank extended timing configuration using the function 
+    (+) FMC NORSRAM bank extended timing configuration using the function
         FMC_NORSRAM_Extended_Timing_Init()
     (+) FMC NORSRAM bank enable/disable write operation using the functions
         FMC_NORSRAM_WriteOperation_Enable()/FMC_NORSRAM_WriteOperation_Disable()
-        
 
 @endverbatim
   * @{
   */
-       
-/** @addtogroup FMC_LL_NORSRAM_Private_Functions_Group1
-  * @brief    Initialization and Configuration functions 
+
+/** @defgroup FMC_LL_NORSRAM_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FMC NORSRAM interface
-    (+) De-initialize the FMC NORSRAM interface 
-    (+) Configure the FMC clock and associated GPIOs    
- 
+    (+) De-initialize the FMC NORSRAM interface
+    (+) Configure the FMC clock and associated GPIOs
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Initialize the FMC_NORSRAM device according to the specified
   *         control parameters in the FMC_NORSRAM_InitTypeDef
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Init Pointer to NORSRAM Initialization structure   
+  * @param  Init Pointer to NORSRAM Initialization structure
   * @retval HAL status
   */
-HAL_StatusTypeDef  FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef* Init)
-{ 
-  uint32_t tmpr = 0U;
-    
+HAL_StatusTypeDef  FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device,
+                                    FMC_NORSRAM_InitTypeDef *Init)
+{
+  uint32_t flashaccess;
+  uint32_t btcr_reg;
+  uint32_t mask;
+
   /* Check the parameters */
   assert_param(IS_FMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FMC_NORSRAM_BANK(Init->NSBank));
@@ -142,131 +250,139 @@
   assert_param(IS_FMC_NORSRAM_MEMORY_WIDTH(Init->MemoryDataWidth));
   assert_param(IS_FMC_BURSTMODE(Init->BurstAccessMode));
   assert_param(IS_FMC_WAIT_POLARITY(Init->WaitSignalPolarity));
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+#if defined(FMC_BCR1_WRAPMOD)
   assert_param(IS_FMC_WRAP_MODE(Init->WrapMode));
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#endif /* FMC_BCR1_WRAPMOD */
   assert_param(IS_FMC_WAIT_SIGNAL_ACTIVE(Init->WaitSignalActive));
   assert_param(IS_FMC_WRITE_OPERATION(Init->WriteOperation));
   assert_param(IS_FMC_WAITE_SIGNAL(Init->WaitSignal));
   assert_param(IS_FMC_EXTENDED_MODE(Init->ExtendedMode));
   assert_param(IS_FMC_ASYNWAIT(Init->AsynchronousWait));
   assert_param(IS_FMC_WRITE_BURST(Init->WriteBurst));
+#if defined(FMC_BCR1_CCLKEN)
   assert_param(IS_FMC_CONTINOUS_CLOCK(Init->ContinuousClock));
-  assert_param(IS_FMC_PAGESIZE(Init->PageSize));
-#if defined (STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#endif
+#if defined(FMC_BCR1_WFDIS)
   assert_param(IS_FMC_WRITE_FIFO(Init->WriteFifo));
-#endif /* STM32F446xx || STM32F469xx || STM32F479xx */
+#endif /* FMC_BCR1_WFDIS */
+  assert_param(IS_FMC_PAGESIZE(Init->PageSize));
 
-  /* Get the BTCR register value */
-  tmpr = Device->BTCR[Init->NSBank];
+  /* Disable NORSRAM Device */
+  __FMC_NORSRAM_DISABLE(Device, Init->NSBank);
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
-  /* Clear MBKEN, MUXEN, MTYP, MWID, FACCEN, BURSTEN, WAITPOL, WRAPMOD, WAITCFG, WREN,
-           WAITEN, EXTMOD, ASYNCWAIT, CPSIZE, CBURSTRW and CCLKEN bits */
-  tmpr &= ((uint32_t)~(FMC_BCR1_MBKEN     | FMC_BCR1_MUXEN    | FMC_BCR1_MTYP     | \
-                       FMC_BCR1_MWID      | FMC_BCR1_FACCEN   | FMC_BCR1_BURSTEN  | \
-                       FMC_BCR1_WAITPOL   | FMC_BCR1_WRAPMOD  | FMC_BCR1_WAITCFG  | \
-                       FMC_BCR1_WREN      | FMC_BCR1_WAITEN   | FMC_BCR1_EXTMOD   | \
-                       FMC_BCR1_ASYNCWAIT | FMC_BCR1_CPSIZE   | FMC_BCR1_CBURSTRW | \
-                       FMC_BCR1_CCLKEN));
-  
   /* Set NORSRAM device control parameters */
-  tmpr |= (uint32_t)(Init->DataAddressMux       |\
-                    Init->MemoryType           |\
-                    Init->MemoryDataWidth      |\
-                    Init->BurstAccessMode      |\
-                    Init->WaitSignalPolarity   |\
-                    Init->WrapMode             |\
-                    Init->WaitSignalActive     |\
-                    Init->WriteOperation       |\
-                    Init->WaitSignal           |\
-                    Init->ExtendedMode         |\
-                    Init->AsynchronousWait     |\
-                    Init->PageSize             |\
-                    Init->WriteBurst           |\
-                    Init->ContinuousClock);
-#else /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) */
-  /* Clear MBKEN, MUXEN, MTYP, MWID, FACCEN, BURSTEN, WAITPOL, CPSIZE, WAITCFG, WREN,
-           WAITEN, EXTMOD, ASYNCWAIT, CBURSTRW, CCLKEN and WFDIS bits */
-  tmpr &= ((uint32_t)~(FMC_BCR1_MBKEN     | FMC_BCR1_MUXEN    | FMC_BCR1_MTYP     | \
-                       FMC_BCR1_MWID      | FMC_BCR1_FACCEN   | FMC_BCR1_BURSTEN  | \
-                       FMC_BCR1_WAITPOL   | FMC_BCR1_WAITCFG  | FMC_BCR1_CPSIZE   | \
-                       FMC_BCR1_WREN      | FMC_BCR1_WAITEN   | FMC_BCR1_EXTMOD   | \
-                       FMC_BCR1_ASYNCWAIT | FMC_BCR1_CBURSTRW | FMC_BCR1_CCLKEN   | \
-                       FMC_BCR1_WFDIS));
-  
-  /* Set NORSRAM device control parameters */
-  tmpr |= (uint32_t)(Init->DataAddressMux       |\
-                    Init->MemoryType           |\
-                    Init->MemoryDataWidth      |\
-                    Init->BurstAccessMode      |\
-                    Init->WaitSignalPolarity   |\
-                    Init->WaitSignalActive     |\
-                    Init->WriteOperation       |\
-                    Init->WaitSignal           |\
-                    Init->ExtendedMode         |\
-                    Init->AsynchronousWait     |\
-                    Init->WriteBurst           |\
-                    Init->ContinuousClock      |\
-                    Init->PageSize             |\
-                    Init->WriteFifo);
-#endif /*  defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
-                    
-  if(Init->MemoryType == FMC_MEMORY_TYPE_NOR)
+  if (Init->MemoryType == FMC_MEMORY_TYPE_NOR)
   {
-    tmpr |= (uint32_t)FMC_NORSRAM_FLASH_ACCESS_ENABLE;
+    flashaccess = FMC_NORSRAM_FLASH_ACCESS_ENABLE;
   }
-  
-  Device->BTCR[Init->NSBank] = tmpr;
+  else
+  {
+    flashaccess = FMC_NORSRAM_FLASH_ACCESS_DISABLE;
+  }
 
+  btcr_reg = (flashaccess                   | \
+              Init->DataAddressMux          | \
+              Init->MemoryType              | \
+              Init->MemoryDataWidth         | \
+              Init->BurstAccessMode         | \
+              Init->WaitSignalPolarity      | \
+              Init->WaitSignalActive        | \
+              Init->WriteOperation          | \
+              Init->WaitSignal              | \
+              Init->ExtendedMode            | \
+              Init->AsynchronousWait        | \
+              Init->WriteBurst);
+
+#if defined(FMC_BCR1_WRAPMOD)
+  btcr_reg |= Init->WrapMode;
+#endif /* FMC_BCR1_WRAPMOD */
+#if defined(FMC_BCR1_CCLKEN)
+  btcr_reg |= Init->ContinuousClock;
+#endif /* FMC_BCR1_CCLKEN */
+#if defined(FMC_BCR1_WFDIS)
+  btcr_reg |= Init->WriteFifo;
+#endif /* FMC_BCR1_WFDIS */
+  btcr_reg |= Init->PageSize;
+
+  mask = (FMC_BCR1_MBKEN                |
+          FMC_BCR1_MUXEN                |
+          FMC_BCR1_MTYP                 |
+          FMC_BCR1_MWID                 |
+          FMC_BCR1_FACCEN               |
+          FMC_BCR1_BURSTEN              |
+          FMC_BCR1_WAITPOL              |
+          FMC_BCR1_WAITCFG              |
+          FMC_BCR1_WREN                 |
+          FMC_BCR1_WAITEN               |
+          FMC_BCR1_EXTMOD               |
+          FMC_BCR1_ASYNCWAIT            |
+          FMC_BCR1_CBURSTRW);
+
+#if defined(FMC_BCR1_WRAPMOD)
+  mask |= FMC_BCR1_WRAPMOD;
+#endif /* FMC_BCR1_WRAPMOD */
+#if defined(FMC_BCR1_CCLKEN)
+  mask |= FMC_BCR1_CCLKEN;
+#endif
+#if defined(FMC_BCR1_WFDIS)
+  mask |= FMC_BCR1_WFDIS;
+#endif /* FMC_BCR1_WFDIS */
+  mask |= FMC_BCR1_CPSIZE;
+
+  MODIFY_REG(Device->BTCR[Init->NSBank], mask, btcr_reg);
+
+#if defined(FMC_BCR1_CCLKEN)
   /* Configure synchronous mode when Continuous clock is enabled for bank2..4 */
-  if((Init->ContinuousClock == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC) && (Init->NSBank != FMC_NORSRAM_BANK1))
-  { 
-    Device->BTCR[FMC_NORSRAM_BANK1] |= (uint32_t)(Init->ContinuousClock);
-  }
-
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-  if(Init->NSBank != FMC_NORSRAM_BANK1)
+  if ((Init->ContinuousClock == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC) && (Init->NSBank != FMC_NORSRAM_BANK1))
   {
-    Device->BTCR[FMC_NORSRAM_BANK1] |= (uint32_t)(Init->WriteFifo);              
+    MODIFY_REG(Device->BTCR[FMC_NORSRAM_BANK1], FMC_BCR1_CCLKEN, Init->ContinuousClock);
   }
-#endif /* STM32F446xx || STM32F469xx || STM32F479xx */
-  
+#endif
+#if defined(FMC_BCR1_WFDIS)
+
+  if (Init->NSBank != FMC_NORSRAM_BANK1)
+  {
+    /* Configure Write FIFO mode when Write Fifo is enabled for bank2..4 */
+    SET_BIT(Device->BTCR[FMC_NORSRAM_BANK1], (uint32_t)(Init->WriteFifo));
+  }
+#endif /* FMC_BCR1_WFDIS */
+
   return HAL_OK;
 }
 
 /**
-  * @brief  DeInitialize the FMC_NORSRAM peripheral 
+  * @brief  DeInitialize the FMC_NORSRAM peripheral
   * @param  Device Pointer to NORSRAM device instance
-  * @param  ExDevice Pointer to NORSRAM extended mode device instance  
-  * @param  Bank NORSRAM bank number  
+  * @param  ExDevice Pointer to NORSRAM extended mode device instance
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
+HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device,
+                                     FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
 {
   /* Check the parameters */
   assert_param(IS_FMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FMC_NORSRAM_EXTENDED_DEVICE(ExDevice));
   assert_param(IS_FMC_NORSRAM_BANK(Bank));
-  
+
   /* Disable the FMC_NORSRAM device */
   __FMC_NORSRAM_DISABLE(Device, Bank);
-  
+
   /* De-initialize the FMC_NORSRAM device */
   /* FMC_NORSRAM_BANK1 */
-  if(Bank == FMC_NORSRAM_BANK1)
+  if (Bank == FMC_NORSRAM_BANK1)
   {
     Device->BTCR[Bank] = 0x000030DBU;
   }
   /* FMC_NORSRAM_BANK2, FMC_NORSRAM_BANK3 or FMC_NORSRAM_BANK4 */
   else
-  {   
+  {
     Device->BTCR[Bank] = 0x000030D2U;
   }
-  
+
   Device->BTCR[Bank + 1U] = 0x0FFFFFFFU;
-  ExDevice->BWTR[Bank]    = 0x0FFFFFFFU;
-   
+  ExDevice->BWTR[Bank]   = 0x0FFFFFFFU;
+
   return HAL_OK;
 }
 
@@ -275,13 +391,16 @@
   *         parameters in the FMC_NORSRAM_TimingTypeDef
   * @param  Device Pointer to NORSRAM device instance
   * @param  Timing Pointer to NORSRAM Timing structure
-  * @param  Bank NORSRAM bank number  
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device,
+                                          FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;
-  
+#if defined(FMC_BCR1_CCLKEN)
+  uint32_t tmpr;
+#endif
+
   /* Check the parameters */
   assert_param(IS_FMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FMC_ADDRESS_SETUP_TIME(Timing->AddressSetupTime));
@@ -292,35 +411,27 @@
   assert_param(IS_FMC_DATA_LATENCY(Timing->DataLatency));
   assert_param(IS_FMC_ACCESS_MODE(Timing->AccessMode));
   assert_param(IS_FMC_NORSRAM_BANK(Bank));
-  
-  /* Get the BTCR register value */
-  tmpr = Device->BTCR[Bank + 1U];
 
-  /* Clear ADDSET, ADDHLD, DATAST, BUSTURN, CLKDIV, DATLAT and ACCMOD bits */
-  tmpr &= ((uint32_t)~(FMC_BTR1_ADDSET  | FMC_BTR1_ADDHLD | FMC_BTR1_DATAST | \
-                       FMC_BTR1_BUSTURN | FMC_BTR1_CLKDIV | FMC_BTR1_DATLAT | \
-                       FMC_BTR1_ACCMOD));
-  
-  /* Set FMC_NORSRAM device timing parameters */  
-  tmpr |= (uint32_t)(Timing->AddressSetupTime                   |\
-                    ((Timing->AddressHoldTime) << 4U)           |\
-                    ((Timing->DataSetupTime) << 8U)             |\
-                    ((Timing->BusTurnAroundDuration) << 16U)    |\
-                    (((Timing->CLKDivision) - 1U) << 20U)         |\
-                    (((Timing->DataLatency) - 2U) << 24U)         |\
-                    (Timing->AccessMode));
-  
-  Device->BTCR[Bank + 1U] = tmpr;
-  
+  /* Set FMC_NORSRAM device timing parameters */
+  MODIFY_REG(Device->BTCR[Bank + 1U], BTR_CLEAR_MASK, (Timing->AddressSetupTime                                  |
+                                                       ((Timing->AddressHoldTime)        << FMC_BTR1_ADDHLD_Pos)  |
+                                                       ((Timing->DataSetupTime)          << FMC_BTR1_DATAST_Pos)  |
+                                                       ((Timing->BusTurnAroundDuration)  << FMC_BTR1_BUSTURN_Pos) |
+                                                       (((Timing->CLKDivision) - 1U)     << FMC_BTR1_CLKDIV_Pos)  |
+                                                       (((Timing->DataLatency) - 2U)     << FMC_BTR1_DATLAT_Pos)  |
+                                                       (Timing->AccessMode)));
+
+#if defined(FMC_BCR1_CCLKEN)
   /* Configure Clock division value (in NORSRAM bank 1) when continuous clock is enabled */
-  if(HAL_IS_BIT_SET(Device->BTCR[FMC_NORSRAM_BANK1], FMC_BCR1_CCLKEN))
+  if (HAL_IS_BIT_SET(Device->BTCR[FMC_NORSRAM_BANK1], FMC_BCR1_CCLKEN))
   {
-    tmpr = (uint32_t)(Device->BTCR[FMC_NORSRAM_BANK1 + 1U] & ~(0x0FU << 20U)); 
-    tmpr |= (uint32_t)(((Timing->CLKDivision) - 1U) << 20U);
-    Device->BTCR[FMC_NORSRAM_BANK1 + 1U] = tmpr;
-  }  
-  
-  return HAL_OK;   
+    tmpr = (uint32_t)(Device->BTCR[FMC_NORSRAM_BANK1 + 1U] & ~((0x0FU) << FMC_BTR1_CLKDIV_Pos));
+    tmpr |= (uint32_t)(((Timing->CLKDivision) - 1U) << FMC_BTR1_CLKDIV_Pos);
+    MODIFY_REG(Device->BTCR[FMC_NORSRAM_BANK1 + 1U], FMC_BTR1_CLKDIV, tmpr);
+  }
+
+#endif
+  return HAL_OK;
 }
 
 /**
@@ -328,61 +439,57 @@
   *         parameters in the FMC_NORSRAM_TimingTypeDef
   * @param  Device Pointer to NORSRAM device instance
   * @param  Timing Pointer to NORSRAM Timing structure
-  * @param  Bank NORSRAM bank number  
+  * @param  Bank NORSRAM bank number
+  * @param  ExtendedMode FMC Extended Mode
+  *          This parameter can be one of the following values:
+  *            @arg FMC_EXTENDED_MODE_DISABLE
+  *            @arg FMC_EXTENDED_MODE_ENABLE
   * @retval HAL status
   */
-HAL_StatusTypeDef  FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode)
-{  
-  uint32_t tmpr = 0U;
- 
+HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device,
+                                                   FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank,
+                                                   uint32_t ExtendedMode)
+{
   /* Check the parameters */
   assert_param(IS_FMC_EXTENDED_MODE(ExtendedMode));
-  
+
   /* Set NORSRAM device timing register for write configuration, if extended mode is used */
-  if(ExtendedMode == FMC_EXTENDED_MODE_ENABLE)
+  if (ExtendedMode == FMC_EXTENDED_MODE_ENABLE)
   {
     /* Check the parameters */
-    assert_param(IS_FMC_NORSRAM_EXTENDED_DEVICE(Device));  
+    assert_param(IS_FMC_NORSRAM_EXTENDED_DEVICE(Device));
     assert_param(IS_FMC_ADDRESS_SETUP_TIME(Timing->AddressSetupTime));
     assert_param(IS_FMC_ADDRESS_HOLD_TIME(Timing->AddressHoldTime));
     assert_param(IS_FMC_DATASETUP_TIME(Timing->DataSetupTime));
     assert_param(IS_FMC_TURNAROUND_TIME(Timing->BusTurnAroundDuration));
     assert_param(IS_FMC_ACCESS_MODE(Timing->AccessMode));
-    assert_param(IS_FMC_NORSRAM_BANK(Bank));  
-    
-    /* Get the BWTR register value */
-    tmpr = Device->BWTR[Bank];
+    assert_param(IS_FMC_NORSRAM_BANK(Bank));
 
-    /* Clear ADDSET, ADDHLD, DATAST, BUSTURN and ACCMOD bits */
-    tmpr &= ((uint32_t)~(FMC_BWTR1_ADDSET  | FMC_BWTR1_ADDHLD | FMC_BWTR1_DATAST | \
-                         FMC_BWTR1_BUSTURN | FMC_BWTR1_ACCMOD));
-    
-    tmpr |= (uint32_t)(Timing->AddressSetupTime                  |\
-                      ((Timing->AddressHoldTime) << 4U)          |\
-                      ((Timing->DataSetupTime) << 8U)            |\
-                      ((Timing->BusTurnAroundDuration) << 16U)   |\
-                      (Timing->AccessMode));
-
-    Device->BWTR[Bank] = tmpr;
+    /* Set NORSRAM device timing register for write configuration, if extended mode is used */
+    MODIFY_REG(Device->BWTR[Bank], BWTR_CLEAR_MASK, (Timing->AddressSetupTime                                    |
+                                                     ((Timing->AddressHoldTime)        << FMC_BWTR1_ADDHLD_Pos)  |
+                                                     ((Timing->DataSetupTime)          << FMC_BWTR1_DATAST_Pos)  |
+                                                     Timing->AccessMode                                          |
+                                                     ((Timing->BusTurnAroundDuration)  << FMC_BWTR1_BUSTURN_Pos)));
   }
   else
   {
     Device->BWTR[Bank] = 0x0FFFFFFFU;
-  }   
-  
-  return HAL_OK;  
+  }
+
+  return HAL_OK;
 }
 /**
   * @}
   */
-  
+
 /** @addtogroup FMC_LL_NORSRAM_Private_Functions_Group2
- *  @brief   management functions 
- *
-@verbatim   
+  *  @brief   management functions
+  *
+@verbatim
   ==============================================================================
                       ##### FMC_NORSRAM Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the FMC NORSRAM interface.
@@ -390,10 +497,11 @@
 @endverbatim
   * @{
   */
+
 /**
   * @brief  Enables dynamically FMC_NORSRAM write operation.
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Bank NORSRAM bank number   
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
@@ -401,29 +509,29 @@
   /* Check the parameters */
   assert_param(IS_FMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FMC_NORSRAM_BANK(Bank));
-  
-  /* Enable write operation */
-  Device->BTCR[Bank] |= FMC_WRITE_OPERATION_ENABLE; 
 
-  return HAL_OK;  
+  /* Enable write operation */
+  SET_BIT(Device->BTCR[Bank], FMC_WRITE_OPERATION_ENABLE);
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Disables dynamically FMC_NORSRAM write operation.
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Bank NORSRAM bank number   
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
-{ 
+{
   /* Check the parameters */
   assert_param(IS_FMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FMC_NORSRAM_BANK(Bank));
-    
-  /* Disable write operation */
-  Device->BTCR[Bank] &= ~FMC_WRITE_OPERATION_ENABLE; 
 
-  return HAL_OK;  
+  /* Disable write operation */
+  CLEAR_BIT(Device->BTCR[Bank], FMC_WRITE_OPERATION_ENABLE);
+
+  return HAL_OK;
 }
 
 /**
@@ -433,317 +541,52 @@
 /**
   * @}
   */
+#endif /* FMC_Bank1 */
 
-/** @addtogroup FMC_LL_NAND
-  * @brief    NAND Controller functions 
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
+
+/** @defgroup FMC_LL_Exported_Functions_NAND FMC Low Layer NAND Exported Functions
+  * @brief    NAND Controller functions
   *
-  @verbatim 
+  @verbatim
   ==============================================================================
                     ##### How to use NAND device driver #####
   ==============================================================================
   [..]
     This driver contains a set of APIs to interface with the FMC NAND banks in order
     to run the NAND external devices.
-  
-    (+) FMC NAND bank reset using the function FMC_NAND_DeInit() 
+
+    (+) FMC NAND bank reset using the function FMC_NAND_DeInit()
     (+) FMC NAND bank control configuration using the function FMC_NAND_Init()
-    (+) FMC NAND bank common space timing configuration using the function 
+    (+) FMC NAND bank common space timing configuration using the function
         FMC_NAND_CommonSpace_Timing_Init()
-    (+) FMC NAND bank attribute space timing configuration using the function 
+    (+) FMC NAND bank attribute space timing configuration using the function
         FMC_NAND_AttributeSpace_Timing_Init()
     (+) FMC NAND bank enable/disable ECC correction feature using the functions
         FMC_NAND_ECC_Enable()/FMC_NAND_ECC_Disable()
-    (+) FMC NAND bank get ECC correction code using the function FMC_NAND_GetECC()    
+    (+) FMC NAND bank get ECC correction code using the function FMC_NAND_GetECC()
 
 @endverbatim
   * @{
   */
- 
-#if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
-/** @defgroup HAL_FMC_NAND_Group1 Initialization/de-initialization functions 
- *  @brief    Initialization and Configuration functions 
- *
-@verbatim    
+
+/** @defgroup FMC_LL_NAND_Exported_Functions_Group1 Initialization and de-initialization functions
+  *  @brief    Initialization and Configuration functions
+  *
+@verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
-    This section provides functions allowing to:
-    (+) Initialize and configure the FMC NAND interface
-    (+) De-initialize the FMC NAND interface 
-    (+) Configure the FMC clock and associated GPIOs
-        
-@endverbatim
-  * @{
-  */
-
-/**
-  * @brief  Initializes the FMC_NAND device according to the specified
-  *         control parameters in the FMC_NAND_HandleTypeDef
-  * @param  Device Pointer to NAND device instance
-  * @param  Init Pointer to NAND Initialization structure
-  * @retval HAL status
-  */
-HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init)
-{
-  uint32_t tmpr  = 0U; 
-    
-  /* Check the parameters */
-  assert_param(IS_FMC_NAND_DEVICE(Device));
-  assert_param(IS_FMC_NAND_BANK(Init->NandBank));
-  assert_param(IS_FMC_WAIT_FEATURE(Init->Waitfeature));
-  assert_param(IS_FMC_NAND_MEMORY_WIDTH(Init->MemoryDataWidth));
-  assert_param(IS_FMC_ECC_STATE(Init->EccComputation));
-  assert_param(IS_FMC_ECCPAGE_SIZE(Init->ECCPageSize));
-  assert_param(IS_FMC_TCLR_TIME(Init->TCLRSetupTime));
-  assert_param(IS_FMC_TAR_TIME(Init->TARSetupTime));   
-  
-  /* Get the NAND bank register value */
-  tmpr = Device->PCR;
-  
-  /* Clear PWAITEN, PBKEN, PTYP, PWID, ECCEN, TCLR, TAR and ECCPS bits */
-  tmpr &= ((uint32_t)~(FMC_PCR_PWAITEN  | FMC_PCR_PBKEN | FMC_PCR_PTYP | \
-                       FMC_PCR_PWID | FMC_PCR_ECCEN | FMC_PCR_TCLR | \
-                       FMC_PCR_TAR | FMC_PCR_ECCPS));  
-  
-  /* Set NAND device control parameters */
-  tmpr |= (uint32_t)(Init->Waitfeature                |\
-                     FMC_PCR_MEMORY_TYPE_NAND         |\
-                     Init->MemoryDataWidth            |\
-                     Init->EccComputation             |\
-                     Init->ECCPageSize                |\
-                     ((Init->TCLRSetupTime) << 9U)    |\
-                     ((Init->TARSetupTime) << 13U));
-
-  /* NAND bank registers configuration */
-  Device->PCR  = tmpr;
-
-  return HAL_OK;
-}
-
-/**
-  * @brief  Initializes the FMC_NAND Common space Timing according to the specified
-  *         parameters in the FMC_NAND_PCC_TimingTypeDef
-  * @param  Device Pointer to NAND device instance
-  * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number   
-  * @retval HAL status
-  */
-HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
-{
-  uint32_t tmpr = 0U;  
-  
-  /* Check the parameters */
-  assert_param(IS_FMC_NAND_DEVICE(Device));
-  assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
-  assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
-  assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
-  assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
-  assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  /* Get the NAND bank 2 register value */
-  tmpr = Device->PMEM;
-
-  
-  /* Clear MEMSETx, MEMWAITx, MEMHOLDx and MEMHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PMEM_MEMSET2  | FMC_PMEM_MEMWAIT2 | FMC_PMEM_MEMHOLD2 | \
-                       FMC_PMEM_MEMHIZ2)); 
-  
-  /* Set FMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                     |\
-                       ((Timing->WaitSetupTime) << 8U)     |\
-                       ((Timing->HoldSetupTime) << 16U)    |\
-                       ((Timing->HiZSetupTime) << 24U)
-                       );
-                       
-  /* NAND bank  registers configuration */
-  Device->PMEM = tmpr;
-
-  return HAL_OK;  
-}
-
-/**
-  * @brief  Initializes the FMC_NAND Attribute space Timing according to the specified
-  *         parameters in the FMC_NAND_PCC_TimingTypeDef
-  * @param  Device Pointer to NAND device instance
-  * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number 
-  * @retval HAL status
-  */
-HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
-{
-  uint32_t tmpr = 0U;  
-  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
-  assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
-  assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
-  assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
-  assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
-  assert_param(IS_FMC_NAND_BANK(Bank));
-
-  /* Get the NAND bank  register value */
-  tmpr = Device->PATT;
-
-  /* Clear ATTSETx, ATTWAITx, ATTHOLDx and ATTHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PATT_ATTSET2  | FMC_PATT_ATTWAIT2 | FMC_PATT_ATTHOLD2 | \
-                       FMC_PATT_ATTHIZ2));
-  
-  /* Set FMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                 |\
-                   ((Timing->WaitSetupTime) << 8U)     |\
-                   ((Timing->HoldSetupTime) << 16U)    |\
-                   ((Timing->HiZSetupTime) << 24U));
-
-  /* NAND bank registers configuration */
-  Device->PATT = tmpr; 
- 
-  return HAL_OK;
-}
-
-
-/**
-  * @brief  DeInitializes the FMC_NAND device 
-  * @param  Device Pointer to NAND device instance
-  * @param  Bank NAND bank number
-  * @retval HAL status
-  */
-HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank)
-{
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
-  assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  /* Disable the NAND Bank */
-  __FMC_NAND_DISABLE(Device, Bank);
-  
-  /* De-initialize the NAND Bank */
-  /* Set the FMC_NAND_BANK registers to their reset values */
-  Device->PCR  = 0x00000018U;
-  Device->SR   = 0x00000040U;
-  Device->PMEM = 0xFCFCFCFCU;
-  Device->PATT = 0xFCFCFCFCU;
-
-  return HAL_OK;
-}
-
-/**
-  * @}
-  */
-  
-  
-/** @defgroup HAL_FMC_NAND_Group2 Control functions 
- *  @brief   management functions 
- *
-@verbatim   
-  ==============================================================================
-                       ##### FMC_NAND Control functions #####
-  ==============================================================================  
   [..]
-    This subsection provides a set of functions allowing to control dynamically
-    the FMC NAND interface.
-
-@endverbatim
-  * @{
-  */ 
-
-    
-/**
-  * @brief  Enables dynamically FMC_NAND ECC feature.
-  * @param  Device Pointer to NAND device instance
-  * @param  Bank NAND bank number
-  * @retval HAL status
-  */    
-HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank)
-{
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
-  assert_param(IS_FMC_NAND_BANK(Bank));
-
-  /* Enable ECC feature */
-  Device->PCR |= FMC_PCR_ECCEN;
-
-  return HAL_OK;  
-}
-
-
-/**
-  * @brief  Disables dynamically FMC_NAND ECC feature.
-  * @param  Device Pointer to NAND device instance
-  * @param  Bank NAND bank number
-  * @retval HAL status
-  */  
-HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)  
-{  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
-  assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  /* Disable ECC feature */
-  Device->PCR &= ~FMC_PCR_ECCEN;
-
-  return HAL_OK;  
-}
-
-/**
-  * @brief  Disables dynamically FMC_NAND ECC feature.
-  * @param  Device Pointer to NAND device instance
-  * @param  ECCval Pointer to ECC value
-  * @param  Bank NAND bank number
-  * @param  Timeout Timeout wait value  
-  * @retval HAL status
-  */
-HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
-{
-  uint32_t tickstart = 0U;
-  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
-  assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  /* Get tick */ 
-  tickstart = HAL_GetTick();
-  
-  /* Wait until FIFO is empty */
-  while(__FMC_NAND_GET_FLAG(Device, Bank, FMC_FLAG_FEMPT) == RESET)
-  {
-    /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
-    {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
-      {
-        return HAL_TIMEOUT;
-      }
-    }  
-  }
-  
-  /* Get the ECCR register value */
-  *ECCval = (uint32_t)Device->ECCR;
-
-  return HAL_OK;  
-}
-
-/**
-  * @}
-  */
-
-#else /* defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) */
-/** @defgroup HAL_FMC_NAND_Group1 Initialization/de-initialization functions 
- *  @brief    Initialization and Configuration functions 
- *
-@verbatim    
-  ==============================================================================
-              ##### Initialization and de_initialization functions #####
-  ==============================================================================
-  [..]  
     This section provides functions allowing to:
     (+) Initialize and configure the FMC NAND interface
-    (+) De-initialize the FMC NAND interface 
+    (+) De-initialize the FMC NAND interface
     (+) Configure the FMC clock and associated GPIOs
-        
+
 @endverbatim
   * @{
   */
+
 /**
   * @brief  Initializes the FMC_NAND device according to the specified
   *         control parameters in the FMC_NAND_HandleTypeDef
@@ -753,8 +596,6 @@
   */
 HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init)
 {
-  uint32_t tmpr  = 0U; 
-    
   /* Check the parameters */
   assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_NAND_BANK(Init->NandBank));
@@ -763,46 +604,44 @@
   assert_param(IS_FMC_ECC_STATE(Init->EccComputation));
   assert_param(IS_FMC_ECCPAGE_SIZE(Init->ECCPageSize));
   assert_param(IS_FMC_TCLR_TIME(Init->TCLRSetupTime));
-  assert_param(IS_FMC_TAR_TIME(Init->TARSetupTime));   
+  assert_param(IS_FMC_TAR_TIME(Init->TARSetupTime));
 
-  if(Init->NandBank == FMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PCR2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PCR3;
-  }
-  
-  /* Clear PWAITEN, PBKEN, PTYP, PWID, ECCEN, TCLR, TAR and ECCPS bits */
-  tmpr &= ((uint32_t)~(FMC_PCR2_PWAITEN  | FMC_PCR2_PBKEN | FMC_PCR2_PTYP | \
-                       FMC_PCR2_PWID | FMC_PCR2_ECCEN | FMC_PCR2_TCLR | \
-                       FMC_PCR2_TAR | FMC_PCR2_ECCPS));  
-  
+#if defined(FMC_Bank2_3)
   /* Set NAND device control parameters */
-  tmpr |= (uint32_t)(Init->Waitfeature                 |\
-                     FMC_PCR_MEMORY_TYPE_NAND          |\
-                     Init->MemoryDataWidth             |\
-                     Init->EccComputation              |\
-                     Init->ECCPageSize                 |\
-                     ((Init->TCLRSetupTime) << 9U)     |\
-                     ((Init->TARSetupTime) << 13U));   
-  
-  if(Init->NandBank == FMC_NAND_BANK2)
+  if (Init->NandBank == FMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PCR2  = tmpr;
+    MODIFY_REG(Device->PCR2, PCR_CLEAR_MASK, (Init->Waitfeature                                      |
+                                              FMC_PCR_MEMORY_TYPE_NAND                               |
+                                              Init->MemoryDataWidth                                  |
+                                              Init->EccComputation                                   |
+                                              Init->ECCPageSize                                      |
+                                              ((Init->TCLRSetupTime) << FMC_PCR2_TCLR_Pos)  |
+                                              ((Init->TARSetupTime)  << FMC_PCR2_TAR_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PCR3  = tmpr;
+    MODIFY_REG(Device->PCR3, PCR_CLEAR_MASK, (Init->Waitfeature                                      |
+                                              FMC_PCR_MEMORY_TYPE_NAND                               |
+                                              Init->MemoryDataWidth                                  |
+                                              Init->EccComputation                                   |
+                                              Init->ECCPageSize                                      |
+                                              ((Init->TCLRSetupTime) << FMC_PCR2_TCLR_Pos)  |
+                                              ((Init->TARSetupTime)  << FMC_PCR2_TAR_Pos)));
   }
-  
-  return HAL_OK;
+#else
+  /* NAND bank 3 registers configuration */
+  MODIFY_REG(Device->PCR, PCR_CLEAR_MASK, (Init->Waitfeature                            |
+                                           FMC_PCR_MEMORY_TYPE_NAND                     |
+                                           Init->MemoryDataWidth                        |
+                                           Init->EccComputation                         |
+                                           Init->ECCPageSize                            |
+                                           ((Init->TCLRSetupTime) << FMC_PCR_TCLR_Pos)  |
+                                           ((Init->TARSetupTime)  << FMC_PCR_TAR_Pos)));
+#endif
 
+  return HAL_OK;
 }
 
 /**
@@ -810,13 +649,12 @@
   *         parameters in the FMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to NAND device instance
   * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number   
+  * @param  Bank NAND bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device,
+                                                   FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;  
-  
   /* Check the parameters */
   assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
@@ -824,41 +662,37 @@
   assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
   assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  if(Bank == FMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PMEM2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PMEM3;
-  } 
-  
-  /* Clear MEMSETx, MEMWAITx, MEMHOLDx and MEMHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PMEM2_MEMSET2  | FMC_PMEM2_MEMWAIT2 | FMC_PMEM2_MEMHOLD2 | \
-                       FMC_PMEM2_MEMHIZ2)); 
-  
+
+#if defined(FMC_Bank2_3)
   /* Set FMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                     |\
-                       ((Timing->WaitSetupTime) << 8U)     |\
-                       ((Timing->HoldSetupTime) << 16U)    |\
-                       ((Timing->HiZSetupTime) << 24U)
-                       );
-                            
-  if(Bank == FMC_NAND_BANK2)
+  if (Bank == FMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PMEM2 = tmpr;
+    MODIFY_REG(Device->PMEM2, PMEM_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FMC_PMEM2_MEMWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FMC_PMEM2_MEMHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FMC_PMEM2_MEMHIZ2_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PMEM3 = tmpr;
-  }  
-  
-  return HAL_OK;  
+    MODIFY_REG(Device->PMEM3, PMEM_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FMC_PMEM2_MEMWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FMC_PMEM2_MEMHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FMC_PMEM2_MEMHIZ2_Pos)));
+  }
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
+
+  /* NAND bank 3 registers configuration */
+  MODIFY_REG(Device->PMEM, PMEM_CLEAR_MASK, (Timing->SetupTime                                 |
+                                             ((Timing->WaitSetupTime) << FMC_PMEM_MEMWAIT2_Pos) |
+                                             ((Timing->HoldSetupTime) << FMC_PMEM_MEMHOLD2_Pos) |
+                                             ((Timing->HiZSetupTime)  << FMC_PMEM_MEMHIZ2_Pos)));
+#endif
+
+  return HAL_OK;
 }
 
 /**
@@ -866,90 +700,97 @@
   *         parameters in the FMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to NAND device instance
   * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number 
+  * @param  Bank NAND bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device,
+                                                      FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;  
-  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
+  /* Check the parameters */
+  assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
   assert_param(IS_FMC_NAND_BANK(Bank));
-  
-  if(Bank == FMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PATT2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PATT3;
-  } 
-  
-  /* Clear ATTSETx, ATTWAITx, ATTHOLDx and ATTHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PATT2_ATTSET2  | FMC_PATT2_ATTWAIT2 | FMC_PATT2_ATTHOLD2 | \
-                       FMC_PATT2_ATTHIZ2));
-  
+
+#if defined(FMC_Bank2_3)
   /* Set FMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                  |\
-                   ((Timing->WaitSetupTime) << 8U)      |\
-                   ((Timing->HoldSetupTime) << 16U)     |\
-                   ((Timing->HiZSetupTime) << 24U));
-                       
-  if(Bank == FMC_NAND_BANK2)
+  if (Bank == FMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PATT2 = tmpr;
+    MODIFY_REG(Device->PATT2, PATT_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FMC_PATT2_ATTWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FMC_PATT2_ATTHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FMC_PATT2_ATTHIZ2_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PATT3 = tmpr;
-  }   
-  
+    MODIFY_REG(Device->PATT3, PATT_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FMC_PATT2_ATTWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FMC_PATT2_ATTHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FMC_PATT2_ATTHIZ2_Pos)));
+  }
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
+
+  /* NAND bank 3 registers configuration */
+  MODIFY_REG(Device->PATT, PATT_CLEAR_MASK, (Timing->SetupTime                                 |
+                                             ((Timing->WaitSetupTime) << FMC_PATT_ATTWAIT2_Pos) |
+                                             ((Timing->HoldSetupTime) << FMC_PATT_ATTHOLD2_Pos) |
+                                             ((Timing->HiZSetupTime)  << FMC_PATT_ATTHIZ2_Pos)));
+#endif
+
   return HAL_OK;
 }
 
 /**
-  * @brief  DeInitializes the FMC_NAND device 
+  * @brief  DeInitializes the FMC_NAND device
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank)
 {
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
+  /* Check the parameters */
+  assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_NAND_BANK(Bank));
-      
+
   /* Disable the NAND Bank */
   __FMC_NAND_DISABLE(Device, Bank);
- 
+
   /* De-initialize the NAND Bank */
-  if(Bank == FMC_NAND_BANK2)
+#if defined(FMC_Bank2_3)
+  if (Bank == FMC_NAND_BANK2)
   {
     /* Set the FMC_NAND_BANK2 registers to their reset values */
-    Device->PCR2  = 0x00000018U;
-    Device->SR2   = 0x00000040U;
-    Device->PMEM2 = 0xFCFCFCFCU;
-    Device->PATT2 = 0xFCFCFCFCU;  
+    WRITE_REG(Device->PCR2,  0x00000018U);
+    WRITE_REG(Device->SR2,   0x00000040U);
+    WRITE_REG(Device->PMEM2, 0xFCFCFCFCU);
+    WRITE_REG(Device->PATT2, 0xFCFCFCFCU);
   }
-  /* FMC_Bank3_NAND */  
+  /* FMC_Bank3_NAND */
   else
   {
     /* Set the FMC_NAND_BANK3 registers to their reset values */
-    Device->PCR3  = 0x00000018U;
-    Device->SR3   = 0x00000040U;
-    Device->PMEM3 = 0xFCFCFCFCU;
-    Device->PATT3 = 0xFCFCFCFCU; 
+    WRITE_REG(Device->PCR3,  0x00000018U);
+    WRITE_REG(Device->SR3,   0x00000040U);
+    WRITE_REG(Device->PMEM3, 0xFCFCFCFCU);
+    WRITE_REG(Device->PATT3, 0xFCFCFCFCU);
   }
-  
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
+
+  /* Set the FMC_NAND_BANK3 registers to their reset values */
+  WRITE_REG(Device->PCR,  0x00000018U);
+  WRITE_REG(Device->SR,   0x00000040U);
+  WRITE_REG(Device->PMEM, 0xFCFCFCFCU);
+  WRITE_REG(Device->PATT, 0xFCFCFCFCU);
+#endif
+
   return HAL_OK;
 }
 
@@ -957,68 +798,85 @@
   * @}
   */
 
-/** @addtogroup FMC_LL_NAND_Private_Functions_Group2
-  *  @brief   management functions 
+/** @defgroup HAL_FMC_NAND_Group2 Peripheral Control functions
+  *  @brief   management functions
   *
-@verbatim   
+@verbatim
   ==============================================================================
                        ##### FMC_NAND Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the FMC NAND interface.
 
 @endverbatim
   * @{
-  */ 
+  */
+
+
 /**
   * @brief  Enables dynamically FMC_NAND ECC feature.
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
-  */    
+  */
 HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank)
 {
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
+  /* Check the parameters */
+  assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_NAND_BANK(Bank));
-    
+
   /* Enable ECC feature */
-  if(Bank == FMC_NAND_BANK2)
+#if defined(FMC_Bank2_3)
+  if (Bank == FMC_NAND_BANK2)
   {
-    Device->PCR2 |= FMC_PCR2_ECCEN;
+    SET_BIT(Device->PCR2, FMC_PCR2_ECCEN);
   }
   else
   {
-    Device->PCR3 |= FMC_PCR3_ECCEN;
-  } 
-  
-  return HAL_OK;  
+    SET_BIT(Device->PCR3, FMC_PCR2_ECCEN);
+  }
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
+
+  SET_BIT(Device->PCR, FMC_PCR_ECCEN);
+#endif
+
+  return HAL_OK;
 }
 
+
 /**
   * @brief  Disables dynamically FMC_NAND ECC feature.
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
-  */  
-HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)  
-{  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
+  */
+HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)
+{
+  /* Check the parameters */
+  assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_NAND_BANK(Bank));
-    
+
   /* Disable ECC feature */
-  if(Bank == FMC_NAND_BANK2)
+#if defined(FMC_Bank2_3)
+  if (Bank == FMC_NAND_BANK2)
   {
-    Device->PCR2 &= ~FMC_PCR2_ECCEN;
+    CLEAR_BIT(Device->PCR2, FMC_PCR2_ECCEN);
   }
   else
   {
-    Device->PCR3 &= ~FMC_PCR3_ECCEN;
-  } 
+    CLEAR_BIT(Device->PCR3, FMC_PCR2_ECCEN);
+  }
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
 
-  return HAL_OK;  
+  CLEAR_BIT(Device->PCR, FMC_PCR_ECCEN);
+#endif
+
+  return HAL_OK;
 }
 
 /**
@@ -1026,129 +884,133 @@
   * @param  Device Pointer to NAND device instance
   * @param  ECCval Pointer to ECC value
   * @param  Bank NAND bank number
-  * @param  Timeout Timeout wait value  
+  * @param  Timeout Timeout wait value
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
+HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
+                                  uint32_t Timeout)
 {
-  uint32_t tickstart = 0U;
+  uint32_t tickstart;
 
-  /* Check the parameters */ 
-  assert_param(IS_FMC_NAND_DEVICE(Device)); 
+  /* Check the parameters */
+  assert_param(IS_FMC_NAND_DEVICE(Device));
   assert_param(IS_FMC_NAND_BANK(Bank));
 
-  /* Get tick */ 
+  /* Get tick */
   tickstart = HAL_GetTick();
 
   /* Wait until FIFO is empty */
-  while(__FMC_NAND_GET_FLAG(Device, Bank, FMC_FLAG_FEMPT) == RESET)
+  while (__FMC_NAND_GET_FLAG(Device, Bank, FMC_FLAG_FEMPT) == RESET)
   {
     /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
       {
         return HAL_TIMEOUT;
       }
-    }  
+    }
   }
-     
-  if(Bank == FMC_NAND_BANK2)
-  {    
+
+#if defined(FMC_Bank2_3)
+  if (Bank == FMC_NAND_BANK2)
+  {
     /* Get the ECCR2 register value */
     *ECCval = (uint32_t)Device->ECCR2;
   }
   else
-  {    
+  {
     /* Get the ECCR3 register value */
     *ECCval = (uint32_t)Device->ECCR3;
   }
+#else
+  /* Prevent unused argument(s) compilation warning if no assert_param check */
+  UNUSED(Bank);
 
-  return HAL_OK;  
+  /* Get the ECCR register value */
+  *ECCval = (uint32_t)Device->ECCR;
+#endif
+
+  return HAL_OK;
 }
 
 /**
   * @}
   */
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
 
-#endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) */
-/**
-  * @}
-  */
+#if defined(FMC_Bank4)
 
-#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
 /** @addtogroup FMC_LL_PCCARD
-  * @brief    PCCARD Controller functions 
+  * @brief    PCCARD Controller functions
   *
-  @verbatim 
-  ==============================================================================  
+  @verbatim
+  ==============================================================================
                     ##### How to use PCCARD device driver #####
   ==============================================================================
   [..]
     This driver contains a set of APIs to interface with the FMC PCCARD bank in order
     to run the PCCARD/compact flash external devices.
-  
-    (+) FMC PCCARD bank reset using the function FMC_PCCARD_DeInit() 
+
+    (+) FMC PCCARD bank reset using the function FMC_PCCARD_DeInit()
     (+) FMC PCCARD bank control configuration using the function FMC_PCCARD_Init()
-    (+) FMC PCCARD bank common space timing configuration using the function 
+    (+) FMC PCCARD bank common space timing configuration using the function
         FMC_PCCARD_CommonSpace_Timing_Init()
-    (+) FMC PCCARD bank attribute space timing configuration using the function 
+    (+) FMC PCCARD bank attribute space timing configuration using the function
         FMC_PCCARD_AttributeSpace_Timing_Init()
-    (+) FMC PCCARD bank IO space timing configuration using the function 
+    (+) FMC PCCARD bank IO space timing configuration using the function
         FMC_PCCARD_IOSpace_Timing_Init()
 @endverbatim
   * @{
   */
-  
+
 /** @addtogroup FMC_LL_PCCARD_Private_Functions_Group1
-  *  @brief    Initialization and Configuration functions 
+  *  @brief    Initialization and Configuration functions
   *
-@verbatim    
+@verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FMC PCCARD interface
-    (+) De-initialize the FMC PCCARD interface 
+    (+) De-initialize the FMC PCCARD interface
     (+) Configure the FMC clock and associated GPIOs
-        
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Initializes the FMC_PCCARD device according to the specified
   *         control parameters in the FMC_PCCARD_HandleTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Init Pointer to PCCARD Initialization structure   
+  * @param  Init Pointer to PCCARD Initialization structure
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_PCCARD_Init(FMC_PCCARD_TypeDef *Device, FMC_PCCARD_InitTypeDef *Init)
 {
-  uint32_t tmpr = 0U;
-
-  /* Check the parameters */ 
+  /* Check the parameters */
   assert_param(IS_FMC_PCCARD_DEVICE(Device));
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
   assert_param(IS_FMC_WAIT_FEATURE(Init->Waitfeature));
   assert_param(IS_FMC_TCLR_TIME(Init->TCLRSetupTime));
-  assert_param(IS_FMC_TAR_TIME(Init->TARSetupTime));     
-  
-  /* Get PCCARD control register value */
-  tmpr = Device->PCR4;
-  
-  /* Clear TAR, TCLR, PWAITEN and PWID bits */
-  tmpr &= ((uint32_t)~(FMC_PCR4_TAR  | FMC_PCR4_TCLR | FMC_PCR4_PWAITEN | \
-                       FMC_PCR4_PWID | FMC_PCR4_PTYP));
-  
+  assert_param(IS_FMC_TAR_TIME(Init->TARSetupTime));
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
+
   /* Set FMC_PCCARD device control parameters */
-  tmpr |= (uint32_t)(Init->Waitfeature              |\
-                     FMC_NAND_PCC_MEM_BUS_WIDTH_16  |\
-                    (Init->TCLRSetupTime << 9U)     |\
-                    (Init->TARSetupTime << 13U));
-  
-  Device->PCR4 = tmpr;
-  
+  MODIFY_REG(Device->PCR4,
+             (FMC_PCR4_PTYP                                          |
+              FMC_PCR4_PWAITEN                                       |
+              FMC_PCR4_PWID                                          |
+              FMC_PCR4_TCLR                                          |
+              FMC_PCR4_TAR),
+             (FMC_PCR_MEMORY_TYPE_PCCARD                             |
+              Init->Waitfeature                                      |
+              FMC_NAND_PCC_MEM_BUS_WIDTH_16                          |
+              (Init->TCLRSetupTime << FMC_PCR4_TCLR_Pos)   |
+              (Init->TARSetupTime  << FMC_PCR4_TAR_Pos)));
+
   return HAL_OK;
 }
 
@@ -1156,68 +1018,56 @@
   * @brief  Initializes the FMC_PCCARD Common space Timing according to the specified
   *         parameters in the FMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure 
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_PCCARD_CommonSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FMC_PCCARD_CommonSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                              FMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0U;
-  
   /* Check the parameters */
   assert_param(IS_FMC_PCCARD_DEVICE(Device));
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
   assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
 
-  /* Get PCCARD common space timing register value */
-  tmpr = Device->PMEM4;
-  
-  /* Clear MEMSETx, MEMWAITx, MEMHOLDx and MEMHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PMEM4_MEMSET4  | FMC_PMEM4_MEMWAIT4 | FMC_PMEM4_MEMHOLD4 | \
-                       FMC_PMEM4_MEMHIZ4)); 
   /* Set PCCARD timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                  |\
-                    ((Timing->WaitSetupTime) << 8U)     |\
-                    ((Timing->HoldSetupTime) << 16U)    |\
-                    ((Timing->HiZSetupTime) << 24U)); 
+  MODIFY_REG(Device->PMEM4, PMEM4_CLEAR_MASK,
+             (Timing->SetupTime                                              |
+              ((Timing->WaitSetupTime) << FMC_PMEM4_MEMWAIT4_Pos)  |
+              ((Timing->HoldSetupTime) << FMC_PMEM4_MEMHOLD4_Pos)  |
+              ((Timing->HiZSetupTime)  << FMC_PMEM4_MEMHIZ4_Pos)));
 
-  Device->PMEM4 = tmpr;
-  
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
   * @brief  Initializes the FMC_PCCARD Attribute space Timing according to the specified
   *         parameters in the FMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure  
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_PCCARD_AttributeSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FMC_PCCARD_AttributeSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                                 FMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0U;
-  
-  /* Check the parameters */ 
-  assert_param(IS_FMC_PCCARD_DEVICE(Device)); 
+  /* Check the parameters */
+  assert_param(IS_FMC_PCCARD_DEVICE(Device));
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
   assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
 
-  /* Get PCCARD timing parameters */
-  tmpr = Device->PATT4;
-
-  /* Clear ATTSETx, ATTWAITx, ATTHOLDx and ATTHIZx bits */
-  tmpr &= ((uint32_t)~(FMC_PATT4_ATTSET4  | FMC_PATT4_ATTWAIT4 | FMC_PATT4_ATTHOLD4 | \
-                       FMC_PATT4_ATTHIZ4));
-  
   /* Set PCCARD timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                 |\
-                   ((Timing->WaitSetupTime) << 8U)     |\
-                   ((Timing->HoldSetupTime) << 16U)    |\
-                   ((Timing->HiZSetupTime) << 24U));
-  Device->PATT4 = tmpr;
+  MODIFY_REG(Device->PATT4, PATT4_CLEAR_MASK,
+             (Timing->SetupTime                                              |
+              ((Timing->WaitSetupTime) << FMC_PATT4_ATTWAIT4_Pos)  |
+              ((Timing->HoldSetupTime) << FMC_PATT4_ATTHOLD4_Pos)  |
+              ((Timing->HiZSetupTime)  << FMC_PATT4_ATTHIZ4_Pos)));
 
   return HAL_OK;
 }
@@ -1226,102 +1076,96 @@
   * @brief  Initializes the FMC_PCCARD IO space Timing according to the specified
   *         parameters in the FMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure  
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_PCCARD_IOSpace_Timing_Init(FMC_PCCARD_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FMC_PCCARD_IOSpace_Timing_Init(FMC_PCCARD_TypeDef *Device,
+                                                          FMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0;
-  
-  /* Check the parameters */  
+  /* Check the parameters */
   assert_param(IS_FMC_PCCARD_DEVICE(Device));
+#if defined(FMC_Bank3) || defined(FMC_Bank2_3)
   assert_param(IS_FMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FMC_Bank3) || defined(FMC_Bank2_3 */
 
-  /* Get FMC_PCCARD device timing parameters */
-  tmpr = Device->PIO4;
-
-  /* Clear IOSET4, IOWAIT4, IOHOLD4 and IOHIZ4 bits */
-  tmpr &= ((uint32_t)~(FMC_PIO4_IOSET4  | FMC_PIO4_IOWAIT4 | FMC_PIO4_IOHOLD4 | \
-                       FMC_PIO4_IOHIZ4));
-  
   /* Set FMC_PCCARD device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                   |\
-                     ((Timing->WaitSetupTime) << 8U)     |\
-                     ((Timing->HoldSetupTime) << 16U)    |\
-                     ((Timing->HiZSetupTime) << 24U));   
-  
-  Device->PIO4 = tmpr;
- 
+  MODIFY_REG(Device->PIO4, PIO4_CLEAR_MASK,
+             (Timing->SetupTime                                           |
+              (Timing->WaitSetupTime   << FMC_PIO4_IOWAIT4_Pos) |
+              (Timing->HoldSetupTime   << FMC_PIO4_IOHOLD4_Pos) |
+              (Timing->HiZSetupTime    << FMC_PIO4_IOHIZ4_Pos)));
+
   return HAL_OK;
 }
-                                           
+
 /**
-  * @brief  DeInitializes the FMC_PCCARD device 
+  * @brief  DeInitializes the FMC_PCCARD device
   * @param  Device Pointer to PCCARD device instance
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_PCCARD_DeInit(FMC_PCCARD_TypeDef *Device)
 {
-  /* Check the parameters */  
+  /* Check the parameters */
   assert_param(IS_FMC_PCCARD_DEVICE(Device));
-    
+
   /* Disable the FMC_PCCARD device */
   __FMC_PCCARD_DISABLE(Device);
-  
+
   /* De-initialize the FMC_PCCARD device */
-  Device->PCR4    = 0x00000018U; 
-  Device->SR4     = 0x00000000U;	
+  Device->PCR4    = 0x00000018U;
+  Device->SR4     = 0x00000040U;
   Device->PMEM4   = 0xFCFCFCFCU;
   Device->PATT4   = 0xFCFCFCFCU;
   Device->PIO4    = 0xFCFCFCFCU;
-  
+
   return HAL_OK;
 }
 
 /**
   * @}
   */
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#endif /* FMC_Bank4 */
 
+#if defined(FMC_Bank5_6)
 
-/** @addtogroup FMC_LL_SDRAM
-  * @brief    SDRAM Controller functions 
+/** @defgroup FMC_LL_SDRAM
+  * @brief    SDRAM Controller functions
   *
-  @verbatim 
+  @verbatim
   ==============================================================================
                      ##### How to use SDRAM device driver #####
   ==============================================================================
-  [..] 
+  [..]
     This driver contains a set of APIs to interface with the FMC SDRAM banks in order
     to run the SDRAM external devices.
-    
-    (+) FMC SDRAM bank reset using the function FMC_SDRAM_DeInit() 
+
+    (+) FMC SDRAM bank reset using the function FMC_SDRAM_DeInit()
     (+) FMC SDRAM bank control configuration using the function FMC_SDRAM_Init()
     (+) FMC SDRAM bank timing configuration using the function FMC_SDRAM_Timing_Init()
     (+) FMC SDRAM bank enable/disable write operation using the functions
-        FMC_SDRAM_WriteOperation_Enable()/FMC_SDRAM_WriteOperation_Disable()   
-    (+) FMC SDRAM bank send command using the function FMC_SDRAM_SendCommand()      
-       
+        FMC_SDRAM_WriteOperation_Enable()/FMC_SDRAM_WriteOperation_Disable()
+    (+) FMC SDRAM bank send command using the function FMC_SDRAM_SendCommand()
+
 @endverbatim
   * @{
   */
-         
+
 /** @addtogroup FMC_LL_SDRAM_Private_Functions_Group1
-  *  @brief    Initialization and Configuration functions 
+  *  @brief    Initialization and Configuration functions
   *
-@verbatim    
+@verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FMC SDRAM interface
-    (+) De-initialize the FMC SDRAM interface 
+    (+) De-initialize the FMC SDRAM interface
     (+) Configure the FMC clock and associated GPIOs
-        
+
 @endverbatim
   * @{
   */
@@ -1330,14 +1174,11 @@
   * @brief  Initializes the FMC_SDRAM device according to the specified
   *         control parameters in the FMC_SDRAM_InitTypeDef
   * @param  Device Pointer to SDRAM device instance
-  * @param  Init Pointer to SDRAM Initialization structure   
+  * @param  Init Pointer to SDRAM Initialization structure
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_SDRAM_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_InitTypeDef *Init)
 {
-  uint32_t tmpr1 = 0U;
-  uint32_t tmpr2 = 0U;
-    
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_SDRAM_BANK(Init->SDBank));
@@ -1349,76 +1190,58 @@
   assert_param(IS_FMC_WRITE_PROTECTION(Init->WriteProtection));
   assert_param(IS_FMC_SDCLOCK_PERIOD(Init->SDClockPeriod));
   assert_param(IS_FMC_READ_BURST(Init->ReadBurst));
-  assert_param(IS_FMC_READPIPE_DELAY(Init->ReadPipeDelay));   
+  assert_param(IS_FMC_READPIPE_DELAY(Init->ReadPipeDelay));
 
   /* Set SDRAM bank configuration parameters */
-  if (Init->SDBank != FMC_SDRAM_BANK2) 
-  {    
-    tmpr1 = Device->SDCR[FMC_SDRAM_BANK1];
-    
-    /* Clear NC, NR, MWID, NB, CAS, WP, SDCLK, RBURST, and RPIPE bits */
-    tmpr1 &= ((uint32_t)~(FMC_SDCR1_NC  | FMC_SDCR1_NR | FMC_SDCR1_MWID | \
-                         FMC_SDCR1_NB  | FMC_SDCR1_CAS | FMC_SDCR1_WP | \
-                         FMC_SDCR1_SDCLK | FMC_SDCR1_RBURST | FMC_SDCR1_RPIPE));
-  
-  
-    tmpr1 |= (uint32_t)(Init->ColumnBitsNumber   |\
-                                               Init->RowBitsNumber      |\
-                                               Init->MemoryDataWidth    |\
-                                               Init->InternalBankNumber |\
-                                               Init->CASLatency         |\
-                                               Init->WriteProtection    |\
-                                               Init->SDClockPeriod      |\
-                                               Init->ReadBurst          |\
-                                               Init->ReadPipeDelay
-                                               );
-    Device->SDCR[FMC_SDRAM_BANK1] = tmpr1;
-  }
-  else /* FMC_Bank2_SDRAM */                      
+  if (Init->SDBank == FMC_SDRAM_BANK1)
   {
-    tmpr1 = Device->SDCR[FMC_SDRAM_BANK1];
-    
-    /* Clear NC, NR, MWID, NB, CAS, WP, SDCLK, RBURST, and RPIPE bits */
-    tmpr1 &= ((uint32_t)~(FMC_SDCR1_SDCLK | FMC_SDCR1_RBURST | FMC_SDCR1_RPIPE));
-    
-    tmpr1 |= (uint32_t)(Init->SDClockPeriod      |\
-                        Init->ReadBurst          |\
-                        Init->ReadPipeDelay);  
-    
-    tmpr2 = Device->SDCR[FMC_SDRAM_BANK2];
-    
-    /* Clear NC, NR, MWID, NB, CAS, WP, SDCLK, RBURST, and RPIPE bits */
-    tmpr2 &= ((uint32_t)~(FMC_SDCR1_NC  | FMC_SDCR1_NR | FMC_SDCR1_MWID | \
-                          FMC_SDCR1_NB  | FMC_SDCR1_CAS | FMC_SDCR1_WP | \
-                          FMC_SDCR1_SDCLK | FMC_SDCR1_RBURST | FMC_SDCR1_RPIPE));
+    MODIFY_REG(Device->SDCR[FMC_SDRAM_BANK1],
+               SDCR_CLEAR_MASK,
+               (Init->ColumnBitsNumber   |
+                Init->RowBitsNumber      |
+                Init->MemoryDataWidth    |
+                Init->InternalBankNumber |
+                Init->CASLatency         |
+                Init->WriteProtection    |
+                Init->SDClockPeriod      |
+                Init->ReadBurst          |
+                Init->ReadPipeDelay));
+  }
+  else /* FMC_Bank2_SDRAM */
+  {
+    MODIFY_REG(Device->SDCR[FMC_SDRAM_BANK1],
+               FMC_SDCR1_SDCLK           |
+               FMC_SDCR1_RBURST          |
+               FMC_SDCR1_RPIPE,
+               (Init->SDClockPeriod      |
+                Init->ReadBurst          |
+                Init->ReadPipeDelay));
 
-    tmpr2 |= (uint32_t)(Init->ColumnBitsNumber   |\
-                       Init->RowBitsNumber      |\
-                       Init->MemoryDataWidth    |\
-                       Init->InternalBankNumber |\
-                       Init->CASLatency         |\
-                       Init->WriteProtection);
+    MODIFY_REG(Device->SDCR[FMC_SDRAM_BANK2],
+               SDCR_CLEAR_MASK,
+               (Init->ColumnBitsNumber   |
+                Init->RowBitsNumber      |
+                Init->MemoryDataWidth    |
+                Init->InternalBankNumber |
+                Init->CASLatency         |
+                Init->WriteProtection));
+  }
 
-    Device->SDCR[FMC_SDRAM_BANK1] = tmpr1;
-    Device->SDCR[FMC_SDRAM_BANK2] = tmpr2;
-  }  
-  
   return HAL_OK;
 }
 
+
 /**
   * @brief  Initializes the FMC_SDRAM device timing according to the specified
   *         parameters in the FMC_SDRAM_TimingTypeDef
   * @param  Device Pointer to SDRAM device instance
   * @param  Timing Pointer to SDRAM Timing structure
-  * @param  Bank SDRAM bank number   
+  * @param  Bank SDRAM bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device,
+                                        FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr1 = 0U;
-  uint32_t tmpr2 = 0U;
-    
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_LOADTOACTIVE_DELAY(Timing->LoadToActiveDelay));
@@ -1429,57 +1252,42 @@
   assert_param(IS_FMC_RP_DELAY(Timing->RPDelay));
   assert_param(IS_FMC_RCD_DELAY(Timing->RCDDelay));
   assert_param(IS_FMC_SDRAM_BANK(Bank));
-  
-  /* Set SDRAM device timing parameters */ 
-  if (Bank != FMC_SDRAM_BANK2) 
-  { 
-    tmpr1 = Device->SDTR[FMC_SDRAM_BANK1];
-    
-    /* Clear TMRD, TXSR, TRAS, TRC, TWR, TRP and TRCD bits */
-    tmpr1 &= ((uint32_t)~(FMC_SDTR1_TMRD  | FMC_SDTR1_TXSR | FMC_SDTR1_TRAS | \
-                          FMC_SDTR1_TRC  | FMC_SDTR1_TWR | FMC_SDTR1_TRP | \
-                          FMC_SDTR1_TRCD));
-    
-    tmpr1 |= (uint32_t)(((Timing->LoadToActiveDelay)-1U)           |\
-                       (((Timing->ExitSelfRefreshDelay)-1U) << 4U) |\
-                       (((Timing->SelfRefreshTime)-1U) << 8U)      |\
-                       (((Timing->RowCycleDelay)-1U) << 12U)       |\
-                       (((Timing->WriteRecoveryTime)-1U) <<16U)    |\
-                       (((Timing->RPDelay)-1U) << 20U)             |\
-                       (((Timing->RCDDelay)-1U) << 24U));
-    Device->SDTR[FMC_SDRAM_BANK1] = tmpr1;
-  }
-   else /* FMC_Bank2_SDRAM */
-  {
-    tmpr1 = Device->SDTR[FMC_SDRAM_BANK1];
-    
-    /* Clear TRC and TRP bits */
-    tmpr1 &= ((uint32_t)~(FMC_SDTR1_TRC | FMC_SDTR1_TRP));
-    
-    tmpr1 |= (uint32_t)((((Timing->RowCycleDelay)-1U) << 12U)       |\
-                        (((Timing->RPDelay)-1U) << 20U)); 
-    
-    tmpr2 = Device->SDTR[FMC_SDRAM_BANK2];
-    
-    /* Clear TMRD, TXSR, TRAS, TRC, TWR, TRP and TRCD bits */
-    tmpr2 &= ((uint32_t)~(FMC_SDTR1_TMRD  | FMC_SDTR1_TXSR | FMC_SDTR1_TRAS | \
-                          FMC_SDTR1_TRC  | FMC_SDTR1_TWR | FMC_SDTR1_TRP | \
-                          FMC_SDTR1_TRCD));
-    
-    tmpr2 |= (uint32_t)((((Timing->LoadToActiveDelay)-1U)           |\
-                       (((Timing->ExitSelfRefreshDelay)-1U) << 4U)  |\
-                       (((Timing->SelfRefreshTime)-1U) << 8U)       |\
-                       (((Timing->WriteRecoveryTime)-1U) <<16U)     |\
-                       (((Timing->RCDDelay)-1U) << 24U)));   
 
-    Device->SDTR[FMC_SDRAM_BANK1] = tmpr1;
-    Device->SDTR[FMC_SDRAM_BANK2] = tmpr2;
+  /* Set SDRAM device timing parameters */
+  if (Bank == FMC_SDRAM_BANK1)
+  {
+    MODIFY_REG(Device->SDTR[FMC_SDRAM_BANK1],
+               SDTR_CLEAR_MASK,
+               (((Timing->LoadToActiveDelay) - 1U)                                      |
+                (((Timing->ExitSelfRefreshDelay) - 1U) << FMC_SDTR1_TXSR_Pos) |
+                (((Timing->SelfRefreshTime) - 1U)      << FMC_SDTR1_TRAS_Pos) |
+                (((Timing->RowCycleDelay) - 1U)        << FMC_SDTR1_TRC_Pos)  |
+                (((Timing->WriteRecoveryTime) - 1U)    << FMC_SDTR1_TWR_Pos)  |
+                (((Timing->RPDelay) - 1U)              << FMC_SDTR1_TRP_Pos)  |
+                (((Timing->RCDDelay) - 1U)             << FMC_SDTR1_TRCD_Pos)));
   }
+  else /* FMC_Bank2_SDRAM */
+  {
+    MODIFY_REG(Device->SDTR[FMC_SDRAM_BANK1],
+               FMC_SDTR1_TRC |
+               FMC_SDTR1_TRP,
+               (((Timing->RowCycleDelay) - 1U)         << FMC_SDTR1_TRC_Pos)  |
+               (((Timing->RPDelay) - 1U)               << FMC_SDTR1_TRP_Pos));
+
+    MODIFY_REG(Device->SDTR[FMC_SDRAM_BANK2],
+               SDTR_CLEAR_MASK,
+               (((Timing->LoadToActiveDelay) - 1U)                                      |
+                (((Timing->ExitSelfRefreshDelay) - 1U) << FMC_SDTR1_TXSR_Pos) |
+                (((Timing->SelfRefreshTime) - 1U)      << FMC_SDTR1_TRAS_Pos) |
+                (((Timing->WriteRecoveryTime) - 1U)    << FMC_SDTR1_TWR_Pos)  |
+                (((Timing->RCDDelay) - 1U)             << FMC_SDTR1_TRCD_Pos)));
+  }
+
   return HAL_OK;
 }
 
 /**
-  * @brief  DeInitializes the FMC_SDRAM peripheral 
+  * @brief  DeInitializes the FMC_SDRAM peripheral
   * @param  Device Pointer to SDRAM device instance
   * @retval HAL status
   */
@@ -1488,10 +1296,10 @@
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_SDRAM_BANK(Bank));
-  
+
   /* De-initialize the SDRAM device */
   Device->SDCR[Bank] = 0x000002D0U;
-  Device->SDTR[Bank] = 0x0FFFFFFFU;    
+  Device->SDTR[Bank] = 0x0FFFFFFFU;
   Device->SDCMR      = 0x00000000U;
   Device->SDRTR      = 0x00000000U;
   Device->SDSR       = 0x00000000U;
@@ -1502,14 +1310,14 @@
 /**
   * @}
   */
-  
+
 /** @addtogroup FMC_LL_SDRAMPrivate_Functions_Group2
-  *  @brief   management functions 
+  *  @brief   management functions
   *
-@verbatim   
+@verbatim
   ==============================================================================
                       ##### FMC_SDRAM Control functions #####
-  ==============================================================================  
+  ==============================================================================
   [..]
     This subsection provides a set of functions allowing to control dynamically
     the FMC SDRAM interface.
@@ -1517,22 +1325,23 @@
 @endverbatim
   * @{
   */
+
 /**
   * @brief  Enables dynamically FMC_SDRAM write protection.
   * @param  Device Pointer to SDRAM device instance
-  * @param  Bank SDRAM bank number 
+  * @param  Bank SDRAM bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Enable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
-{ 
+{
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_SDRAM_BANK(Bank));
-  
+
   /* Enable write protection */
-  Device->SDCR[Bank] |= FMC_SDRAM_WRITE_PROTECTION_ENABLE;
-  
-  return HAL_OK;  
+  SET_BIT(Device->SDCR[Bank], FMC_SDRAM_WRITE_PROTECTION_ENABLE);
+
+  return HAL_OK;
 }
 
 /**
@@ -1545,64 +1354,58 @@
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_SDRAM_BANK(Bank));
-  
+
   /* Disable write protection */
-  Device->SDCR[Bank] &= ~FMC_SDRAM_WRITE_PROTECTION_ENABLE;
-  
+  CLEAR_BIT(Device->SDCR[Bank], FMC_SDRAM_WRITE_PROTECTION_ENABLE);
+
   return HAL_OK;
 }
-  
+
 /**
   * @brief  Send Command to the FMC SDRAM bank
   * @param  Device Pointer to SDRAM device instance
-  * @param  Command Pointer to SDRAM command structure   
+  * @param  Command Pointer to SDRAM command structure
   * @param  Timing Pointer to SDRAM Timing structure
   * @param  Timeout Timeout wait value
   * @retval HAL state
-  */  
-HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
+  */
+HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device,
+                                        FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
 {
-  __IO uint32_t tmpr = 0U;
   uint32_t tickstart = 0U;
-  
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_COMMAND_MODE(Command->CommandMode));
   assert_param(IS_FMC_COMMAND_TARGET(Command->CommandTarget));
   assert_param(IS_FMC_AUTOREFRESH_NUMBER(Command->AutoRefreshNumber));
-  assert_param(IS_FMC_MODE_REGISTER(Command->ModeRegisterDefinition));  
+  assert_param(IS_FMC_MODE_REGISTER(Command->ModeRegisterDefinition));
 
   /* Set command register */
-  tmpr = (uint32_t)((Command->CommandMode)                  |\
-                    (Command->CommandTarget)                |\
-                    (((Command->AutoRefreshNumber)-1U) << 5U) |\
-                    ((Command->ModeRegisterDefinition) << 9U)
-                    );
-    
-  Device->SDCMR = tmpr;
-
-  /* Get tick */ 
+  MODIFY_REG(Device->SDCMR, (FMC_SDCMR_MODE | FMC_SDCMR_CTB2 | FMC_SDCMR_CTB1 | FMC_SDCMR_NRFS | FMC_SDCMR_MRD),
+             ((Command->CommandMode) | (Command->CommandTarget) |
+              (((Command->AutoRefreshNumber) - 1U) << FMC_SDCMR_NRFS_Pos) |
+              ((Command->ModeRegisterDefinition) << FMC_SDCMR_MRD_Pos)));
+  /* Get tick */
   tickstart = HAL_GetTick();
 
-  /* Wait until command is send */
-  while(HAL_IS_BIT_SET(Device->SDSR, FMC_SDSR_BUSY))
+  /* wait until command is send */
+  while (HAL_IS_BIT_SET(Device->SDSR, FMC_SDSR_BUSY))
   {
     /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
       {
         return HAL_TIMEOUT;
       }
     }
   }
-
   return HAL_OK;
 }
 
 /**
   * @brief  Program the SDRAM Memory Refresh rate.
-  * @param  Device Pointer to SDRAM device instance  
+  * @param  Device Pointer to SDRAM device instance
   * @param  RefreshRate The SDRAM refresh rate value.
   * @retval HAL state
   */
@@ -1611,58 +1414,59 @@
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_REFRESH_RATE(RefreshRate));
-  
+
   /* Set the refresh rate in command register */
-  Device->SDRTR |= (RefreshRate<<1U);
-  
-  return HAL_OK;   
+  MODIFY_REG(Device->SDRTR, FMC_SDRTR_COUNT, (RefreshRate << FMC_SDRTR_COUNT_Pos));
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Set the Number of consecutive SDRAM Memory auto Refresh commands.
-  * @param  Device Pointer to SDRAM device instance  
-  * @param  AutoRefreshNumber Specifies the auto Refresh number.       
+  * @param  Device Pointer to SDRAM device instance
+  * @param  AutoRefreshNumber Specifies the auto Refresh number.
   * @retval None
   */
-HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber)
+HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device,
+                                                 uint32_t AutoRefreshNumber)
 {
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_AUTOREFRESH_NUMBER(AutoRefreshNumber));
-  
-  /* Set the Auto-refresh number in command register */
-  Device->SDCMR |= (AutoRefreshNumber << 5U); 
 
-  return HAL_OK;  
+  /* Set the Auto-refresh number in command register */
+  MODIFY_REG(Device->SDCMR, FMC_SDCMR_NRFS, ((AutoRefreshNumber - 1U) << FMC_SDCMR_NRFS_Pos));
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Returns the indicated FMC SDRAM bank mode status.
-  * @param  Device Pointer to SDRAM device instance  
-  * @param  Bank Defines the FMC SDRAM bank. This parameter can be 
-  *                     FMC_Bank1_SDRAM or FMC_Bank2_SDRAM. 
+  * @param  Device Pointer to SDRAM device instance
+  * @param  Bank Defines the FMC SDRAM bank. This parameter can be
+  *                     FMC_Bank1_SDRAM or FMC_Bank2_SDRAM.
   * @retval The FMC SDRAM bank mode status, could be on of the following values:
-  *         FMC_SDRAM_NORMAL_MODE, FMC_SDRAM_SELF_REFRESH_MODE or 
-  *         FMC_SDRAM_POWER_DOWN_MODE.           
+  *         FMC_SDRAM_NORMAL_MODE, FMC_SDRAM_SELF_REFRESH_MODE or
+  *         FMC_SDRAM_POWER_DOWN_MODE.
   */
 uint32_t FMC_SDRAM_GetModeStatus(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
 {
-  uint32_t tmpreg = 0U;
-  
+  uint32_t tmpreg;
+
   /* Check the parameters */
   assert_param(IS_FMC_SDRAM_DEVICE(Device));
   assert_param(IS_FMC_SDRAM_BANK(Bank));
 
   /* Get the corresponding bank mode */
-  if(Bank == FMC_SDRAM_BANK1)
+  if (Bank == FMC_SDRAM_BANK1)
   {
-    tmpreg = (uint32_t)(Device->SDSR & FMC_SDSR_MODES1); 
+    tmpreg = (uint32_t)(Device->SDSR & FMC_SDSR_MODES1);
   }
   else
   {
     tmpreg = ((uint32_t)(Device->SDSR & FMC_SDSR_MODES2) >> 2U);
   }
-  
+
   /* Return the mode status */
   return tmpreg;
 }
@@ -1675,11 +1479,7 @@
   * @}
   */
 
-/**
-  * @}
-  */
-#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
-#endif /* HAL_SRAM_MODULE_ENABLED || HAL_NOR_MODULE_ENABLED || HAL_NAND_MODULE_ENABLED || HAL_PCCARD_MODULE_ENABLED || HAL_SDRAM_MODULE_ENABLED */
+#endif /* FMC_Bank5_6 */
 
 /**
   * @}
@@ -1689,4 +1489,10 @@
   * @}
   */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /* HAL_NOR_MODULE_ENABLED */
+/**
+  * @}
+  */
+/**
+  * @}
+  */
diff --git a/Src/stm32f4xx_ll_fmpi2c.c b/Src/stm32f4xx_ll_fmpi2c.c
index 8fcb2a1..04966ea 100644
--- a/Src/stm32f4xx_ll_fmpi2c.c
+++ b/Src/stm32f4xx_ll_fmpi2c.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -216,5 +215,3 @@
 
 #endif /* FMPI2C_CR1_PE */
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_fsmc.c b/Src/stm32f4xx_ll_fsmc.c
index 9868137..8172871 100644
--- a/Src/stm32f4xx_ll_fsmc.c
+++ b/Src/stm32f4xx_ll_fsmc.c
@@ -3,55 +3,55 @@
   * @file    stm32f4xx_ll_fsmc.c
   * @author  MCD Application Team
   * @brief   FSMC Low Layer HAL module driver.
-  *    
-  *          This file provides firmware functions to manage the following 
-  *          functionalities of the Flexible Static Memory Controller (FSMC) peripheral memories:
+  *
+  *          This file provides firmware functions to manage the following
+  *          functionalities of the Flexible Memory Controller (FSMC) peripheral memories:
   *           + Initialization/de-initialization functions
-  *           + Peripheral Control functions 
+  *           + Peripheral Control functions
   *           + Peripheral State functions
-  *         
-  @verbatim
-  ==============================================================================
-                        ##### FSMC peripheral features #####
-  ==============================================================================                  
-    [..] The Flexible static memory controller (FSMC) includes two memory controllers:
-         (+) The NOR/PSRAM memory controller
-         (+) The NAND/PC Card memory controller
-       
-    [..] The FSMC functional block makes the interface with synchronous and asynchronous static
-         memories, SDRAM memories, and 16-bit PC memory cards. Its main purposes are:
-         (+) to translate AHB transactions into the appropriate external device protocol.
-         (+) to meet the access time requirements of the external memory devices.
-   
-    [..] All external memories share the addresses, data and control signals with the controller.
-         Each external device is accessed by means of a unique Chip Select. The FSMC performs
-         only one access at a time to an external device.
-         The main features of the FSMC controller are the following:
-          (+) Interface with static-memory mapped devices including:
-             (++) Static random access memory (SRAM).
-             (++) Read-only memory (ROM).
-             (++) NOR Flash memory/OneNAND Flash memory.
-             (++) PSRAM (4 memory banks).
-             (++) 16-bit PC Card compatible devices.
-             (++) Two banks of NAND Flash memory with ECC hardware to check up to 8 Kbytes of
-                  data.
-          (+) Independent Chip Select control for each memory bank.
-          (+) Independent configuration for each memory bank.          
-        
-  @endverbatim
+  *
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
-  */ 
+  @verbatim
+  ==============================================================================
+                        ##### FSMC peripheral features #####
+  ==============================================================================
+  [..] The Flexible memory controller (FSMC) includes following memory controllers:
+       (+) The NOR/PSRAM memory controller
+       (+) The NAND/PC Card memory controller
+
+  [..] The FSMC functional block makes the interface with synchronous and asynchronous static
+       memories and 16-bit PC memory cards. Its main purposes are:
+       (+) to translate AHB transactions into the appropriate external device protocol
+       (+) to meet the access time requirements of the external memory devices
+
+  [..] All external memories share the addresses, data and control signals with the controller.
+       Each external device is accessed by means of a unique Chip Select. The FSMC performs
+       only one access at a time to an external device.
+       The main features of the FSMC controller are the following:
+        (+) Interface with static-memory mapped devices including:
+           (++) Static random access memory (SRAM)
+           (++) Read-only memory (ROM)
+           (++) NOR Flash memory/OneNAND Flash memory
+           (++) PSRAM (4 memory banks)
+           (++) 16-bit PC Card compatible devices
+           (++) Two banks of NAND Flash memory with ECC hardware to check up to 8 Kbytes of
+                data
+        (+) Independent Chip Select control for each memory bank
+        (+) Independent configuration for each memory bank
+
+  @endverbatim
+  ******************************************************************************
+  */
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32f4xx_hal.h"
@@ -59,41 +59,131 @@
 /** @addtogroup STM32F4xx_HAL_Driver
   * @{
   */
+#if defined(HAL_NOR_MODULE_ENABLED) || defined(HAL_SRAM_MODULE_ENABLED) || defined(HAL_NAND_MODULE_ENABLED) || defined(HAL_PCCARD_MODULE_ENABLED)
 
 /** @defgroup FSMC_LL  FSMC Low Layer
   * @brief FSMC driver modules
   * @{
   */
 
-#if defined (HAL_SRAM_MODULE_ENABLED) || defined(HAL_NOR_MODULE_ENABLED) || defined(HAL_NAND_MODULE_ENABLED) || defined(HAL_PCCARD_MODULE_ENABLED)
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) ||\
-    defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
 /* Private typedef -----------------------------------------------------------*/
 /* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-/** @addtogroup FSMC_LL_Private_Functions
+
+/** @defgroup FSMC_LL_Private_Constants FSMC Low Layer Private Constants
   * @{
   */
 
-/** @addtogroup FSMC_LL_NORSRAM
-  * @brief    NORSRAM Controller functions 
+/* ----------------------- FSMC registers bit mask --------------------------- */
+
+#if defined(FSMC_Bank1)
+/* --- BCR Register ---*/
+/* BCR register clear mask */
+
+/* --- BTR Register ---*/
+/* BTR register clear mask */
+#define BTR_CLEAR_MASK    ((uint32_t)(FSMC_BTR1_ADDSET | FSMC_BTR1_ADDHLD  |\
+                                      FSMC_BTR1_DATAST | FSMC_BTR1_BUSTURN |\
+                                      FSMC_BTR1_CLKDIV | FSMC_BTR1_DATLAT  |\
+                                      FSMC_BTR1_ACCMOD))
+
+/* --- BWTR Register ---*/
+/* BWTR register clear mask */
+#define BWTR_CLEAR_MASK   ((uint32_t)(FSMC_BWTR1_ADDSET | FSMC_BWTR1_ADDHLD  |\
+                                      FSMC_BWTR1_DATAST | FSMC_BWTR1_BUSTURN |\
+                                      FSMC_BWTR1_ACCMOD))
+#endif /* FSMC_Bank1 */
+#if defined(FSMC_Bank2_3)
+
+#if defined (FSMC_PCR_PWAITEN)
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR_CLEAR_MASK    ((uint32_t)(FSMC_PCR_PWAITEN | FSMC_PCR_PBKEN  | \
+                                      FSMC_PCR_PTYP    | FSMC_PCR_PWID   | \
+                                      FSMC_PCR_ECCEN   | FSMC_PCR_TCLR   | \
+                                      FSMC_PCR_TAR     | FSMC_PCR_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM_CLEAR_MASK   ((uint32_t)(FSMC_PMEM_MEMSET2  | FSMC_PMEM_MEMWAIT2 |\
+                                      FSMC_PMEM_MEMHOLD2 | FSMC_PMEM_MEMHIZ2))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT_CLEAR_MASK   ((uint32_t)(FSMC_PATT_ATTSET2  | FSMC_PATT_ATTWAIT2 |\
+                                      FSMC_PATT_ATTHOLD2 | FSMC_PATT_ATTHIZ2))
+#else
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR_CLEAR_MASK    ((uint32_t)(FSMC_PCR2_PWAITEN | FSMC_PCR2_PBKEN  | \
+                                      FSMC_PCR2_PTYP    | FSMC_PCR2_PWID   | \
+                                      FSMC_PCR2_ECCEN   | FSMC_PCR2_TCLR   | \
+                                      FSMC_PCR2_TAR     | FSMC_PCR2_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM_CLEAR_MASK   ((uint32_t)(FSMC_PMEM2_MEMSET2  | FSMC_PMEM2_MEMWAIT2 |\
+                                      FSMC_PMEM2_MEMHOLD2 | FSMC_PMEM2_MEMHIZ2))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT_CLEAR_MASK   ((uint32_t)(FSMC_PATT2_ATTSET2  | FSMC_PATT2_ATTWAIT2 |\
+                                      FSMC_PATT2_ATTHOLD2 | FSMC_PATT2_ATTHIZ2))
+
+#endif /* FSMC_PCR_PWAITEN */
+#endif /* FSMC_Bank2_3 */
+#if defined(FSMC_Bank4)
+/* --- PCR Register ---*/
+/* PCR register clear mask */
+#define PCR4_CLEAR_MASK   ((uint32_t)(FSMC_PCR4_PWAITEN | FSMC_PCR4_PBKEN  | \
+                                      FSMC_PCR4_PTYP    | FSMC_PCR4_PWID   | \
+                                      FSMC_PCR4_ECCEN   | FSMC_PCR4_TCLR   | \
+                                      FSMC_PCR4_TAR     | FSMC_PCR4_ECCPS))
+/* --- PMEM Register ---*/
+/* PMEM register clear mask */
+#define PMEM4_CLEAR_MASK  ((uint32_t)(FSMC_PMEM4_MEMSET4  | FSMC_PMEM4_MEMWAIT4 |\
+                                      FSMC_PMEM4_MEMHOLD4 | FSMC_PMEM4_MEMHIZ4))
+
+/* --- PATT Register ---*/
+/* PATT register clear mask */
+#define PATT4_CLEAR_MASK  ((uint32_t)(FSMC_PATT4_ATTSET4  | FSMC_PATT4_ATTWAIT4 |\
+                                      FSMC_PATT4_ATTHOLD4 | FSMC_PATT4_ATTHIZ4))
+
+/* --- PIO4 Register ---*/
+/* PIO4 register clear mask */
+#define PIO4_CLEAR_MASK   ((uint32_t)(FSMC_PIO4_IOSET4  | FSMC_PIO4_IOWAIT4 | \
+                                      FSMC_PIO4_IOHOLD4 | FSMC_PIO4_IOHIZ4))
+
+#endif /* FSMC_Bank4 */
+
+/**
+  * @}
+  */
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup FSMC_LL_Exported_Functions FSMC Low Layer Exported Functions
+  * @{
+  */
+
+#if defined(FSMC_Bank1)
+
+/** @defgroup FSMC_LL_Exported_Functions_NORSRAM FSMC Low Layer NOR SRAM Exported Functions
+  * @brief  NORSRAM Controller functions
   *
-  @verbatim 
+  @verbatim
   ==============================================================================
                    ##### How to use NORSRAM device driver #####
   ==============================================================================
- 
-  [..] 
+
+  [..]
     This driver contains a set of APIs to interface with the FSMC NORSRAM banks in order
     to run the NORSRAM external devices.
-      
-    (+) FSMC NORSRAM bank reset using the function FSMC_NORSRAM_DeInit() 
+
+    (+) FSMC NORSRAM bank reset using the function FSMC_NORSRAM_DeInit()
     (+) FSMC NORSRAM bank control configuration using the function FSMC_NORSRAM_Init()
     (+) FSMC NORSRAM bank timing configuration using the function FSMC_NORSRAM_Timing_Init()
-    (+) FSMC NORSRAM bank extended timing configuration using the function 
+    (+) FSMC NORSRAM bank extended timing configuration using the function
         FSMC_NORSRAM_Extended_Timing_Init()
     (+) FSMC NORSRAM bank enable/disable write operation using the functions
         FSMC_NORSRAM_WriteOperation_Enable()/FSMC_NORSRAM_WriteOperation_Disable()
@@ -101,35 +191,38 @@
 @endverbatim
   * @{
   */
-       
-/** @addtogroup FSMC_LL_NORSRAM_Private_Functions_Group1
-  * @brief    Initialization and Configuration functions 
+
+/** @defgroup FSMC_LL_NORSRAM_Exported_Functions_Group1 Initialization and de-initialization functions
+  * @brief    Initialization and Configuration functions
   *
-  @verbatim    
+  @verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FSMC NORSRAM interface
-    (+) De-initialize the FSMC NORSRAM interface 
-    (+) Configure the FSMC clock and associated GPIOs    
- 
+    (+) De-initialize the FSMC NORSRAM interface
+    (+) Configure the FSMC clock and associated GPIOs
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Initialize the FSMC_NORSRAM device according to the specified
   *         control parameters in the FSMC_NORSRAM_InitTypeDef
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Init Pointer to NORSRAM Initialization structure   
+  * @param  Init Pointer to NORSRAM Initialization structure
   * @retval HAL status
   */
-HAL_StatusTypeDef  FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_InitTypeDef* Init)
-{ 
-  uint32_t tmpr = 0U;
-    
+HAL_StatusTypeDef  FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device,
+                                    FSMC_NORSRAM_InitTypeDef *Init)
+{
+  uint32_t flashaccess;
+  uint32_t btcr_reg;
+  uint32_t mask;
+
   /* Check the parameters */
   assert_param(IS_FSMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FSMC_NORSRAM_BANK(Init->NSBank));
@@ -138,104 +231,115 @@
   assert_param(IS_FSMC_NORSRAM_MEMORY_WIDTH(Init->MemoryDataWidth));
   assert_param(IS_FSMC_BURSTMODE(Init->BurstAccessMode));
   assert_param(IS_FSMC_WAIT_POLARITY(Init->WaitSignalPolarity));
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
+#if defined(FSMC_BCR1_WRAPMOD)
   assert_param(IS_FSMC_WRAP_MODE(Init->WrapMode));
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#endif /* FSMC_BCR1_WRAPMOD */
   assert_param(IS_FSMC_WAIT_SIGNAL_ACTIVE(Init->WaitSignalActive));
   assert_param(IS_FSMC_WRITE_OPERATION(Init->WriteOperation));
   assert_param(IS_FSMC_WAITE_SIGNAL(Init->WaitSignal));
   assert_param(IS_FSMC_EXTENDED_MODE(Init->ExtendedMode));
   assert_param(IS_FSMC_ASYNWAIT(Init->AsynchronousWait));
   assert_param(IS_FSMC_WRITE_BURST(Init->WriteBurst));
-  assert_param(IS_FSMC_PAGESIZE(Init->PageSize));
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
-  assert_param(IS_FSMC_WRITE_FIFO(Init->WriteFifo));
+#if defined(FSMC_BCR1_CCLKEN)
   assert_param(IS_FSMC_CONTINOUS_CLOCK(Init->ContinuousClock));
-#endif /* STM32F412Zx || STM32F412Vx || STM32F413xx || STM32F423xx */
-  
-  /* Get the BTCR register value */
-  tmpr = Device->BTCR[Init->NSBank];
+#endif
+#if defined(FSMC_BCR1_WFDIS)
+  assert_param(IS_FSMC_WRITE_FIFO(Init->WriteFifo));
+#endif /* FSMC_BCR1_WFDIS */
+  assert_param(IS_FSMC_PAGESIZE(Init->PageSize));
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-  /* Clear MBKEN, MUXEN, MTYP, MWID, FACCEN, BURSTEN, WAITPOL, WRAPMOD, WAITCFG, WREN,
-           WAITEN, EXTMOD, ASYNCWAIT, CPSIZE and CBURSTRW bits */
-  tmpr &= ((uint32_t)~(FSMC_BCR1_MBKEN     | FSMC_BCR1_MUXEN    | FSMC_BCR1_MTYP     | \
-                       FSMC_BCR1_MWID      | FSMC_BCR1_FACCEN   | FSMC_BCR1_BURSTEN  | \
-                       FSMC_BCR1_WAITPOL   | FSMC_BCR1_WRAPMOD  | FSMC_BCR1_WAITCFG  | \
-                       FSMC_BCR1_WREN      | FSMC_BCR1_WAITEN   | FSMC_BCR1_EXTMOD   | \
-                       FSMC_BCR1_ASYNCWAIT | FSMC_BCR1_CPSIZE   | FSMC_BCR1_CBURSTRW));
+  /* Disable NORSRAM Device */
+  __FSMC_NORSRAM_DISABLE(Device, Init->NSBank);
+
   /* Set NORSRAM device control parameters */
-  tmpr |= (uint32_t)(Init->DataAddressMux       |\
-                     Init->MemoryType           |\
-                     Init->MemoryDataWidth      |\
-                     Init->BurstAccessMode      |\
-                     Init->WaitSignalPolarity   |\
-                     Init->WrapMode             |\
-                     Init->WaitSignalActive     |\
-                     Init->WriteOperation       |\
-                     Init->WaitSignal           |\
-                     Init->ExtendedMode         |\
-                     Init->AsynchronousWait     |\
-                     Init->PageSize             |\
-                     Init->WriteBurst
-                     );
-#else /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
-  /* Clear MBKEN, MUXEN, MTYP, MWID, FACCEN, BURSTEN, WAITPOL, WAITCFG, WREN,
-           WAITEN, EXTMOD, ASYNCWAIT,CPSIZE,  CBURSTRW, CCLKEN and WFDIS bits */
-  tmpr &= ((uint32_t)~(FSMC_BCR1_MBKEN     | FSMC_BCR1_MUXEN    | FSMC_BCR1_MTYP      | \
-                       FSMC_BCR1_MWID      | FSMC_BCR1_FACCEN   | FSMC_BCR1_BURSTEN   | \
-                       FSMC_BCR1_WAITPOL   | FSMC_BCR1_WAITCFG  | FSMC_BCR1_WREN      | \
-                       FSMC_BCR1_WAITEN    | FSMC_BCR1_EXTMOD   | FSMC_BCR1_ASYNCWAIT | \
-                       FSMC_BCR1_CPSIZE    | FSMC_BCR1_CBURSTRW | FSMC_BCR1_CCLKEN    | \
-                       FSMC_BCR1_WFDIS));
-  /* Set NORSRAM device control parameters */
-  tmpr |= (uint32_t)(Init->DataAddressMux       |\
-                     Init->MemoryType           |\
-                     Init->MemoryDataWidth      |\
-                     Init->BurstAccessMode      |\
-                     Init->WaitSignalPolarity   |\
-                     Init->WaitSignalActive     |\
-                     Init->WriteOperation       |\
-                     Init->WaitSignal           |\
-                     Init->ExtendedMode         |\
-                     Init->AsynchronousWait     |\
-                     Init->WriteBurst           |\
-                     Init->ContinuousClock      |\
-                     Init->PageSize             |\
-                     Init->WriteFifo);
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */ 
-            
-  if(Init->MemoryType == FSMC_MEMORY_TYPE_NOR)
+  if (Init->MemoryType == FSMC_MEMORY_TYPE_NOR)
   {
-    tmpr |= (uint32_t)FSMC_NORSRAM_FLASH_ACCESS_ENABLE;
+    flashaccess = FSMC_NORSRAM_FLASH_ACCESS_ENABLE;
+  }
+  else
+  {
+    flashaccess = FSMC_NORSRAM_FLASH_ACCESS_DISABLE;
   }
 
-  Device->BTCR[Init->NSBank] = tmpr;
+  btcr_reg = (flashaccess                   | \
+              Init->DataAddressMux          | \
+              Init->MemoryType              | \
+              Init->MemoryDataWidth         | \
+              Init->BurstAccessMode         | \
+              Init->WaitSignalPolarity      | \
+              Init->WaitSignalActive        | \
+              Init->WriteOperation          | \
+              Init->WaitSignal              | \
+              Init->ExtendedMode            | \
+              Init->AsynchronousWait        | \
+              Init->WriteBurst);
 
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
+#if defined(FSMC_BCR1_WRAPMOD)
+  btcr_reg |= Init->WrapMode;
+#endif /* FSMC_BCR1_WRAPMOD */
+#if defined(FSMC_BCR1_CCLKEN)
+  btcr_reg |= Init->ContinuousClock;
+#endif /* FSMC_BCR1_CCLKEN */
+#if defined(FSMC_BCR1_WFDIS)
+  btcr_reg |= Init->WriteFifo;
+#endif /* FSMC_BCR1_WFDIS */
+  btcr_reg |= Init->PageSize;
+
+  mask = (FSMC_BCR1_MBKEN                |
+          FSMC_BCR1_MUXEN                |
+          FSMC_BCR1_MTYP                 |
+          FSMC_BCR1_MWID                 |
+          FSMC_BCR1_FACCEN               |
+          FSMC_BCR1_BURSTEN              |
+          FSMC_BCR1_WAITPOL              |
+          FSMC_BCR1_WAITCFG              |
+          FSMC_BCR1_WREN                 |
+          FSMC_BCR1_WAITEN               |
+          FSMC_BCR1_EXTMOD               |
+          FSMC_BCR1_ASYNCWAIT            |
+          FSMC_BCR1_CBURSTRW);
+
+#if defined(FSMC_BCR1_WRAPMOD)
+  mask |= FSMC_BCR1_WRAPMOD;
+#endif /* FSMC_BCR1_WRAPMOD */
+#if defined(FSMC_BCR1_CCLKEN)
+  mask |= FSMC_BCR1_CCLKEN;
+#endif
+#if defined(FSMC_BCR1_WFDIS)
+  mask |= FSMC_BCR1_WFDIS;
+#endif /* FSMC_BCR1_WFDIS */
+  mask |= FSMC_BCR1_CPSIZE;
+
+  MODIFY_REG(Device->BTCR[Init->NSBank], mask, btcr_reg);
+
+#if defined(FSMC_BCR1_CCLKEN)
   /* Configure synchronous mode when Continuous clock is enabled for bank2..4 */
-  if((Init->ContinuousClock == FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC) && (Init->NSBank != FSMC_NORSRAM_BANK1))
+  if ((Init->ContinuousClock == FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC) && (Init->NSBank != FSMC_NORSRAM_BANK1))
   {
-    Device->BTCR[FSMC_NORSRAM_BANK1] |= (uint32_t)(Init->ContinuousClock);
+    MODIFY_REG(Device->BTCR[FSMC_NORSRAM_BANK1], FSMC_BCR1_CCLKEN, Init->ContinuousClock);
   }
+#endif
+#if defined(FSMC_BCR1_WFDIS)
 
-  if(Init->NSBank != FSMC_NORSRAM_BANK1)
+  if (Init->NSBank != FSMC_NORSRAM_BANK1)
   {
-    Device->BTCR[FSMC_NORSRAM_BANK1] |= (uint32_t)(Init->WriteFifo);
+    /* Configure Write FIFO mode when Write Fifo is enabled for bank2..4 */
+    SET_BIT(Device->BTCR[FSMC_NORSRAM_BANK1], (uint32_t)(Init->WriteFifo));
   }
-#endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
+#endif /* FSMC_BCR1_WFDIS */
 
   return HAL_OK;
 }
 
 /**
-  * @brief  DeInitialize the FSMC_NORSRAM peripheral 
+  * @brief  DeInitialize the FSMC_NORSRAM peripheral
   * @param  Device Pointer to NORSRAM device instance
-  * @param  ExDevice Pointer to NORSRAM extended mode device instance  
-  * @param  Bank NORSRAM bank number  
+  * @param  ExDevice Pointer to NORSRAM extended mode device instance
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
+HAL_StatusTypeDef FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TypeDef *Device,
+                                     FSMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
 {
   /* Check the parameters */
   assert_param(IS_FSMC_NORSRAM_DEVICE(Device));
@@ -244,38 +348,40 @@
 
   /* Disable the FSMC_NORSRAM device */
   __FSMC_NORSRAM_DISABLE(Device, Bank);
-  
+
   /* De-initialize the FSMC_NORSRAM device */
   /* FSMC_NORSRAM_BANK1 */
-  if(Bank == FSMC_NORSRAM_BANK1)
+  if (Bank == FSMC_NORSRAM_BANK1)
   {
-    Device->BTCR[Bank] = 0x000030DBU;    
+    Device->BTCR[Bank] = 0x000030DBU;
   }
   /* FSMC_NORSRAM_BANK2, FSMC_NORSRAM_BANK3 or FSMC_NORSRAM_BANK4 */
   else
-  {   
-    Device->BTCR[Bank] = 0x000030D2U; 
+  {
+    Device->BTCR[Bank] = 0x000030D2U;
   }
-  
+
   Device->BTCR[Bank + 1U] = 0x0FFFFFFFU;
-  ExDevice->BWTR[Bank]    = 0x0FFFFFFFU;
-   
+  ExDevice->BWTR[Bank]   = 0x0FFFFFFFU;
+
   return HAL_OK;
 }
 
-
 /**
   * @brief  Initialize the FSMC_NORSRAM Timing according to the specified
   *         parameters in the FSMC_NORSRAM_TimingTypeDef
   * @param  Device Pointer to NORSRAM device instance
   * @param  Timing Pointer to NORSRAM Timing structure
-  * @param  Bank NORSRAM bank number  
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device,
+                                          FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;
-  
+#if defined(FSMC_BCR1_CCLKEN)
+  uint32_t tmpr;
+#endif
+
   /* Check the parameters */
   assert_param(IS_FSMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FSMC_ADDRESS_SETUP_TIME(Timing->AddressSetupTime));
@@ -286,36 +392,26 @@
   assert_param(IS_FSMC_DATA_LATENCY(Timing->DataLatency));
   assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode));
   assert_param(IS_FSMC_NORSRAM_BANK(Bank));
-  
-  /* Get the BTCR register value */
-  tmpr = Device->BTCR[Bank + 1U];
 
-  /* Clear ADDSET, ADDHLD, DATAST, BUSTURN, CLKDIV, DATLAT and ACCMOD bits */
-  tmpr &= ((uint32_t)~(FSMC_BTR1_ADDSET  | FSMC_BTR1_ADDHLD | FSMC_BTR1_DATAST | \
-                       FSMC_BTR1_BUSTURN | FSMC_BTR1_CLKDIV | FSMC_BTR1_DATLAT | \
-                       FSMC_BTR1_ACCMOD));
-  
-  /* Set FSMC_NORSRAM device timing parameters */  
-  tmpr |= (uint32_t)(Timing->AddressSetupTime                  |\
-                    ((Timing->AddressHoldTime) << 4U)          |\
-                    ((Timing->DataSetupTime) << 8U)            |\
-                    ((Timing->BusTurnAroundDuration) << 16U)   |\
-                    (((Timing->CLKDivision)-1U) << 20U)        |\
-                    (((Timing->DataLatency)-2U) << 24U)        |\
-                    (Timing->AccessMode));
-  
-  Device->BTCR[Bank + 1] = tmpr; 
+  /* Set FSMC_NORSRAM device timing parameters */
+  MODIFY_REG(Device->BTCR[Bank + 1U], BTR_CLEAR_MASK, (Timing->AddressSetupTime                                  |
+                                                       ((Timing->AddressHoldTime)        << FSMC_BTR1_ADDHLD_Pos)  |
+                                                       ((Timing->DataSetupTime)          << FSMC_BTR1_DATAST_Pos)  |
+                                                       ((Timing->BusTurnAroundDuration)  << FSMC_BTR1_BUSTURN_Pos) |
+                                                       (((Timing->CLKDivision) - 1U)     << FSMC_BTR1_CLKDIV_Pos)  |
+                                                       (((Timing->DataLatency) - 2U)     << FSMC_BTR1_DATLAT_Pos)  |
+                                                       (Timing->AccessMode)));
 
-#if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
+#if defined(FSMC_BCR1_CCLKEN)
   /* Configure Clock division value (in NORSRAM bank 1) when continuous clock is enabled */
-  if(HAL_IS_BIT_SET(Device->BTCR[FSMC_NORSRAM_BANK1], FSMC_BCR1_CCLKEN))
+  if (HAL_IS_BIT_SET(Device->BTCR[FSMC_NORSRAM_BANK1], FSMC_BCR1_CCLKEN))
   {
-    tmpr = (uint32_t)(Device->BTCR[FSMC_NORSRAM_BANK1 + 1U] & ~(0x0FU << 20U)); 
-    tmpr |= (uint32_t)(((Timing->CLKDivision)-1U) << 20U);
-    Device->BTCR[FSMC_NORSRAM_BANK1 + 1U] = tmpr;
+    tmpr = (uint32_t)(Device->BTCR[FSMC_NORSRAM_BANK1 + 1U] & ~((0x0FU) << FSMC_BTR1_CLKDIV_Pos));
+    tmpr |= (uint32_t)(((Timing->CLKDivision) - 1U) << FSMC_BTR1_CLKDIV_Pos);
+    MODIFY_REG(Device->BTCR[FSMC_NORSRAM_BANK1 + 1U], FSMC_BTR1_CLKDIV, tmpr);
   }
-#endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
 
+#endif
   return HAL_OK;
 }
 
@@ -324,18 +420,22 @@
   *         parameters in the FSMC_NORSRAM_TimingTypeDef
   * @param  Device Pointer to NORSRAM device instance
   * @param  Timing Pointer to NORSRAM Timing structure
-  * @param  Bank NORSRAM bank number  
+  * @param  Bank NORSRAM bank number
+  * @param  ExtendedMode FSMC Extended Mode
+  *          This parameter can be one of the following values:
+  *            @arg FSMC_EXTENDED_MODE_DISABLE
+  *            @arg FSMC_EXTENDED_MODE_ENABLE
   * @retval HAL status
   */
-HAL_StatusTypeDef  FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode)
+HAL_StatusTypeDef FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device,
+                                                   FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank,
+                                                   uint32_t ExtendedMode)
 {
-  uint32_t tmpr = 0U;
-  
   /* Check the parameters */
   assert_param(IS_FSMC_EXTENDED_MODE(ExtendedMode));
 
   /* Set NORSRAM device timing register for write configuration, if extended mode is used */
-  if(ExtendedMode == FSMC_EXTENDED_MODE_ENABLE)
+  if (ExtendedMode == FSMC_EXTENDED_MODE_ENABLE)
   {
     /* Check the parameters */
     assert_param(IS_FSMC_NORSRAM_EXTENDED_DEVICE(Device));
@@ -345,37 +445,29 @@
     assert_param(IS_FSMC_TURNAROUND_TIME(Timing->BusTurnAroundDuration));
     assert_param(IS_FSMC_ACCESS_MODE(Timing->AccessMode));
     assert_param(IS_FSMC_NORSRAM_BANK(Bank));
-  
-    /* Get the BWTR register value */
-    tmpr = Device->BWTR[Bank];
-    
-    /* Clear ADDSET, ADDHLD, DATAST, BUSTURN and ACCMOD bits */
-    tmpr &= ((uint32_t)~(FSMC_BWTR1_ADDSET  | FSMC_BWTR1_ADDHLD | FSMC_BWTR1_DATAST | \
-                         FSMC_BWTR1_BUSTURN | FSMC_BWTR1_ACCMOD));
 
-    tmpr |= (uint32_t)(Timing->AddressSetupTime                  |\
-                      ((Timing->AddressHoldTime) << 4U)          |\
-                      ((Timing->DataSetupTime) << 8U)            |\
-                      ((Timing->BusTurnAroundDuration) << 16U)   |\
-                      (Timing->AccessMode));
-    
-    Device->BWTR[Bank] = tmpr;
+    /* Set NORSRAM device timing register for write configuration, if extended mode is used */
+    MODIFY_REG(Device->BWTR[Bank], BWTR_CLEAR_MASK, (Timing->AddressSetupTime                                    |
+                                                     ((Timing->AddressHoldTime)        << FSMC_BWTR1_ADDHLD_Pos)  |
+                                                     ((Timing->DataSetupTime)          << FSMC_BWTR1_DATAST_Pos)  |
+                                                     Timing->AccessMode                                          |
+                                                     ((Timing->BusTurnAroundDuration)  << FSMC_BWTR1_BUSTURN_Pos)));
   }
-  else                                        
+  else
   {
     Device->BWTR[Bank] = 0x0FFFFFFFU;
-  }   
-  
-  return HAL_OK;  
+  }
+
+  return HAL_OK;
 }
 /**
   * @}
   */
-  
+
 /** @addtogroup FSMC_LL_NORSRAM_Private_Functions_Group2
-  *  @brief   management functions 
+  *  @brief   management functions
   *
-@verbatim   
+@verbatim
   ==============================================================================
                       ##### FSMC_NORSRAM Control functions #####
   ==============================================================================
@@ -386,11 +478,11 @@
 @endverbatim
   * @{
   */
-    
+
 /**
   * @brief  Enables dynamically FSMC_NORSRAM write operation.
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Bank NORSRAM bank number   
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Enable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank)
@@ -400,15 +492,15 @@
   assert_param(IS_FSMC_NORSRAM_BANK(Bank));
 
   /* Enable write operation */
-  Device->BTCR[Bank] |= FSMC_WRITE_OPERATION_ENABLE; 
+  SET_BIT(Device->BTCR[Bank], FSMC_WRITE_OPERATION_ENABLE);
 
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
   * @brief  Disables dynamically FSMC_NORSRAM write operation.
   * @param  Device Pointer to NORSRAM device instance
-  * @param  Bank NORSRAM bank number   
+  * @param  Bank NORSRAM bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Disable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank)
@@ -416,12 +508,13 @@
   /* Check the parameters */
   assert_param(IS_FSMC_NORSRAM_DEVICE(Device));
   assert_param(IS_FSMC_NORSRAM_BANK(Bank));
-  
+
   /* Disable write operation */
-  Device->BTCR[Bank] &= ~FSMC_WRITE_OPERATION_ENABLE; 
+  CLEAR_BIT(Device->BTCR[Bank], FSMC_WRITE_OPERATION_ENABLE);
 
-  return HAL_OK;  
+  return HAL_OK;
 }
+
 /**
   * @}
   */
@@ -429,50 +522,52 @@
 /**
   * @}
   */
+#endif /* FSMC_Bank1 */
 
-#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)
-/** @addtogroup FSMC_LL_NAND
-  * @brief    NAND Controller functions 
+#if defined(FSMC_Bank2_3)
+
+/** @defgroup FSMC_LL_Exported_Functions_NAND FSMC Low Layer NAND Exported Functions
+  * @brief    NAND Controller functions
   *
-  @verbatim 
-  ==============================================================================   
+  @verbatim
+  ==============================================================================
                     ##### How to use NAND device driver #####
   ==============================================================================
   [..]
     This driver contains a set of APIs to interface with the FSMC NAND banks in order
     to run the NAND external devices.
-  
-    (+) FSMC NAND bank reset using the function FSMC_NAND_DeInit() 
+
+    (+) FSMC NAND bank reset using the function FSMC_NAND_DeInit()
     (+) FSMC NAND bank control configuration using the function FSMC_NAND_Init()
-    (+) FSMC NAND bank common space timing configuration using the function 
+    (+) FSMC NAND bank common space timing configuration using the function
         FSMC_NAND_CommonSpace_Timing_Init()
-    (+) FSMC NAND bank attribute space timing configuration using the function 
+    (+) FSMC NAND bank attribute space timing configuration using the function
         FSMC_NAND_AttributeSpace_Timing_Init()
     (+) FSMC NAND bank enable/disable ECC correction feature using the functions
         FSMC_NAND_ECC_Enable()/FSMC_NAND_ECC_Disable()
-    (+) FSMC NAND bank get ECC correction code using the function FSMC_NAND_GetECC()  
+    (+) FSMC NAND bank get ECC correction code using the function FSMC_NAND_GetECC()
 
 @endverbatim
   * @{
   */
-    
-/** @addtogroup FSMC_LL_NAND_Private_Functions_Group1
-  *  @brief    Initialization and Configuration functions 
+
+/** @defgroup FSMC_LL_NAND_Exported_Functions_Group1 Initialization and de-initialization functions
+  *  @brief    Initialization and Configuration functions
   *
-@verbatim    
+@verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FSMC NAND interface
-    (+) De-initialize the FSMC NAND interface 
+    (+) De-initialize the FSMC NAND interface
     (+) Configure the FSMC clock and associated GPIOs
-        
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Initializes the FSMC_NAND device according to the specified
   *         control parameters in the FSMC_NAND_HandleTypeDef
@@ -482,53 +577,40 @@
   */
 HAL_StatusTypeDef FSMC_NAND_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_InitTypeDef *Init)
 {
-  uint32_t tmpr  = 0U; 
-    
   /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
   assert_param(IS_FSMC_NAND_BANK(Init->NandBank));
   assert_param(IS_FSMC_WAIT_FEATURE(Init->Waitfeature));
   assert_param(IS_FSMC_NAND_MEMORY_WIDTH(Init->MemoryDataWidth));
   assert_param(IS_FSMC_ECC_STATE(Init->EccComputation));
   assert_param(IS_FSMC_ECCPAGE_SIZE(Init->ECCPageSize));
   assert_param(IS_FSMC_TCLR_TIME(Init->TCLRSetupTime));
-  assert_param(IS_FSMC_TAR_TIME(Init->TARSetupTime));   
+  assert_param(IS_FSMC_TAR_TIME(Init->TARSetupTime));
 
-    if(Init->NandBank == FSMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PCR2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PCR3;
-  }
-  
-  /* Clear PWAITEN, PBKEN, PTYP, PWID, ECCEN, TCLR, TAR and ECCPS bits */
-  tmpr &= ((uint32_t)~(FSMC_PCR2_PWAITEN  | FSMC_PCR2_PBKEN | FSMC_PCR2_PTYP | \
-                       FSMC_PCR2_PWID | FSMC_PCR2_ECCEN | FSMC_PCR2_TCLR | \
-                       FSMC_PCR2_TAR | FSMC_PCR2_ECCPS));  
-  
   /* Set NAND device control parameters */
-  tmpr |= (uint32_t)(Init->Waitfeature                |\
-                     FSMC_PCR_MEMORY_TYPE_NAND        |\
-                     Init->MemoryDataWidth            |\
-                     Init->EccComputation             |\
-                     Init->ECCPageSize                |\
-                     ((Init->TCLRSetupTime) << 9U)    |\
-                     ((Init->TARSetupTime) << 13U));   
-  
-  if(Init->NandBank == FSMC_NAND_BANK2)
+  if (Init->NandBank == FSMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PCR2  = tmpr;
+    MODIFY_REG(Device->PCR2, PCR_CLEAR_MASK, (Init->Waitfeature                                      |
+                                              FSMC_PCR_MEMORY_TYPE_NAND                               |
+                                              Init->MemoryDataWidth                                  |
+                                              Init->EccComputation                                   |
+                                              Init->ECCPageSize                                      |
+                                              ((Init->TCLRSetupTime) << FSMC_PCR2_TCLR_Pos) |
+                                              ((Init->TARSetupTime)  << FSMC_PCR2_TAR_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PCR3  = tmpr;
+    MODIFY_REG(Device->PCR3, PCR_CLEAR_MASK, (Init->Waitfeature                                      |
+                                              FSMC_PCR_MEMORY_TYPE_NAND                               |
+                                              Init->MemoryDataWidth                                  |
+                                              Init->EccComputation                                   |
+                                              Init->ECCPageSize                                      |
+                                              ((Init->TCLRSetupTime) << FSMC_PCR2_TCLR_Pos)  |
+                                              ((Init->TARSetupTime)  << FSMC_PCR2_TAR_Pos)));
   }
-  
+
   return HAL_OK;
 }
 
@@ -537,53 +619,39 @@
   *         parameters in the FSMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to NAND device instance
   * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number   
+  * @param  Bank NAND bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_NAND_CommonSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FSMC_NAND_CommonSpace_Timing_Init(FSMC_NAND_TypeDef *Device,
+                                                   FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;  
-  
   /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
   assert_param(IS_FSMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FSMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FSMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FSMC_HIZ_TIME(Timing->HiZSetupTime));
-  
-  if(Bank == FSMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PMEM2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PMEM3;
-  } 
-  
-  /* Clear MEMSETx, MEMWAITx, MEMHOLDx and MEMHIZx bits */
-  tmpr &= ((uint32_t)~(FSMC_PMEM2_MEMSET2  | FSMC_PMEM2_MEMWAIT2 | FSMC_PMEM2_MEMHOLD2 | \
-                       FSMC_PMEM2_MEMHIZ2));
-  
+  assert_param(IS_FSMC_NAND_BANK(Bank));
+
   /* Set FSMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                     |\
-                       ((Timing->WaitSetupTime) << 8U)     |\
-                       ((Timing->HoldSetupTime) << 16U)    |\
-                       ((Timing->HiZSetupTime) << 24U)
-                       );
-                            
-  if(Bank == FSMC_NAND_BANK2)
+  if (Bank == FSMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PMEM2 = tmpr;
+    MODIFY_REG(Device->PMEM2, PMEM_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FSMC_PMEM2_MEMWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FSMC_PMEM2_MEMHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FSMC_PMEM2_MEMHIZ2_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PMEM3 = tmpr;
-  }  
-  
-  return HAL_OK;  
+    MODIFY_REG(Device->PMEM3, PMEM_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FSMC_PMEM2_MEMWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FSMC_PMEM2_MEMHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FSMC_PMEM2_MEMHIZ2_Pos)));
+  }
+
+  return HAL_OK;
 }
 
 /**
@@ -591,95 +659,86 @@
   *         parameters in the FSMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to NAND device instance
   * @param  Timing Pointer to NAND timing structure
-  * @param  Bank NAND bank number 
+  * @param  Bank NAND bank number
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_NAND_AttributeSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
+HAL_StatusTypeDef FSMC_NAND_AttributeSpace_Timing_Init(FSMC_NAND_TypeDef *Device,
+                                                      FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
 {
-  uint32_t tmpr = 0U;  
-  
-  /* Check the parameters */  
+  /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
   assert_param(IS_FSMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FSMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FSMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FSMC_HIZ_TIME(Timing->HiZSetupTime));
-  
-  if(Bank == FSMC_NAND_BANK2)
-  {
-    /* Get the NAND bank 2 register value */
-    tmpr = Device->PATT2;
-  }
-  else
-  {
-    /* Get the NAND bank 3 register value */
-    tmpr = Device->PATT3;
-  } 
-  
-  /* Clear ATTSETx, ATTWAITx, ATTHOLDx and ATTHIZx bits */
-  tmpr &= ((uint32_t)~(FSMC_PATT2_ATTSET2  | FSMC_PATT2_ATTWAIT2 | FSMC_PATT2_ATTHOLD2 | \
-                       FSMC_PATT2_ATTHIZ2));
-  
+  assert_param(IS_FSMC_NAND_BANK(Bank));
+
   /* Set FSMC_NAND device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                     |\
-                       ((Timing->WaitSetupTime) << 8U)     |\
-                       ((Timing->HoldSetupTime) << 16U)    |\
-                       ((Timing->HiZSetupTime) << 24U)
-                       );
-                       
-  if(Bank == FSMC_NAND_BANK2)
+  if (Bank == FSMC_NAND_BANK2)
   {
     /* NAND bank 2 registers configuration */
-    Device->PATT2 = tmpr;
+    MODIFY_REG(Device->PATT2, PATT_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FSMC_PATT2_ATTWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FSMC_PATT2_ATTHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FSMC_PATT2_ATTHIZ2_Pos)));
   }
   else
   {
     /* NAND bank 3 registers configuration */
-    Device->PATT3 = tmpr;
-  }   
-  
+    MODIFY_REG(Device->PATT3, PATT_CLEAR_MASK, (Timing->SetupTime                                             |
+                                                ((Timing->WaitSetupTime) << FSMC_PATT2_ATTWAIT2_Pos) |
+                                                ((Timing->HoldSetupTime) << FSMC_PATT2_ATTHOLD2_Pos) |
+                                                ((Timing->HiZSetupTime)  << FSMC_PATT2_ATTHIZ2_Pos)));
+  }
+
   return HAL_OK;
 }
 
 /**
-  * @brief  DeInitializes the FSMC_NAND device 
+  * @brief  DeInitializes the FSMC_NAND device
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
   */
 HAL_StatusTypeDef FSMC_NAND_DeInit(FSMC_NAND_TypeDef *Device, uint32_t Bank)
 {
+  /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
+  assert_param(IS_FSMC_NAND_BANK(Bank));
+
   /* Disable the NAND Bank */
   __FSMC_NAND_DISABLE(Device, Bank);
- 
+
   /* De-initialize the NAND Bank */
-  if(Bank == FSMC_NAND_BANK2)
+  if (Bank == FSMC_NAND_BANK2)
   {
     /* Set the FSMC_NAND_BANK2 registers to their reset values */
-    Device->PCR2  = 0x00000018U;
-    Device->SR2   = 0x00000040U;
-    Device->PMEM2 = 0xFCFCFCFCU;
-    Device->PATT2 = 0xFCFCFCFCU;  
+    WRITE_REG(Device->PCR2,  0x00000018U);
+    WRITE_REG(Device->SR2,   0x00000040U);
+    WRITE_REG(Device->PMEM2, 0xFCFCFCFCU);
+    WRITE_REG(Device->PATT2, 0xFCFCFCFCU);
   }
-  /* FSMC_Bank3_NAND */  
+  /* FSMC_Bank3_NAND */
   else
   {
     /* Set the FSMC_NAND_BANK3 registers to their reset values */
-    Device->PCR3  = 0x00000018U;
-    Device->SR3   = 0x00000040U;
-    Device->PMEM3 = 0xFCFCFCFCU;
-    Device->PATT3 = 0xFCFCFCFCU; 
+    WRITE_REG(Device->PCR3,  0x00000018U);
+    WRITE_REG(Device->SR3,   0x00000040U);
+    WRITE_REG(Device->PMEM3, 0xFCFCFCFCU);
+    WRITE_REG(Device->PATT3, 0xFCFCFCFCU);
   }
-  
+
   return HAL_OK;
 }
+
 /**
   * @}
   */
-  
-/** @addtogroup FSMC_LL_NAND_Private_Functions_Group2
-  *  @brief   management functions 
+
+/** @defgroup HAL_FSMC_NAND_Group2 Peripheral Control functions
+  *  @brief   management functions
   *
-@verbatim   
+@verbatim
   ==============================================================================
                        ##### FSMC_NAND Control functions #####
   ==============================================================================
@@ -689,48 +748,58 @@
 
 @endverbatim
   * @{
-  */ 
-    
+  */
+
+
 /**
   * @brief  Enables dynamically FSMC_NAND ECC feature.
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
-  */    
-HAL_StatusTypeDef  FSMC_NAND_ECC_Enable(FSMC_NAND_TypeDef *Device, uint32_t Bank)
+  */
+HAL_StatusTypeDef FSMC_NAND_ECC_Enable(FSMC_NAND_TypeDef *Device, uint32_t Bank)
 {
+  /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
+  assert_param(IS_FSMC_NAND_BANK(Bank));
+
   /* Enable ECC feature */
-  if(Bank == FSMC_NAND_BANK2)
+  if (Bank == FSMC_NAND_BANK2)
   {
-    Device->PCR2 |= FSMC_PCR2_ECCEN;
+    SET_BIT(Device->PCR2, FSMC_PCR2_ECCEN);
   }
   else
   {
-    Device->PCR3 |= FSMC_PCR3_ECCEN;
-  } 
-  
-  return HAL_OK;  
+    SET_BIT(Device->PCR3, FSMC_PCR2_ECCEN);
+  }
+
+  return HAL_OK;
 }
 
+
 /**
   * @brief  Disables dynamically FSMC_NAND ECC feature.
   * @param  Device Pointer to NAND device instance
   * @param  Bank NAND bank number
   * @retval HAL status
-  */  
-HAL_StatusTypeDef FSMC_NAND_ECC_Disable(FSMC_NAND_TypeDef *Device, uint32_t Bank)  
-{  
+  */
+HAL_StatusTypeDef FSMC_NAND_ECC_Disable(FSMC_NAND_TypeDef *Device, uint32_t Bank)
+{
+  /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
+  assert_param(IS_FSMC_NAND_BANK(Bank));
+
   /* Disable ECC feature */
-  if(Bank == FSMC_NAND_BANK2)
+  if (Bank == FSMC_NAND_BANK2)
   {
-    Device->PCR2 &= ~FSMC_PCR2_ECCEN;
+    CLEAR_BIT(Device->PCR2, FSMC_PCR2_ECCEN);
   }
   else
   {
-    Device->PCR3 &= ~FSMC_PCR3_ECCEN;
-  } 
+    CLEAR_BIT(Device->PCR3, FSMC_PCR2_ECCEN);
+  }
 
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
@@ -738,127 +807,125 @@
   * @param  Device Pointer to NAND device instance
   * @param  ECCval Pointer to ECC value
   * @param  Bank NAND bank number
-  * @param  Timeout Timeout wait value  
+  * @param  Timeout Timeout wait value
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_NAND_GetECC(FSMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
+HAL_StatusTypeDef FSMC_NAND_GetECC(FSMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
+                                  uint32_t Timeout)
 {
-  uint32_t tickstart = 0U;
-  
-  /* Check the parameters */ 
-  assert_param(IS_FSMC_NAND_DEVICE(Device)); 
+  uint32_t tickstart;
+
+  /* Check the parameters */
+  assert_param(IS_FSMC_NAND_DEVICE(Device));
   assert_param(IS_FSMC_NAND_BANK(Bank));
 
-  /* Get tick */ 
+  /* Get tick */
   tickstart = HAL_GetTick();
 
   /* Wait until FIFO is empty */
-  while(__FSMC_NAND_GET_FLAG(Device, Bank, FSMC_FLAG_FEMPT) == RESET)
+  while (__FSMC_NAND_GET_FLAG(Device, Bank, FSMC_FLAG_FEMPT) == RESET)
   {
     /* Check for the Timeout */
-    if(Timeout != HAL_MAX_DELAY)
+    if (Timeout != HAL_MAX_DELAY)
     {
-      if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
+      if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
       {
         return HAL_TIMEOUT;
       }
-    }   
+    }
   }
-     
-  if(Bank == FSMC_NAND_BANK2)
-  {    
+
+  if (Bank == FSMC_NAND_BANK2)
+  {
     /* Get the ECCR2 register value */
     *ECCval = (uint32_t)Device->ECCR2;
   }
   else
-  {    
+  {
     /* Get the ECCR3 register value */
     *ECCval = (uint32_t)Device->ECCR3;
   }
 
-  return HAL_OK;  
+  return HAL_OK;
 }
 
 /**
   * @}
   */
-  
-/**
-  * @}
-  */
-    
+#endif /* FSMC_Bank2_3 */
+
+#if defined(FSMC_Bank4)
+
 /** @addtogroup FSMC_LL_PCCARD
-  * @brief    PCCARD Controller functions 
+  * @brief    PCCARD Controller functions
   *
-  @verbatim 
+  @verbatim
   ==============================================================================
                     ##### How to use PCCARD device driver #####
   ==============================================================================
   [..]
     This driver contains a set of APIs to interface with the FSMC PCCARD bank in order
     to run the PCCARD/compact flash external devices.
-  
-    (+) FSMC PCCARD bank reset using the function FSMC_PCCARD_DeInit() 
+
+    (+) FSMC PCCARD bank reset using the function FSMC_PCCARD_DeInit()
     (+) FSMC PCCARD bank control configuration using the function FSMC_PCCARD_Init()
-    (+) FSMC PCCARD bank common space timing configuration using the function 
+    (+) FSMC PCCARD bank common space timing configuration using the function
         FSMC_PCCARD_CommonSpace_Timing_Init()
-    (+) FSMC PCCARD bank attribute space timing configuration using the function 
+    (+) FSMC PCCARD bank attribute space timing configuration using the function
         FSMC_PCCARD_AttributeSpace_Timing_Init()
-    (+) FSMC PCCARD bank IO space timing configuration using the function 
+    (+) FSMC PCCARD bank IO space timing configuration using the function
         FSMC_PCCARD_IOSpace_Timing_Init()
-       
 @endverbatim
   * @{
   */
-  
+
 /** @addtogroup FSMC_LL_PCCARD_Private_Functions_Group1
-  *  @brief   Initialization and Configuration functions 
+  *  @brief    Initialization and Configuration functions
   *
-@verbatim    
+@verbatim
   ==============================================================================
               ##### Initialization and de_initialization functions #####
   ==============================================================================
-  [..]  
+  [..]
     This section provides functions allowing to:
     (+) Initialize and configure the FSMC PCCARD interface
-    (+) De-initialize the FSMC PCCARD interface 
+    (+) De-initialize the FSMC PCCARD interface
     (+) Configure the FSMC clock and associated GPIOs
-        
+
 @endverbatim
   * @{
   */
-  
+
 /**
   * @brief  Initializes the FSMC_PCCARD device according to the specified
   *         control parameters in the FSMC_PCCARD_HandleTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Init Pointer to PCCARD Initialization structure   
+  * @param  Init Pointer to PCCARD Initialization structure
   * @retval HAL status
   */
 HAL_StatusTypeDef FSMC_PCCARD_Init(FSMC_PCCARD_TypeDef *Device, FSMC_PCCARD_InitTypeDef *Init)
 {
-  uint32_t tmpr = 0U;
-  
-  /* Check the parameters */ 
+  /* Check the parameters */
+  assert_param(IS_FSMC_PCCARD_DEVICE(Device));
+#if defined(FSMC_Bank2_3)
   assert_param(IS_FSMC_WAIT_FEATURE(Init->Waitfeature));
   assert_param(IS_FSMC_TCLR_TIME(Init->TCLRSetupTime));
-  assert_param(IS_FSMC_TAR_TIME(Init->TARSetupTime));     
-  
-  /* Get PCCARD control register value */
-  tmpr = Device->PCR4;
-  
-  /* Clear TAR, TCLR, PWAITEN and PWID bits */
-  tmpr &= ((uint32_t)~(FSMC_PCR4_TAR  | FSMC_PCR4_TCLR | FSMC_PCR4_PWAITEN | \
-                       FSMC_PCR4_PWID | FSMC_PCR4_PTYP));
-  
+  assert_param(IS_FSMC_TAR_TIME(Init->TARSetupTime));
+#endif /* FSMC_Bank2_3 */
+
   /* Set FSMC_PCCARD device control parameters */
-  tmpr |= (uint32_t)(Init->Waitfeature               |\
-                     FSMC_NAND_PCC_MEM_BUS_WIDTH_16  |\
-                     (Init->TCLRSetupTime << 9U)     |\
-                     (Init->TARSetupTime << 13U));
-  
-  Device->PCR4 = tmpr;
-  
+  MODIFY_REG(Device->PCR4,
+             (FSMC_PCR4_PTYP                                          |
+              FSMC_PCR4_PWAITEN                                       |
+              FSMC_PCR4_PWID                                          |
+              FSMC_PCR4_TCLR                                          |
+              FSMC_PCR4_TAR),
+             (FSMC_PCR_MEMORY_TYPE_PCCARD                             |
+              Init->Waitfeature                                      |
+              FSMC_NAND_PCC_MEM_BUS_WIDTH_16                          |
+              (Init->TCLRSetupTime << FSMC_PCR4_TCLR_Pos)   |
+              (Init->TARSetupTime  << FSMC_PCR4_TAR_Pos)));
+
   return HAL_OK;
 }
 
@@ -866,67 +933,57 @@
   * @brief  Initializes the FSMC_PCCARD Common space Timing according to the specified
   *         parameters in the FSMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure 
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_PCCARD_CommonSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FSMC_PCCARD_CommonSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                              FSMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0U;
-  
   /* Check the parameters */
+  assert_param(IS_FSMC_PCCARD_DEVICE(Device));
+#if defined(FSMC_Bank2_3)
   assert_param(IS_FSMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FSMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FSMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FSMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FSMC_Bank2_3 */
 
-  /* Get PCCARD common space timing register value */
-  tmpr = Device->PMEM4;
-  
-  /* Clear MEMSETx, MEMWAITx, MEMHOLDx and MEMHIZx bits */
-  tmpr &= ((uint32_t)~(FSMC_PMEM4_MEMSET4  | FSMC_PMEM4_MEMWAIT4 | FSMC_PMEM4_MEMHOLD4 | \
-                       FSMC_PMEM4_MEMHIZ4));
   /* Set PCCARD timing parameters */
-  tmpr |= (uint32_t)((Timing->SetupTime                 |\
-                    ((Timing->WaitSetupTime) << 8U)     |\
-                    (Timing->HoldSetupTime) << 16U)     |\
-                    ((Timing->HiZSetupTime) << 24U));
-  
-  Device->PMEM4 = tmpr;
-  
-  return HAL_OK;  
+  MODIFY_REG(Device->PMEM4, PMEM4_CLEAR_MASK,
+             (Timing->SetupTime                                              |
+              ((Timing->WaitSetupTime) << FSMC_PMEM4_MEMWAIT4_Pos)  |
+              ((Timing->HoldSetupTime) << FSMC_PMEM4_MEMHOLD4_Pos)  |
+              ((Timing->HiZSetupTime)  << FSMC_PMEM4_MEMHIZ4_Pos)));
+
+  return HAL_OK;
 }
 
 /**
   * @brief  Initializes the FSMC_PCCARD Attribute space Timing according to the specified
   *         parameters in the FSMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure  
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_PCCARD_AttributeSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FSMC_PCCARD_AttributeSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                                 FSMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0U;
-
-  /* Check the parameters */  
+  /* Check the parameters */
+  assert_param(IS_FSMC_PCCARD_DEVICE(Device));
+#if defined(FSMC_Bank2_3)
   assert_param(IS_FSMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FSMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FSMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FSMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FSMC_Bank2_3 */
 
-  /* Get PCCARD timing parameters */
-  tmpr = Device->PATT4;
-
-  /* Clear ATTSETx, ATTWAITx, ATTHOLDx and ATTHIZx bits */
-  tmpr &= ((uint32_t)~(FSMC_PATT4_ATTSET4  | FSMC_PATT4_ATTWAIT4 | FSMC_PATT4_ATTHOLD4 | \
-                       FSMC_PATT4_ATTHIZ4));
-  
   /* Set PCCARD timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                 |\
-                   ((Timing->WaitSetupTime) << 8U)     |\
-                   ((Timing->HoldSetupTime) << 16U)    |\
-                   ((Timing->HiZSetupTime) << 24U));
-  Device->PATT4 = tmpr; 
-                                        
+  MODIFY_REG(Device->PATT4, PATT4_CLEAR_MASK,
+             (Timing->SetupTime                                              |
+              ((Timing->WaitSetupTime) << FSMC_PATT4_ATTWAIT4_Pos)  |
+              ((Timing->HoldSetupTime) << FSMC_PATT4_ATTHOLD4_Pos)  |
+              ((Timing->HiZSetupTime)  << FSMC_PATT4_ATTHIZ4_Pos)));
+
   return HAL_OK;
 }
 
@@ -934,70 +991,59 @@
   * @brief  Initializes the FSMC_PCCARD IO space Timing according to the specified
   *         parameters in the FSMC_NAND_PCC_TimingTypeDef
   * @param  Device Pointer to PCCARD device instance
-  * @param  Timing Pointer to PCCARD timing structure  
+  * @param  Timing Pointer to PCCARD timing structure
   * @retval HAL status
   */
-HAL_StatusTypeDef FSMC_PCCARD_IOSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing)
+HAL_StatusTypeDef FSMC_PCCARD_IOSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device,
+                                                          FSMC_NAND_PCC_TimingTypeDef *Timing)
 {
-  uint32_t tmpr = 0U;
-  
-  /* Check the parameters */  
+  /* Check the parameters */
+  assert_param(IS_FSMC_PCCARD_DEVICE(Device));
+#if defined(FSMC_Bank2_3)
   assert_param(IS_FSMC_SETUP_TIME(Timing->SetupTime));
   assert_param(IS_FSMC_WAIT_TIME(Timing->WaitSetupTime));
   assert_param(IS_FSMC_HOLD_TIME(Timing->HoldSetupTime));
   assert_param(IS_FSMC_HIZ_TIME(Timing->HiZSetupTime));
+#endif /* FSMC_Bank2_3 */
 
-  /* Get FSMC_PCCARD device timing parameters */
-  tmpr = Device->PIO4;
-
-  /* Clear IOSET4, IOWAIT4, IOHOLD4 and IOHIZ4 bits */
-  tmpr &= ((uint32_t)~(FSMC_PIO4_IOSET4  | FSMC_PIO4_IOWAIT4 | FSMC_PIO4_IOHOLD4 | \
-                       FSMC_PIO4_IOHIZ4));
-  
   /* Set FSMC_PCCARD device timing parameters */
-  tmpr |= (uint32_t)(Timing->SetupTime                   |\
-                     ((Timing->WaitSetupTime) << 8U)     |\
-                     ((Timing->HoldSetupTime) << 16U)    |\
-                     ((Timing->HiZSetupTime) << 24U));   
-  
-  Device->PIO4 = tmpr;
-  
+  MODIFY_REG(Device->PIO4, PIO4_CLEAR_MASK,
+             (Timing->SetupTime                                           |
+              (Timing->WaitSetupTime   << FSMC_PIO4_IOWAIT4_Pos) |
+              (Timing->HoldSetupTime   << FSMC_PIO4_IOHOLD4_Pos) |
+              (Timing->HiZSetupTime    << FSMC_PIO4_IOHIZ4_Pos)));
+
   return HAL_OK;
 }
-                                           
+
 /**
-  * @brief  DeInitializes the FSMC_PCCARD device 
+  * @brief  DeInitializes the FSMC_PCCARD device
   * @param  Device Pointer to PCCARD device instance
   * @retval HAL status
   */
 HAL_StatusTypeDef FSMC_PCCARD_DeInit(FSMC_PCCARD_TypeDef *Device)
 {
+  /* Check the parameters */
+  assert_param(IS_FSMC_PCCARD_DEVICE(Device));
+
   /* Disable the FSMC_PCCARD device */
   __FSMC_PCCARD_DISABLE(Device);
-  
+
   /* De-initialize the FSMC_PCCARD device */
-  Device->PCR4    = 0x00000018U; 
-  Device->SR4     = 0x00000000U;	
+  Device->PCR4    = 0x00000018U;
+  Device->SR4     = 0x00000040U;
   Device->PMEM4   = 0xFCFCFCFCU;
   Device->PATT4   = 0xFCFCFCFCU;
   Device->PIO4    = 0xFCFCFCFCU;
-  
+
   return HAL_OK;
 }
-/**
-  * @}
-  */
 
 /**
   * @}
   */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */
+#endif /* FSMC_Bank4 */
 
-/**
-  * @}
-  */
-#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx || STM32F413xx || STM32F423xx */
-#endif /* HAL_SRAM_MODULE_ENABLED || HAL_NOR_MODULE_ENABLED || HAL_NAND_MODULE_ENABLED || HAL_PCCARD_MODULE_ENABLED */
 
 /**
   * @}
@@ -1006,4 +1052,11 @@
 /**
   * @}
   */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
+#endif /* HAL_NOR_MODULE_ENABLED */
+/**
+  * @}
+  */
+/**
+  * @}
+  */
diff --git a/Src/stm32f4xx_ll_gpio.c b/Src/stm32f4xx_ll_gpio.c
index bfdcb1e..4d100b5 100644
--- a/Src/stm32f4xx_ll_gpio.c
+++ b/Src/stm32f4xx_ll_gpio.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -302,4 +301,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_i2c.c b/Src/stm32f4xx_ll_i2c.c
index 125fb2c..d25e590 100644
--- a/Src/stm32f4xx_ll_i2c.c
+++ b/Src/stm32f4xx_ll_i2c.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -250,4 +249,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_lptim.c b/Src/stm32f4xx_ll_lptim.c
index 780961d..9336b5c 100644
--- a/Src/stm32f4xx_ll_lptim.c
+++ b/Src/stm32f4xx_ll_lptim.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -189,12 +188,15 @@
   uint32_t tmpCFGR;
   uint32_t tmpCMP;
   uint32_t tmpARR;
+  uint32_t primask_bit;
   uint32_t tmpOR;
 
   /* Check the parameters */
   assert_param(IS_LPTIM_INSTANCE(LPTIMx));
 
-  __disable_irq();
+  /* Enter critical section */
+  primask_bit = __get_PRIMASK();
+  __set_PRIMASK(1) ;
 
   /********** Save LPTIM Config *********/
   /* Save LPTIM source clock */
@@ -274,7 +276,8 @@
   LPTIMx->CFGR = tmpCFGR;
   LPTIMx->OR = tmpOR;
 
-  __enable_irq();
+  /* Exit critical section: restore previous priority mask */
+  __set_PRIMASK(primask_bit);
 }
 
 /**
@@ -296,5 +299,3 @@
   */
 
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_pwr.c b/Src/stm32f4xx_ll_pwr.c
index fe04bc4..0c6f61e 100644
--- a/Src/stm32f4xx_ll_pwr.c
+++ b/Src/stm32f4xx_ll_pwr.c
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 #if defined(USE_FULL_LL_DRIVER)
@@ -81,5 +79,3 @@
   */
 
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_rcc.c b/Src/stm32f4xx_ll_rcc.c
index ea18adc..efa3e57 100644
--- a/Src/stm32f4xx_ll_rcc.c
+++ b/Src/stm32f4xx_ll_rcc.c
@@ -6,14 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+  * This software is licensed under terms that can be found in the LICENSE file in
+  * the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   ******************************************************************************
   */
 #if defined(USE_FULL_LL_DRIVER)
@@ -1660,4 +1658,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_rng.c b/Src/stm32f4xx_ll_rng.c
index 1b202c9..333d63c 100644
--- a/Src/stm32f4xx_ll_rng.c
+++ b/Src/stm32f4xx_ll_rng.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -62,22 +61,32 @@
   */
 ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx)
 {
+  ErrorStatus status = SUCCESS;
+
   /* Check the parameters */
   assert_param(IS_RNG_ALL_INSTANCE(RNGx));
+  if (RNGx == RNG)
+  {
 #if !defined(RCC_AHB2_SUPPORT)
-  /* Enable RNG reset state */
-  LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG);
+    /* Enable RNG reset state */
+    LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG);
 
-  /* Release RNG from reset state */
-  LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG);
+    /* Release RNG from reset state */
+    LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG);
 #else
-  /* Enable RNG reset state */
-  LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_RNG);
+    /* Enable RNG reset state */
+    LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_RNG);
 
   /* Release RNG from reset state */
-  LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_RNG);
+    LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_RNG);
 #endif /* !RCC_AHB2_SUPPORT */
-  return (SUCCESS);
+  }
+  else
+  {
+    status = ERROR;
+  }
+
+  return status;
 }
 
 /**
@@ -100,5 +109,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Src/stm32f4xx_ll_rtc.c b/Src/stm32f4xx_ll_rtc.c
index 14c3cfa..f3ee3ce 100644
--- a/Src/stm32f4xx_ll_rtc.c
+++ b/Src/stm32f4xx_ll_rtc.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -85,11 +84,11 @@
                                    || ((__VALUE__) == LL_RTC_WEEKDAY_SATURDAY) \
                                    || ((__VALUE__) == LL_RTC_WEEKDAY_SUNDAY))
 
-#define IS_LL_RTC_DAY(__DAY__)    (((__DAY__) >= 1U) && ((__DAY__) <= 31U))
+#define IS_LL_RTC_DAY(__DAY__)     (((__DAY__) >= 1U) && ((__DAY__) <= 31U))
 
 #define IS_LL_RTC_MONTH(__MONTH__) (((__MONTH__) >= 1U) && ((__MONTH__) <= 12U))
 
-#define IS_LL_RTC_YEAR(__YEAR__) ((__YEAR__) <= 99U)
+#define IS_LL_RTC_YEAR(__YEAR__)   ((__YEAR__) <= 99U)
 
 #define IS_LL_RTC_ALMA_MASK(__VALUE__) (((__VALUE__) == LL_RTC_ALMA_MASK_NONE) \
                                      || ((__VALUE__) == LL_RTC_ALMA_MASK_DATEWEEKDAY) \
@@ -105,14 +104,12 @@
                                      || ((__VALUE__) == LL_RTC_ALMB_MASK_SECONDS) \
                                      || ((__VALUE__) == LL_RTC_ALMB_MASK_ALL))
 
-
 #define IS_LL_RTC_ALMA_DATE_WEEKDAY_SEL(__SEL__) (((__SEL__) == LL_RTC_ALMA_DATEWEEKDAYSEL_DATE) || \
                                                   ((__SEL__) == LL_RTC_ALMA_DATEWEEKDAYSEL_WEEKDAY))
 
 #define IS_LL_RTC_ALMB_DATE_WEEKDAY_SEL(__SEL__) (((__SEL__) == LL_RTC_ALMB_DATEWEEKDAYSEL_DATE) || \
                                                   ((__SEL__) == LL_RTC_ALMB_DATEWEEKDAYSEL_WEEKDAY))
 
-
 /**
   * @}
   */
@@ -128,7 +125,7 @@
 
 /**
   * @brief  De-Initializes the RTC registers to their default reset values.
-  * @note   This function doesn't reset the RTC Clock source and RTC Backup Data
+  * @note   This function does not reset the RTC Clock source and RTC Backup Data
   *         registers.
   * @param  RTCx RTC Instance
   * @retval An ErrorStatus enumeration value:
@@ -150,21 +147,17 @@
   {
     /* Reset TR, DR and CR registers */
     LL_RTC_WriteReg(RTCx, TR,       0x00000000U);
-#if defined(RTC_WAKEUP_SUPPORT)
     LL_RTC_WriteReg(RTCx, WUTR,     RTC_WUTR_WUT);
-#endif /* RTC_WAKEUP_SUPPORT */
-    LL_RTC_WriteReg(RTCx, DR  ,     (RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0));
+    LL_RTC_WriteReg(RTCx, DR,      (RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0));
+
     /* Reset All CR bits except CR[2:0] */
-#if defined(RTC_WAKEUP_SUPPORT)
     LL_RTC_WriteReg(RTCx, CR, (LL_RTC_ReadReg(RTCx, CR) & RTC_CR_WUCKSEL));
-#else
-    LL_RTC_WriteReg(RTCx, CR, 0x00000000U);
-#endif /* RTC_WAKEUP_SUPPORT */
-    LL_RTC_WriteReg(RTCx, PRER,     (RTC_PRER_PREDIV_A | RTC_SYNCH_PRESC_DEFAULT));
+
+    LL_RTC_WriteReg(RTCx, PRER,    (RTC_PRER_PREDIV_A | RTC_SYNCH_PRESC_DEFAULT));
     LL_RTC_WriteReg(RTCx, ALRMAR,   0x00000000U);
     LL_RTC_WriteReg(RTCx, ALRMBR,   0x00000000U);
-    LL_RTC_WriteReg(RTCx, SHIFTR,   0x00000000U);
     LL_RTC_WriteReg(RTCx, CALR,     0x00000000U);
+    LL_RTC_WriteReg(RTCx, SHIFTR,   0x00000000U);
     LL_RTC_WriteReg(RTCx, ALRMASSR, 0x00000000U);
     LL_RTC_WriteReg(RTCx, ALRMBSSR, 0x00000000U);
 
@@ -368,7 +361,7 @@
 
   if ((RTC_Format == LL_RTC_FORMAT_BIN) && ((RTC_DateStruct->Month & 0x10U) == 0x10U))
   {
-    RTC_DateStruct->Month = (RTC_DateStruct->Month & (uint32_t)~(0x10U)) + 0x0AU;
+    RTC_DateStruct->Month = (uint8_t)(RTC_DateStruct->Month & (uint8_t)~(0x10U)) + 0x0AU;
   }
   if (RTC_Format == LL_RTC_FORMAT_BIN)
   {
@@ -783,7 +776,7 @@
   *         synchronized with RTC APB clock.
   * @note   The RTC Resynchronization mode is write protected, use the
   *         @ref LL_RTC_DisableWriteProtection before calling this function.
-  * @note   To read the calendar through the shadow registers after Calendar
+  * @note   To read the calendar through the shadow registers after calendar
   *         initialization, calendar update or after wakeup from low power modes
   *         the software must first clear the RSF flag.
   *         The software must then wait until it is set again before reading
@@ -808,7 +801,7 @@
 
   /* Wait the registers to be synchronised */
   tmp = LL_RTC_IsActiveFlag_RS(RTCx);
-  while ((timeout != 0U) && (tmp != 0U))
+  while ((timeout != 0U) && (tmp != 1U))
   {
     if (LL_SYSTICK_IsActiveCounterFlag() == 1U)
     {
@@ -821,24 +814,6 @@
     }
   }
 
-  if (status != ERROR)
-  {
-    timeout = RTC_SYNCHRO_TIMEOUT;
-    tmp = LL_RTC_IsActiveFlag_RS(RTCx);
-    while ((timeout != 0U) && (tmp != 1U))
-    {
-      if (LL_SYSTICK_IsActiveCounterFlag() == 1U)
-      {
-        timeout--;
-      }
-      tmp = LL_RTC_IsActiveFlag_RS(RTCx);
-      if (timeout == 0U)
-      {
-        status = ERROR;
-      }
-    }
-  }
-
   return (status);
 }
 
@@ -861,5 +836,3 @@
   */
 
 #endif /* USE_FULL_LL_DRIVER */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_sdmmc.c b/Src/stm32f4xx_ll_sdmmc.c
index ff89435..ab48303 100644
--- a/Src/stm32f4xx_ll_sdmmc.c
+++ b/Src/stm32f4xx_ll_sdmmc.c
@@ -11,6 +11,17 @@
   *           + Peripheral Control functions 
   *           + Peripheral State functions
   *         
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                        ##### SDMMC peripheral features #####
@@ -142,17 +153,6 @@
   
   @endverbatim
   ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                       opensource.org/licenses/BSD-3-Clause
-  *
-  ******************************************************************************
   */ 
 
 /* Includes ------------------------------------------------------------------*/
@@ -177,11 +177,6 @@
 /* Private variables ---------------------------------------------------------*/
 /* Private function prototypes -----------------------------------------------*/
 static uint32_t SDMMC_GetCmdError(SDIO_TypeDef *SDIOx);
-static uint32_t SDMMC_GetCmdResp1(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint32_t Timeout);
-static uint32_t SDMMC_GetCmdResp2(SDIO_TypeDef *SDIOx);
-static uint32_t SDMMC_GetCmdResp3(SDIO_TypeDef *SDIOx);
-static uint32_t SDMMC_GetCmdResp7(SDIO_TypeDef *SDIOx);
-static uint32_t SDMMC_GetCmdResp6(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint16_t *pRCA);
 
 /* Exported functions --------------------------------------------------------*/
 
@@ -311,10 +306,6 @@
   /* Set power state to ON */ 
   SDIOx->POWER = SDIO_POWER_PWRCTRL;
 
-  /* 1ms: required power up waiting time before starting the SD initialization
-  sequence */
-  HAL_Delay(2);
-  
   return HAL_OK;
 }
 
@@ -1027,6 +1018,31 @@
 }
 
 /**
+  * @brief  Send the Set Relative Address command to MMC card (not SD card).
+  * @param  SDIOx Pointer to SDIO register base
+  * @param  RCA Card RCA
+  * @retval HAL status
+  */
+uint32_t SDMMC_CmdSetRelAddMmc(SDIO_TypeDef *SDIOx, uint16_t RCA)
+{
+  SDIO_CmdInitTypeDef  sdmmc_cmdinit;
+  uint32_t errorstate;
+
+  /* Send CMD3 SD_CMD_SET_REL_ADDR */
+  sdmmc_cmdinit.Argument         = ((uint32_t)RCA << 16U);
+  sdmmc_cmdinit.CmdIndex         = SDMMC_CMD_SET_REL_ADDR;
+  sdmmc_cmdinit.Response         = SDIO_RESPONSE_SHORT;
+  sdmmc_cmdinit.WaitForInterrupt = SDIO_WAIT_NO;
+  sdmmc_cmdinit.CPSM             = SDIO_CPSM_ENABLE;
+  (void)SDIO_SendCommand(SDIOx, &sdmmc_cmdinit);
+
+  /* Check for error conditions */
+  errorstate = SDMMC_GetCmdResp1(SDIOx, SDMMC_CMD_SET_REL_ADDR, SDIO_CMDTIMEOUT);
+
+  return errorstate;
+}
+
+/**
   * @brief  Send the Status command and check the response.
   * @param  SDIOx: Pointer to SDIO register base 
   * @param  Argument: Command Argument
@@ -1125,47 +1141,54 @@
 }
 
 /**
-  * @}
+  * @brief  Send the Send EXT_CSD command and check the response.
+  * @param  SDIOx Pointer to SDMMC register base
+  * @param  Argument Command Argument
+  * @retval HAL status
   */
-
-/* Private function ----------------------------------------------------------*/  
-/** @addtogroup SD_Private_Functions
-  * @{
-  */
-    
-/**
-  * @brief  Checks for error conditions for CMD0.
-  * @param  hsd: SD handle
-  * @retval SD Card error state
-  */
-static uint32_t SDMMC_GetCmdError(SDIO_TypeDef *SDIOx)
+uint32_t SDMMC_CmdSendEXTCSD(SDIO_TypeDef *SDIOx, uint32_t Argument)
 {
-  /* 8 is the number of required instructions cycles for the below loop statement.
-  The SDIO_CMDTIMEOUT is expressed in ms */
-  uint32_t count = SDIO_CMDTIMEOUT * (SystemCoreClock / 8U /1000U);
-  
-  do
-  {
-    if (count-- == 0U)
-    {
-      return SDMMC_ERROR_TIMEOUT;
-    }
-    
-  }while(!__SDIO_GET_FLAG(SDIOx, SDIO_FLAG_CMDSENT));
-  
-  /* Clear all the static flags */
-  __SDIO_CLEAR_FLAG(SDIOx, SDIO_STATIC_CMD_FLAGS);
-  
-  return SDMMC_ERROR_NONE;
+  SDIO_CmdInitTypeDef  sdmmc_cmdinit;
+  uint32_t errorstate;
+
+  /* Send CMD9 SEND_CSD */
+  sdmmc_cmdinit.Argument         = Argument;
+  sdmmc_cmdinit.CmdIndex         = SDMMC_CMD_HS_SEND_EXT_CSD;
+  sdmmc_cmdinit.Response         = SDIO_RESPONSE_SHORT;
+  sdmmc_cmdinit.WaitForInterrupt = SDIO_WAIT_NO;
+  sdmmc_cmdinit.CPSM             = SDIO_CPSM_ENABLE;
+  (void)SDIO_SendCommand(SDIOx, &sdmmc_cmdinit);
+
+  /* Check for error conditions */
+  errorstate = SDMMC_GetCmdResp1(SDIOx, SDMMC_CMD_HS_SEND_EXT_CSD,SDIO_CMDTIMEOUT);
+
+  return errorstate;
 }
 
 /**
+  * @}
+  */
+
+/** @defgroup HAL_SDMMC_LL_Group5 Responses management functions
+ *  @brief   Responses functions
+ *
+@verbatim
+ ===============================================================================
+                   ##### Responses management functions #####
+ ===============================================================================
+    [..]
+    This subsection provides a set of functions allowing to manage the needed responses.
+
+@endverbatim
+  * @{
+  */
+/**
   * @brief  Checks for error conditions for R1 response.
-  * @param  hsd: SD handle
+  * @param  SDIOx Pointer to SDMMC register base
   * @param  SD_CMD: The sent command index  
   * @retval SD Card error state
   */
-static uint32_t SDMMC_GetCmdResp1(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint32_t Timeout)
+uint32_t SDMMC_GetCmdResp1(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint32_t Timeout)
 {
   uint32_t response_r1;
   uint32_t sta_reg;
@@ -1297,10 +1320,10 @@
 
 /**
   * @brief  Checks for error conditions for R2 (CID or CSD) response.
-  * @param  hsd: SD handle
+  * @param  SDIOx Pointer to SDMMC register base
   * @retval SD Card error state
   */
-static uint32_t SDMMC_GetCmdResp2(SDIO_TypeDef *SDIOx)
+uint32_t SDMMC_GetCmdResp2(SDIO_TypeDef *SDIOx)
 {
   uint32_t sta_reg;
   /* 8 is the number of required instructions cycles for the below loop statement.
@@ -1341,10 +1364,10 @@
 
 /**
   * @brief  Checks for error conditions for R3 (OCR) response.
-  * @param  hsd: SD handle
+  * @param  SDIOx Pointer to SDMMC register base
   * @retval SD Card error state
   */
-static uint32_t SDMMC_GetCmdResp3(SDIO_TypeDef *SDIOx)
+uint32_t SDMMC_GetCmdResp3(SDIO_TypeDef *SDIOx)
 {
   uint32_t sta_reg;
   /* 8 is the number of required instructions cycles for the below loop statement.
@@ -1378,13 +1401,13 @@
 
 /**
   * @brief  Checks for error conditions for R6 (RCA) response.
-  * @param  hsd: SD handle
+  * @param  SDIOx Pointer to SDMMC register base
   * @param  SD_CMD: The sent command index
   * @param  pRCA: Pointer to the variable that will contain the SD card relative 
   *         address RCA   
   * @retval SD Card error state
   */
-static uint32_t SDMMC_GetCmdResp6(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint16_t *pRCA)
+uint32_t SDMMC_GetCmdResp6(SDIO_TypeDef *SDIOx, uint8_t SD_CMD, uint16_t *pRCA)
 {
   uint32_t response_r1;
   uint32_t sta_reg;
@@ -1454,10 +1477,10 @@
 
 /**
   * @brief  Checks for error conditions for R7 response.
-  * @param  hsd: SD handle
+  * @param  SDIOx Pointer to SDMMC register base
   * @retval SD Card error state
   */
-static uint32_t SDMMC_GetCmdResp7(SDIO_TypeDef *SDIOx)
+uint32_t SDMMC_GetCmdResp7(SDIO_TypeDef *SDIOx)
 {
   uint32_t sta_reg;
   /* 8 is the number of required instructions cycles for the below loop statement.
@@ -1504,28 +1527,38 @@
 }
 
 /**
-  * @brief  Send the Send EXT_CSD command and check the response.
-  * @param  SDIOx: Pointer to SDMMC register base
-  * @param  Argument: Command Argument
-  * @retval HAL status
+  * @}
   */
-uint32_t SDMMC_CmdSendEXTCSD(SDIO_TypeDef *SDIOx, uint32_t Argument)
+
+/* Private function ----------------------------------------------------------*/  
+/** @addtogroup SD_Private_Functions
+  * @{
+  */
+    
+/**
+  * @brief  Checks for error conditions for CMD0.
+  * @param  SDIOx Pointer to SDMMC register base
+  * @retval SD Card error state
+  */
+static uint32_t SDMMC_GetCmdError(SDIO_TypeDef *SDIOx)
 {
-  SDIO_CmdInitTypeDef  sdmmc_cmdinit;
-  uint32_t errorstate;
-
-  /* Send CMD9 SEND_CSD */
-  sdmmc_cmdinit.Argument         = Argument;
-  sdmmc_cmdinit.CmdIndex         = SDMMC_CMD_HS_SEND_EXT_CSD;
-  sdmmc_cmdinit.Response         = SDIO_RESPONSE_SHORT;
-  sdmmc_cmdinit.WaitForInterrupt = SDIO_WAIT_NO;
-  sdmmc_cmdinit.CPSM             = SDIO_CPSM_ENABLE;
-  (void)SDIO_SendCommand(SDIOx, &sdmmc_cmdinit);
-
-  /* Check for error conditions */
-  errorstate = SDMMC_GetCmdResp1(SDIOx, SDMMC_CMD_HS_SEND_EXT_CSD,SDIO_CMDTIMEOUT);
-
-  return errorstate;
+  /* 8 is the number of required instructions cycles for the below loop statement.
+  The SDIO_CMDTIMEOUT is expressed in ms */
+  uint32_t count = SDIO_CMDTIMEOUT * (SystemCoreClock / 8U /1000U);
+  
+  do
+  {
+    if (count-- == 0U)
+    {
+      return SDMMC_ERROR_TIMEOUT;
+    }
+    
+  }while(!__SDIO_GET_FLAG(SDIOx, SDIO_FLAG_CMDSENT));
+  
+  /* Clear all the static flags */
+  __SDIO_CLEAR_FLAG(SDIOx, SDIO_STATIC_CMD_FLAGS);
+  
+  return SDMMC_ERROR_NONE;
 }
 
 
@@ -1543,5 +1576,3 @@
   */
 
 #endif /* SDIO */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_spi.c b/Src/stm32f4xx_ll_spi.c
index 2fde180..02a0740 100644
--- a/Src/stm32f4xx_ll_spi.c
+++ b/Src/stm32f4xx_ll_spi.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -623,4 +622,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_tim.c b/Src/stm32f4xx_ll_tim.c
index 089c5ad..b272b62 100644
--- a/Src/stm32f4xx_ll_tim.c
+++ b/Src/stm32f4xx_ll_tim.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -1188,4 +1187,3 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_usart.c b/Src/stm32f4xx_ll_usart.c
index 150d8bb..3cf68e3 100644
--- a/Src/stm32f4xx_ll_usart.c
+++ b/Src/stm32f4xx_ll_usart.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -498,5 +497,4 @@
 
 #endif /* USE_FULL_LL_DRIVER */
 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 
diff --git a/Src/stm32f4xx_ll_usb.c b/Src/stm32f4xx_ll_usb.c
index cdd837d..1df5fcf 100644
--- a/Src/stm32f4xx_ll_usb.c
+++ b/Src/stm32f4xx_ll_usb.c
@@ -11,6 +11,17 @@
   *           + Peripheral Control functions
   *           + Peripheral State functions
   *
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
   @verbatim
   ==============================================================================
                     ##### How to use this driver #####
@@ -23,17 +34,7 @@
       (#) The upper HAL HCD/PCD driver will call the right routines for its internal processes.
 
   @endverbatim
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.</center></h2>
-  *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
-  *
+
   ******************************************************************************
   */
 
@@ -82,7 +83,6 @@
 HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
 {
   HAL_StatusTypeDef ret;
-
   if (cfg.phy_itface == USB_OTG_ULPI_PHY)
   {
     USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN);
@@ -462,7 +462,7 @@
 }
 
 /**
-  * @brief  USB_OTG_FlushTxFifo : Flush a Tx FIFO
+  * @brief  USB_FlushTxFifo Flush a Tx FIFO
   * @param  USBx  Selected device
   * @param  num  FIFO number
   *         This parameter can be a value from 1 to 15
@@ -473,11 +473,26 @@
 {
   __IO uint32_t count = 0U;
 
+  /* Wait for AHB master IDLE state. */
+  do
+  {
+    count++;
+
+    if (count > 200000U)
+    {
+      return HAL_TIMEOUT;
+    }
+  } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL) == 0U);
+
+  /* Flush TX Fifo */
+  count = 0U;
   USBx->GRSTCTL = (USB_OTG_GRSTCTL_TXFFLSH | (num << 6));
 
   do
   {
-    if (++count > 200000U)
+    count++;
+
+    if (count > 200000U)
     {
       return HAL_TIMEOUT;
     }
@@ -487,7 +502,7 @@
 }
 
 /**
-  * @brief  USB_FlushRxFifo : Flush Rx FIFO
+  * @brief  USB_FlushRxFifo  Flush Rx FIFO
   * @param  USBx  Selected device
   * @retval HAL status
   */
@@ -495,11 +510,26 @@
 {
   __IO uint32_t count = 0U;
 
+  /* Wait for AHB master IDLE state. */
+  do
+  {
+    count++;
+
+    if (count > 200000U)
+    {
+      return HAL_TIMEOUT;
+    }
+  } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL) == 0U);
+
+  /* Flush RX Fifo */
+  count = 0U;
   USBx->GRSTCTL = USB_OTG_GRSTCTL_RXFFLSH;
 
   do
   {
-    if (++count > 200000U)
+    count++;
+
+    if (count > 200000U)
     {
       return HAL_TIMEOUT;
     }
@@ -834,8 +864,10 @@
     else
     {
       pktcnt = (uint16_t)((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket);
+      ep->xfer_size = ep->maxpacket * pktcnt;
+
       USBx_OUTEP(epnum)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_PKTCNT & ((uint32_t)pktcnt << 19);
-      USBx_OUTEP(epnum)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_XFRSIZ & (ep->maxpacket * pktcnt);
+      USBx_OUTEP(epnum)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_XFRSIZ & ep->xfer_size;
     }
 
     if (dma == 1U)
@@ -943,8 +975,11 @@
       ep->xfer_len = ep->maxpacket;
     }
 
+    /* Store transfer size, for EP0 this is equal to endpoint max packet size */
+    ep->xfer_size = ep->maxpacket;
+
     USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_PKTCNT & (1U << 19));
-    USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_XFRSIZ & (ep->maxpacket));
+    USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_XFRSIZ & ep->xfer_size);
 
     if (dma == 1U)
     {
@@ -961,6 +996,64 @@
   return HAL_OK;
 }
 
+
+/**
+   * @brief  USB_EPStoptXfer  Stop transfer on an EP
+   * @param  USBx  usb device instance
+   * @param  ep pointer to endpoint structure
+   * @retval HAL status
+   */
+HAL_StatusTypeDef USB_EPStopXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
+{
+  __IO uint32_t count = 0U;
+  HAL_StatusTypeDef ret = HAL_OK;
+  uint32_t USBx_BASE = (uint32_t)USBx;
+
+  /* IN endpoint */
+  if (ep->is_in == 1U)
+  {
+    /* EP enable, IN data in FIFO */
+    if (((USBx_INEP(ep->num)->DIEPCTL) & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA)
+    {
+      USBx_INEP(ep->num)->DIEPCTL |= (USB_OTG_DIEPCTL_SNAK);
+      USBx_INEP(ep->num)->DIEPCTL |= (USB_OTG_DIEPCTL_EPDIS);
+
+      do
+      {
+        count++;
+
+        if (count > 10000U)
+        {
+          ret = HAL_ERROR;
+          break;
+        }
+      } while (((USBx_INEP(ep->num)->DIEPCTL) & USB_OTG_DIEPCTL_EPENA) ==  USB_OTG_DIEPCTL_EPENA);
+    }
+  }
+  else /* OUT endpoint */
+  {
+    if (((USBx_OUTEP(ep->num)->DOEPCTL) & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA)
+    {
+      USBx_OUTEP(ep->num)->DOEPCTL |= (USB_OTG_DOEPCTL_SNAK);
+      USBx_OUTEP(ep->num)->DOEPCTL |= (USB_OTG_DOEPCTL_EPDIS);
+
+      do
+      {
+        count++;
+
+        if (count > 10000U)
+        {
+          ret = HAL_ERROR;
+          break;
+        }
+      } while (((USBx_OUTEP(ep->num)->DOEPCTL) & USB_OTG_DOEPCTL_EPENA) ==  USB_OTG_DOEPCTL_EPENA);
+    }
+  }
+
+  return ret;
+}
+
+
 /**
   * @brief  USB_WritePacket : Writes a packet into the Tx FIFO associated
   *         with the EP/channel
@@ -1370,7 +1463,9 @@
   /* Wait for AHB master IDLE state. */
   do
   {
-    if (++count > 200000U)
+    count++;
+
+    if (count > 200000U)
     {
       return HAL_TIMEOUT;
     }
@@ -1382,7 +1477,9 @@
 
   do
   {
-    if (++count > 200000U)
+    count++;
+
+    if (count > 200000U)
     {
       return HAL_TIMEOUT;
     }
@@ -1401,6 +1498,7 @@
   */
 HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
 {
+  HAL_StatusTypeDef ret = HAL_OK;
   uint32_t USBx_BASE = (uint32_t)USBx;
   uint32_t i;
 
@@ -1444,8 +1542,15 @@
   }
 
   /* Make sure the FIFOs are flushed. */
-  (void)USB_FlushTxFifo(USBx, 0x10U); /* all Tx FIFOs */
-  (void)USB_FlushRxFifo(USBx);
+  if (USB_FlushTxFifo(USBx, 0x10U) != HAL_OK) /* all Tx FIFOs */
+  {
+    ret = HAL_ERROR;
+  }
+
+  if (USB_FlushRxFifo(USBx) != HAL_OK)
+  {
+    ret = HAL_ERROR;
+  }
 
   /* Clear all pending HC Interrupts */
   for (i = 0U; i < cfg.Host_channels; i++)
@@ -1486,7 +1591,7 @@
                     USB_OTG_GINTMSK_SOFM             | USB_OTG_GINTSTS_DISCINT | \
                     USB_OTG_GINTMSK_PXFRM_IISOOXFRM  | USB_OTG_GINTMSK_WUIM);
 
-  return HAL_OK;
+  return ret;
 }
 
 /**
@@ -1703,6 +1808,9 @@
       break;
   }
 
+  /* Enable host channel Halt interrupt */
+  USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_CHHM;
+
   /* Enable the top level host channel interrupt. */
   USBx_HOST->HAINTMSK |= 1UL << (ch_num & 0xFU);
 
@@ -1736,9 +1844,9 @@
                                       (((uint32_t)ep_type << 18) & USB_OTG_HCCHAR_EPTYP) |
                                       ((uint32_t)mps & USB_OTG_HCCHAR_MPSIZ) | HCcharEpDir | HCcharLowSpeed;
 
-  if (ep_type == EP_TYPE_INTR)
+  if ((ep_type == EP_TYPE_INTR) || (ep_type == EP_TYPE_ISOC))
   {
-    USBx_HC((uint32_t)ch_num)->HCCHAR |= USB_OTG_HCCHAR_ODDFRM ;
+    USBx_HC((uint32_t)ch_num)->HCCHAR |= USB_OTG_HCCHAR_ODDFRM;
   }
 
   return ret;
@@ -1911,7 +2019,7 @@
 {
   uint32_t USBx_BASE = (uint32_t)USBx;
   uint32_t hcnum = (uint32_t)hc_num;
-  uint32_t count = 0U;
+  __IO uint32_t count = 0U;
   uint32_t HcEpType = (USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_EPTYP) >> 18;
   uint32_t ChannelEna = (USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_CHENA) >> 31;
 
@@ -1932,10 +2040,11 @@
       {
         USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_CHENA;
         USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA;
-        USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_EPDIR;
         do
         {
-          if (++count > 1000U)
+          count++;
+
+          if (count > 1000U)
           {
             break;
           }
@@ -1955,10 +2064,11 @@
     {
       USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_CHENA;
       USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA;
-      USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_EPDIR;
       do
       {
-        if (++count > 1000U)
+        count++;
+
+        if (count > 1000U)
         {
           break;
         }
@@ -2006,16 +2116,24 @@
   */
 HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx)
 {
+  HAL_StatusTypeDef ret = HAL_OK;
   uint32_t USBx_BASE = (uint32_t)USBx;
-  uint32_t count = 0U;
+  __IO uint32_t count = 0U;
   uint32_t value;
   uint32_t i;
 
   (void)USB_DisableGlobalInt(USBx);
 
-  /* Flush FIFO */
-  (void)USB_FlushTxFifo(USBx, 0x10U);
-  (void)USB_FlushRxFifo(USBx);
+  /* Flush USB FIFO */
+  if (USB_FlushTxFifo(USBx, 0x10U) != HAL_OK) /* all Tx FIFOs */
+  {
+    ret = HAL_ERROR;
+  }
+
+  if (USB_FlushRxFifo(USBx) != HAL_OK)
+  {
+    ret = HAL_ERROR;
+  }
 
   /* Flush out any leftover queued requests. */
   for (i = 0U; i <= 15U; i++)
@@ -2038,7 +2156,9 @@
 
     do
     {
-      if (++count > 1000U)
+      count++;
+
+      if (count > 1000U)
       {
         break;
       }
@@ -2051,7 +2171,7 @@
 
   (void)USB_EnableGlobalInt(USBx);
 
-  return HAL_OK;
+  return ret;
 }
 
 /**
@@ -2102,5 +2222,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/stm32f4xx_ll_utils.c b/Src/stm32f4xx_ll_utils.c
index 96f6527..34df6ea 100644
--- a/Src/stm32f4xx_ll_utils.c
+++ b/Src/stm32f4xx_ll_utils.c
@@ -6,13 +6,12 @@
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-  * All rights reserved.</center></h2>
+  * Copyright (c) 2017 STMicroelectronics.
+  * All rights reserved.
   *
-  * This software component is licensed by ST under BSD 3-Clause license,
-  * the "License"; You may not use this file except in compliance with the
-  * License. You may obtain a copy of the License at:
-  *                        opensource.org/licenses/BSD-3-Clause
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
   *
   ******************************************************************************
   */
@@ -748,5 +747,3 @@
 /**
   * @}
   */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/